@sovity.de/edc-client 7.4.0 → 7.5.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.
@@ -1 +1 @@
1
- {"version":3,"file":"sovity-edc-client.js","sources":["../src/generated/runtime.ts","../src/generated/models/UiAsset.ts","../src/generated/models/AssetPage.ts","../src/generated/models/ConnectorLimits.ts","../src/generated/models/ContractAgreementDirection.ts","../src/generated/models/TransferProcessSimplifiedState.ts","../src/generated/models/TransferProcessState.ts","../src/generated/models/ContractAgreementTransferProcess.ts","../src/generated/models/OperatorDto.ts","../src/generated/models/UiPolicyLiteralType.ts","../src/generated/models/UiPolicyLiteral.ts","../src/generated/models/UiPolicyConstraint.ts","../src/generated/models/UiPolicy.ts","../src/generated/models/ContractAgreementCard.ts","../src/generated/models/ContractAgreementPage.ts","../src/generated/models/UiCriterionLiteralType.ts","../src/generated/models/UiCriterionLiteral.ts","../src/generated/models/UiCriterionOperator.ts","../src/generated/models/UiCriterion.ts","../src/generated/models/ContractDefinitionEntry.ts","../src/generated/models/ContractDefinitionPage.ts","../src/generated/models/ContractDefinitionRequest.ts","../src/generated/models/ContractNegotiationRequest.ts","../src/generated/models/ContractNegotiationSimplifiedState.ts","../src/generated/models/ContractNegotiationState.ts","../src/generated/models/DashboardDapsConfig.ts","../src/generated/models/DashboardMiwConfig.ts","../src/generated/models/DashboardTransferAmounts.ts","../src/generated/models/DashboardPage.ts","../src/generated/models/IdResponseDto.ts","../src/generated/models/InitiateCustomTransferRequest.ts","../src/generated/models/InitiateTransferRequest.ts","../src/generated/models/TransferProcessStatesDto.ts","../src/generated/models/KpiResult.ts","../src/generated/models/UiPolicyCreateRequest.ts","../src/generated/models/PolicyDefinitionCreateRequest.ts","../src/generated/models/PolicyDefinitionDto.ts","../src/generated/models/PolicyDefinitionPage.ts","../src/generated/models/TransferHistoryEntry.ts","../src/generated/models/TransferHistoryPage.ts","../src/generated/models/UiAssetCreateRequest.ts","../src/generated/models/UiAssetEditMetadataRequest.ts","../src/generated/models/UiContractNegotiation.ts","../src/generated/models/UiContractOffer.ts","../src/generated/models/UiDataOffer.ts","../src/generated/apis/EnterpriseEditionApi.ts","../src/generated/apis/UIApi.ts","../src/generated/apis/UseCaseApi.ts","../node_modules/zod/lib/index.mjs","../src/oauth2/utils/HttpUtils.ts","../src/oauth2/utils/FetchUtils.ts","../src/oauth2/AccessTokenService.ts","../src/oauth2/utils/RequestUtils.ts","../src/oauth2/Middleware.ts","../src/EdcClient.ts"],"sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nexport const BASE_PATH = 'https://my-connector/api/management'.replace(\n /\\/+$/,\n '',\n);\n\nexport interface ConfigurationParameters {\n basePath?: string; // override base path\n fetchApi?: FetchAPI; // override for fetch implementation\n middleware?: Middleware[]; // middleware to apply before/after fetch requests\n queryParamsStringify?: (params: HTTPQuery) => string; // stringify function for query strings\n username?: string; // parameter for basic security\n password?: string; // parameter for basic security\n apiKey?: string | ((name: string) => string); // parameter for apiKey security\n accessToken?:\n | string\n | Promise<string>\n | ((name?: string, scopes?: string[]) => string | Promise<string>); // parameter for oauth2 security\n headers?: HTTPHeaders; //header params we want to use on every request\n credentials?: RequestCredentials; //value for the credentials param we want to use on each request\n}\n\nexport class Configuration {\n constructor(private configuration: ConfigurationParameters = {}) {}\n\n set config(configuration: Configuration) {\n this.configuration = configuration;\n }\n\n get basePath(): string {\n return this.configuration.basePath != null\n ? this.configuration.basePath\n : BASE_PATH;\n }\n\n get fetchApi(): FetchAPI | undefined {\n return this.configuration.fetchApi;\n }\n\n get middleware(): Middleware[] {\n return this.configuration.middleware || [];\n }\n\n get queryParamsStringify(): (params: HTTPQuery) => string {\n return this.configuration.queryParamsStringify || querystring;\n }\n\n get username(): string | undefined {\n return this.configuration.username;\n }\n\n get password(): string | undefined {\n return this.configuration.password;\n }\n\n get apiKey(): ((name: string) => string) | undefined {\n const apiKey = this.configuration.apiKey;\n if (apiKey) {\n return typeof apiKey === 'function' ? apiKey : () => apiKey;\n }\n return undefined;\n }\n\n get accessToken():\n | ((name?: string, scopes?: string[]) => string | Promise<string>)\n | undefined {\n const accessToken = this.configuration.accessToken;\n if (accessToken) {\n return typeof accessToken === 'function'\n ? accessToken\n : async () => accessToken;\n }\n return undefined;\n }\n\n get headers(): HTTPHeaders | undefined {\n return this.configuration.headers;\n }\n\n get credentials(): RequestCredentials | undefined {\n return this.configuration.credentials;\n }\n}\n\nexport const DefaultConfig = new Configuration();\n\n/**\n * This is the base class for all generated API classes.\n */\nexport class BaseAPI {\n private static readonly jsonRegex = new RegExp(\n '^(:?application/json|[^;/ \\t]+/[^;/ \\t]+[+]json)[ \\t]*(:?;.*)?$',\n 'i',\n );\n private middleware: Middleware[];\n\n constructor(protected configuration = DefaultConfig) {\n this.middleware = configuration.middleware;\n }\n\n withMiddleware<T extends BaseAPI>(this: T, ...middlewares: Middleware[]) {\n const next = this.clone<T>();\n next.middleware = next.middleware.concat(...middlewares);\n return next;\n }\n\n withPreMiddleware<T extends BaseAPI>(\n this: T,\n ...preMiddlewares: Array<Middleware['pre']>\n ) {\n const middlewares = preMiddlewares.map((pre) => ({pre}));\n return this.withMiddleware<T>(...middlewares);\n }\n\n withPostMiddleware<T extends BaseAPI>(\n this: T,\n ...postMiddlewares: Array<Middleware['post']>\n ) {\n const middlewares = postMiddlewares.map((post) => ({post}));\n return this.withMiddleware<T>(...middlewares);\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n protected isJsonMime(mime: string | null | undefined): boolean {\n if (!mime) {\n return false;\n }\n return BaseAPI.jsonRegex.test(mime);\n }\n\n protected async request(\n context: RequestOpts,\n initOverrides?: RequestInit | InitOverrideFunction,\n ): Promise<Response> {\n const {url, init} = await this.createFetchParams(\n context,\n initOverrides,\n );\n const response = await this.fetchApi(url, init);\n if (response && response.status >= 200 && response.status < 300) {\n return response;\n }\n throw new ResponseError(response, 'Response returned an error code');\n }\n\n private async createFetchParams(\n context: RequestOpts,\n initOverrides?: RequestInit | InitOverrideFunction,\n ) {\n let url = this.configuration.basePath + context.path;\n if (\n context.query !== undefined &&\n Object.keys(context.query).length !== 0\n ) {\n // only add the querystring to the URL if there are query parameters.\n // this is done to avoid urls ending with a \"?\" character which buggy webservers\n // do not handle correctly sometimes.\n url += '?' + this.configuration.queryParamsStringify(context.query);\n }\n\n const headers = Object.assign(\n {},\n this.configuration.headers,\n context.headers,\n );\n Object.keys(headers).forEach((key) =>\n headers[key] === undefined ? delete headers[key] : {},\n );\n\n const initOverrideFn =\n typeof initOverrides === 'function'\n ? initOverrides\n : async () => initOverrides;\n\n const initParams = {\n method: context.method,\n headers,\n body: context.body,\n credentials: this.configuration.credentials,\n };\n\n const overriddenInit: RequestInit = {\n ...initParams,\n ...(await initOverrideFn({\n init: initParams,\n context,\n })),\n };\n\n const init: RequestInit = {\n ...overriddenInit,\n body:\n isFormData(overriddenInit.body) ||\n overriddenInit.body instanceof URLSearchParams ||\n isBlob(overriddenInit.body)\n ? overriddenInit.body\n : JSON.stringify(overriddenInit.body),\n };\n\n return {url, init};\n }\n\n private fetchApi = async (url: string, init: RequestInit) => {\n let fetchParams = {url, init};\n for (const middleware of this.middleware) {\n if (middleware.pre) {\n fetchParams =\n (await middleware.pre({\n fetch: this.fetchApi,\n ...fetchParams,\n })) || fetchParams;\n }\n }\n let response: Response | undefined = undefined;\n try {\n response = await (this.configuration.fetchApi || fetch)(\n fetchParams.url,\n fetchParams.init,\n );\n } catch (e) {\n for (const middleware of this.middleware) {\n if (middleware.onError) {\n response =\n (await middleware.onError({\n fetch: this.fetchApi,\n url: fetchParams.url,\n init: fetchParams.init,\n error: e,\n response: response ? response.clone() : undefined,\n })) || response;\n }\n }\n if (response === undefined) {\n if (e instanceof Error) {\n throw new FetchError(\n e,\n 'The request failed and the interceptors did not return an alternative response',\n );\n } else {\n throw e;\n }\n }\n }\n for (const middleware of this.middleware) {\n if (middleware.post) {\n response =\n (await middleware.post({\n fetch: this.fetchApi,\n url: fetchParams.url,\n init: fetchParams.init,\n response: response.clone(),\n })) || response;\n }\n }\n return response;\n };\n\n /**\n * Create a shallow clone of `this` by constructing a new instance\n * and then shallow cloning data members.\n */\n private clone<T extends BaseAPI>(this: T): T {\n const constructor = this.constructor as any;\n const next = new constructor(this.configuration);\n next.middleware = this.middleware.slice();\n return next;\n }\n}\n\nfunction isBlob(value: any): value is Blob {\n return typeof Blob !== 'undefined' && value instanceof Blob;\n}\n\nfunction isFormData(value: any): value is FormData {\n return typeof FormData !== 'undefined' && value instanceof FormData;\n}\n\nexport class ResponseError extends Error {\n override name: 'ResponseError' = 'ResponseError';\n constructor(public response: Response, msg?: string) {\n super(msg);\n }\n}\n\nexport class FetchError extends Error {\n override name: 'FetchError' = 'FetchError';\n constructor(public cause: Error, msg?: string) {\n super(msg);\n }\n}\n\nexport class RequiredError extends Error {\n override name: 'RequiredError' = 'RequiredError';\n constructor(public field: string, msg?: string) {\n super(msg);\n }\n}\n\nexport const COLLECTION_FORMATS = {\n csv: ',',\n ssv: ' ',\n tsv: '\\t',\n pipes: '|',\n};\n\nexport type FetchAPI = WindowOrWorkerGlobalScope['fetch'];\n\nexport type Json = any;\nexport type HTTPMethod =\n | 'GET'\n | 'POST'\n | 'PUT'\n | 'PATCH'\n | 'DELETE'\n | 'OPTIONS'\n | 'HEAD';\nexport type HTTPHeaders = {[key: string]: string};\nexport type HTTPQuery = {\n [key: string]:\n | string\n | number\n | null\n | boolean\n | Array<string | number | null | boolean>\n | Set<string | number | null | boolean>\n | HTTPQuery;\n};\nexport type HTTPBody = Json | FormData | URLSearchParams;\nexport type HTTPRequestInit = {\n headers?: HTTPHeaders;\n method: HTTPMethod;\n credentials?: RequestCredentials;\n body?: HTTPBody;\n};\nexport type ModelPropertyNaming =\n | 'camelCase'\n | 'snake_case'\n | 'PascalCase'\n | 'original';\n\nexport type InitOverrideFunction = (requestContext: {\n init: HTTPRequestInit;\n context: RequestOpts;\n}) => Promise<RequestInit>;\n\nexport interface FetchParams {\n url: string;\n init: RequestInit;\n}\n\nexport interface RequestOpts {\n path: string;\n method: HTTPMethod;\n headers: HTTPHeaders;\n query?: HTTPQuery;\n body?: HTTPBody;\n}\n\nexport function exists(json: any, key: string) {\n const value = json[key];\n return value !== null && value !== undefined;\n}\n\nexport function querystring(params: HTTPQuery, prefix: string = ''): string {\n return Object.keys(params)\n .map((key) => querystringSingleKey(key, params[key], prefix))\n .filter((part) => part.length > 0)\n .join('&');\n}\n\nfunction querystringSingleKey(\n key: string,\n value:\n | string\n | number\n | null\n | undefined\n | boolean\n | Array<string | number | null | boolean>\n | Set<string | number | null | boolean>\n | HTTPQuery,\n keyPrefix: string = '',\n): string {\n const fullKey = keyPrefix + (keyPrefix.length ? `[${key}]` : key);\n if (value instanceof Array) {\n const multiValue = value\n .map((singleValue) => encodeURIComponent(String(singleValue)))\n .join(`&${encodeURIComponent(fullKey)}=`);\n return `${encodeURIComponent(fullKey)}=${multiValue}`;\n }\n if (value instanceof Set) {\n const valueAsArray = Array.from(value);\n return querystringSingleKey(key, valueAsArray, keyPrefix);\n }\n if (value instanceof Date) {\n return `${encodeURIComponent(fullKey)}=${encodeURIComponent(\n value.toISOString(),\n )}`;\n }\n if (value instanceof Object) {\n return querystring(value as HTTPQuery, fullKey);\n }\n return `${encodeURIComponent(fullKey)}=${encodeURIComponent(\n String(value),\n )}`;\n}\n\nexport function mapValues(data: any, fn: (item: any) => any) {\n return Object.keys(data).reduce(\n (acc, key) => ({...acc, [key]: fn(data[key])}),\n {},\n );\n}\n\nexport function canConsumeForm(consumes: Consume[]): boolean {\n for (const consume of consumes) {\n if ('multipart/form-data' === consume.contentType) {\n return true;\n }\n }\n return false;\n}\n\nexport interface Consume {\n contentType: string;\n}\n\nexport interface RequestContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n}\n\nexport interface ResponseContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n response: Response;\n}\n\nexport interface ErrorContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n error: unknown;\n response?: Response;\n}\n\nexport interface Middleware {\n pre?(context: RequestContext): Promise<FetchParams | void>;\n post?(context: ResponseContext): Promise<Response | void>;\n onError?(context: ErrorContext): Promise<Response | void>;\n}\n\nexport interface ApiResponse<T> {\n raw: Response;\n value(): Promise<T>;\n}\n\nexport interface ResponseTransformer<T> {\n (json: any): T;\n}\n\nexport class JSONApiResponse<T> {\n constructor(\n public raw: Response,\n private transformer: ResponseTransformer<T> = (jsonValue: any) =>\n jsonValue,\n ) {}\n\n async value(): Promise<T> {\n return this.transformer(await this.raw.json());\n }\n}\n\nexport class VoidApiResponse {\n constructor(public raw: Response) {}\n\n async value(): Promise<void> {\n return undefined;\n }\n}\n\nexport class BlobApiResponse {\n constructor(public raw: Response) {}\n\n async value(): Promise<Blob> {\n return await this.raw.blob();\n }\n}\n\nexport class TextApiResponse {\n constructor(public raw: Response) {}\n\n async value(): Promise<string> {\n return await this.raw.text();\n }\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\n\n/**\n * Type-Safe Asset Metadata as needed by our UI\n * @export\n * @interface UiAsset\n */\nexport interface UiAsset {\n /**\n * Asset Id\n * @type {string}\n * @memberof UiAsset\n */\n assetId: string;\n /**\n * Providing Connector's Connector Endpoint\n * @type {string}\n * @memberof UiAsset\n */\n connectorEndpoint: string;\n /**\n * Providing Connector's Participant ID\n * @type {string}\n * @memberof UiAsset\n */\n participantId: string;\n /**\n * Asset Title\n * @type {string}\n * @memberof UiAsset\n */\n title: string;\n /**\n * Asset Organization Name\n * @type {string}\n * @memberof UiAsset\n */\n creatorOrganizationName: string;\n /**\n * Asset Language\n * @type {string}\n * @memberof UiAsset\n */\n language?: string;\n /**\n * Asset Description. Supports markdown.\n * @type {string}\n * @memberof UiAsset\n */\n description?: string;\n /**\n * Asset Description Short Text generated from description. Contains no markdown.\n * @type {string}\n * @memberof UiAsset\n */\n descriptionShortText?: string;\n /**\n * Flag that indicates whether this asset is created by this connector.\n * @type {boolean}\n * @memberof UiAsset\n */\n isOwnConnector: boolean;\n /**\n * Asset Homepage\n * @type {string}\n * @memberof UiAsset\n */\n publisherHomepage?: string;\n /**\n * License URL\n * @type {string}\n * @memberof UiAsset\n */\n licenseUrl?: string;\n /**\n * Version\n * @type {string}\n * @memberof UiAsset\n */\n version?: string;\n /**\n * Asset Keywords\n * @type {Array<string>}\n * @memberof UiAsset\n */\n keywords?: Array<string>;\n /**\n * Asset MediaType\n * @type {string}\n * @memberof UiAsset\n */\n mediaType?: string;\n /**\n * Homepage URL associated with the Asset\n * @type {string}\n * @memberof UiAsset\n */\n landingPageUrl?: string;\n /**\n * HTTP Datasource Hints Proxy Method\n * @type {boolean}\n * @memberof UiAsset\n */\n httpDatasourceHintsProxyMethod?: boolean;\n /**\n * HTTP Datasource Hints Proxy Path\n * @type {boolean}\n * @memberof UiAsset\n */\n httpDatasourceHintsProxyPath?: boolean;\n /**\n * HTTP Datasource Hints Proxy Query Params\n * @type {boolean}\n * @memberof UiAsset\n */\n httpDatasourceHintsProxyQueryParams?: boolean;\n /**\n * HTTP Datasource Hints Proxy Body\n * @type {boolean}\n * @memberof UiAsset\n */\n httpDatasourceHintsProxyBody?: boolean;\n /**\n * Data Category\n * @type {string}\n * @memberof UiAsset\n */\n dataCategory?: string;\n /**\n * Data Subcategory\n * @type {string}\n * @memberof UiAsset\n */\n dataSubcategory?: string;\n /**\n * Data Model\n * @type {string}\n * @memberof UiAsset\n */\n dataModel?: string;\n /**\n * Geo-Reference Method\n * @type {string}\n * @memberof UiAsset\n */\n geoReferenceMethod?: string;\n /**\n * Transport Mode\n * @type {string}\n * @memberof UiAsset\n */\n transportMode?: string;\n /**\n * The sovereign is distinct from the publisher by being the legal owner of the data.\n * @type {string}\n * @memberof UiAsset\n */\n sovereignLegalName?: string;\n /**\n * Geo location\n * @type {string}\n * @memberof UiAsset\n */\n geoLocation?: string;\n /**\n * Locations by NUTS standard which divides countries into administrative divisions\n * @type {Array<string>}\n * @memberof UiAsset\n */\n nutsLocations?: Array<string>;\n /**\n * Data sample URLs\n * @type {Array<string>}\n * @memberof UiAsset\n */\n dataSampleUrls?: Array<string>;\n /**\n * Reference file/schema URLs\n * @type {Array<string>}\n * @memberof UiAsset\n */\n referenceFileUrls?: Array<string>;\n /**\n * Additional information on reference files/schemas\n * @type {string}\n * @memberof UiAsset\n */\n referenceFilesDescription?: string;\n /**\n * Instructions for use that are not legally relevant e.g. information on how to cite the dataset in papers\n * @type {string}\n * @memberof UiAsset\n */\n conditionsForUse?: string;\n /**\n * Data update frequency\n * @type {string}\n * @memberof UiAsset\n */\n dataUpdateFrequency?: string;\n /**\n * Temporal coverage start date\n * @type {Date}\n * @memberof UiAsset\n */\n temporalCoverageFrom?: Date;\n /**\n * Temporal coverage end date (inclusive)\n * @type {Date}\n * @memberof UiAsset\n */\n temporalCoverageToInclusive?: Date;\n /**\n * Contains the entire asset in the JSON-LD format\n * @type {string}\n * @memberof UiAsset\n */\n assetJsonLd?: string;\n /**\n * Contains serialized custom properties in the JSON format.\n * @type {string}\n * @memberof UiAsset\n */\n customJsonAsString?: string;\n /**\n * Contains serialized custom properties in the JSON LD format. Contrary to the customJsonAsString field, this string must represent a JSON LD object and will be affected by JSON LD compaction and expansion. Due to a technical limitation, the properties can't be booleans.\n * @type {string}\n * @memberof UiAsset\n */\n customJsonLdAsString?: string;\n /**\n * Same as customJsonAsString but the data will be stored in the private properties.\n * @type {string}\n * @memberof UiAsset\n */\n privateCustomJsonAsString?: string;\n /**\n * Same as customJsonLdAsString but the data will be stored in the private properties. The same limitations apply.\n * @type {string}\n * @memberof UiAsset\n */\n privateCustomJsonLdAsString?: string;\n}\n\n/**\n * Check if a given object implements the UiAsset interface.\n */\nexport function instanceOfUiAsset(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'assetId' in value;\n isInstance = isInstance && 'connectorEndpoint' in value;\n isInstance = isInstance && 'participantId' in value;\n isInstance = isInstance && 'title' in value;\n isInstance = isInstance && 'creatorOrganizationName' in value;\n isInstance = isInstance && 'isOwnConnector' in value;\n\n return isInstance;\n}\n\nexport function UiAssetFromJSON(json: any): UiAsset {\n return UiAssetFromJSONTyped(json, false);\n}\n\nexport function UiAssetFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiAsset {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n assetId: json['assetId'],\n connectorEndpoint: json['connectorEndpoint'],\n participantId: json['participantId'],\n title: json['title'],\n creatorOrganizationName: json['creatorOrganizationName'],\n language: !exists(json, 'language') ? undefined : json['language'],\n description: !exists(json, 'description')\n ? undefined\n : json['description'],\n descriptionShortText: !exists(json, 'descriptionShortText')\n ? undefined\n : json['descriptionShortText'],\n isOwnConnector: json['isOwnConnector'],\n publisherHomepage: !exists(json, 'publisherHomepage')\n ? undefined\n : json['publisherHomepage'],\n licenseUrl: !exists(json, 'licenseUrl')\n ? undefined\n : json['licenseUrl'],\n version: !exists(json, 'version') ? undefined : json['version'],\n keywords: !exists(json, 'keywords') ? undefined : json['keywords'],\n mediaType: !exists(json, 'mediaType') ? undefined : json['mediaType'],\n landingPageUrl: !exists(json, 'landingPageUrl')\n ? undefined\n : json['landingPageUrl'],\n httpDatasourceHintsProxyMethod: !exists(\n json,\n 'httpDatasourceHintsProxyMethod',\n )\n ? undefined\n : json['httpDatasourceHintsProxyMethod'],\n httpDatasourceHintsProxyPath: !exists(\n json,\n 'httpDatasourceHintsProxyPath',\n )\n ? undefined\n : json['httpDatasourceHintsProxyPath'],\n httpDatasourceHintsProxyQueryParams: !exists(\n json,\n 'httpDatasourceHintsProxyQueryParams',\n )\n ? undefined\n : json['httpDatasourceHintsProxyQueryParams'],\n httpDatasourceHintsProxyBody: !exists(\n json,\n 'httpDatasourceHintsProxyBody',\n )\n ? undefined\n : json['httpDatasourceHintsProxyBody'],\n dataCategory: !exists(json, 'dataCategory')\n ? undefined\n : json['dataCategory'],\n dataSubcategory: !exists(json, 'dataSubcategory')\n ? undefined\n : json['dataSubcategory'],\n dataModel: !exists(json, 'dataModel') ? undefined : json['dataModel'],\n geoReferenceMethod: !exists(json, 'geoReferenceMethod')\n ? undefined\n : json['geoReferenceMethod'],\n transportMode: !exists(json, 'transportMode')\n ? undefined\n : json['transportMode'],\n sovereignLegalName: !exists(json, 'sovereignLegalName')\n ? undefined\n : json['sovereignLegalName'],\n geoLocation: !exists(json, 'geoLocation')\n ? undefined\n : json['geoLocation'],\n nutsLocations: !exists(json, 'nutsLocations')\n ? undefined\n : json['nutsLocations'],\n dataSampleUrls: !exists(json, 'dataSampleUrls')\n ? undefined\n : json['dataSampleUrls'],\n referenceFileUrls: !exists(json, 'referenceFileUrls')\n ? undefined\n : json['referenceFileUrls'],\n referenceFilesDescription: !exists(json, 'referenceFilesDescription')\n ? undefined\n : json['referenceFilesDescription'],\n conditionsForUse: !exists(json, 'conditionsForUse')\n ? undefined\n : json['conditionsForUse'],\n dataUpdateFrequency: !exists(json, 'dataUpdateFrequency')\n ? undefined\n : json['dataUpdateFrequency'],\n temporalCoverageFrom: !exists(json, 'temporalCoverageFrom')\n ? undefined\n : new Date(json['temporalCoverageFrom']),\n temporalCoverageToInclusive: !exists(\n json,\n 'temporalCoverageToInclusive',\n )\n ? undefined\n : new Date(json['temporalCoverageToInclusive']),\n assetJsonLd: !exists(json, 'assetJsonLd')\n ? undefined\n : json['assetJsonLd'],\n customJsonAsString: !exists(json, 'customJsonAsString')\n ? undefined\n : json['customJsonAsString'],\n customJsonLdAsString: !exists(json, 'customJsonLdAsString')\n ? undefined\n : json['customJsonLdAsString'],\n privateCustomJsonAsString: !exists(json, 'privateCustomJsonAsString')\n ? undefined\n : json['privateCustomJsonAsString'],\n privateCustomJsonLdAsString: !exists(\n json,\n 'privateCustomJsonLdAsString',\n )\n ? undefined\n : json['privateCustomJsonLdAsString'],\n };\n}\n\nexport function UiAssetToJSON(value?: UiAsset | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n assetId: value.assetId,\n connectorEndpoint: value.connectorEndpoint,\n participantId: value.participantId,\n title: value.title,\n creatorOrganizationName: value.creatorOrganizationName,\n language: value.language,\n description: value.description,\n descriptionShortText: value.descriptionShortText,\n isOwnConnector: value.isOwnConnector,\n publisherHomepage: value.publisherHomepage,\n licenseUrl: value.licenseUrl,\n version: value.version,\n keywords: value.keywords,\n mediaType: value.mediaType,\n landingPageUrl: value.landingPageUrl,\n httpDatasourceHintsProxyMethod: value.httpDatasourceHintsProxyMethod,\n httpDatasourceHintsProxyPath: value.httpDatasourceHintsProxyPath,\n httpDatasourceHintsProxyQueryParams:\n value.httpDatasourceHintsProxyQueryParams,\n httpDatasourceHintsProxyBody: value.httpDatasourceHintsProxyBody,\n dataCategory: value.dataCategory,\n dataSubcategory: value.dataSubcategory,\n dataModel: value.dataModel,\n geoReferenceMethod: value.geoReferenceMethod,\n transportMode: value.transportMode,\n sovereignLegalName: value.sovereignLegalName,\n geoLocation: value.geoLocation,\n nutsLocations: value.nutsLocations,\n dataSampleUrls: value.dataSampleUrls,\n referenceFileUrls: value.referenceFileUrls,\n referenceFilesDescription: value.referenceFilesDescription,\n conditionsForUse: value.conditionsForUse,\n dataUpdateFrequency: value.dataUpdateFrequency,\n temporalCoverageFrom:\n value.temporalCoverageFrom === undefined\n ? undefined\n : value.temporalCoverageFrom.toISOString().substr(0, 10),\n temporalCoverageToInclusive:\n value.temporalCoverageToInclusive === undefined\n ? undefined\n : value.temporalCoverageToInclusive.toISOString().substr(0, 10),\n assetJsonLd: value.assetJsonLd,\n customJsonAsString: value.customJsonAsString,\n customJsonLdAsString: value.customJsonLdAsString,\n privateCustomJsonAsString: value.privateCustomJsonAsString,\n privateCustomJsonLdAsString: value.privateCustomJsonLdAsString,\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {UiAsset} from './UiAsset';\nimport {UiAssetFromJSON, UiAssetFromJSONTyped, UiAssetToJSON} from './UiAsset';\n\n/**\n * All data for the Asset Page\n * @export\n * @interface AssetPage\n */\nexport interface AssetPage {\n /**\n * Visible Assets\n * @type {Array<UiAsset>}\n * @memberof AssetPage\n */\n assets: Array<UiAsset>;\n}\n\n/**\n * Check if a given object implements the AssetPage interface.\n */\nexport function instanceOfAssetPage(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'assets' in value;\n\n return isInstance;\n}\n\nexport function AssetPageFromJSON(json: any): AssetPage {\n return AssetPageFromJSONTyped(json, false);\n}\n\nexport function AssetPageFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): AssetPage {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n assets: (json['assets'] as Array<any>).map(UiAssetFromJSON),\n };\n}\n\nexport function AssetPageToJSON(value?: AssetPage | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n assets: (value.assets as Array<any>).map(UiAssetToJSON),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\n\n/**\n * Available and used resources of a connector.\n * @export\n * @interface ConnectorLimits\n */\nexport interface ConnectorLimits {\n /**\n * Current amount of active consuming contract agreements.\n * @type {number}\n * @memberof ConnectorLimits\n */\n numActiveConsumingContractAgreements: number;\n /**\n * Maximum amount of active consuming contract agreements. A value of 'null' or a negative value means that there are no limit.\n * @type {number}\n * @memberof ConnectorLimits\n */\n maxActiveConsumingContractAgreements?: number;\n}\n\n/**\n * Check if a given object implements the ConnectorLimits interface.\n */\nexport function instanceOfConnectorLimits(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'numActiveConsumingContractAgreements' in value;\n\n return isInstance;\n}\n\nexport function ConnectorLimitsFromJSON(json: any): ConnectorLimits {\n return ConnectorLimitsFromJSONTyped(json, false);\n}\n\nexport function ConnectorLimitsFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): ConnectorLimits {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n numActiveConsumingContractAgreements:\n json['numActiveConsumingContractAgreements'],\n maxActiveConsumingContractAgreements: !exists(\n json,\n 'maxActiveConsumingContractAgreements',\n )\n ? undefined\n : json['maxActiveConsumingContractAgreements'],\n };\n}\n\nexport function ConnectorLimitsToJSON(value?: ConnectorLimits | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n numActiveConsumingContractAgreements:\n value.numActiveConsumingContractAgreements,\n maxActiveConsumingContractAgreements:\n value.maxActiveConsumingContractAgreements,\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * Whether the contract agreement is incoming or outgoing\n * @export\n */\nexport const ContractAgreementDirection = {\n Consuming: 'CONSUMING',\n Providing: 'PROVIDING',\n} as const;\nexport type ContractAgreementDirection =\n (typeof ContractAgreementDirection)[keyof typeof ContractAgreementDirection];\n\nexport function ContractAgreementDirectionFromJSON(\n json: any,\n): ContractAgreementDirection {\n return ContractAgreementDirectionFromJSONTyped(json, false);\n}\n\nexport function ContractAgreementDirectionFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): ContractAgreementDirection {\n return json as ContractAgreementDirection;\n}\n\nexport function ContractAgreementDirectionToJSON(\n value?: ContractAgreementDirection | null,\n): any {\n return value as any;\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * Simplified Transfer Process State to be used in UI\n * @export\n */\nexport const TransferProcessSimplifiedState = {\n Running: 'RUNNING',\n Ok: 'OK',\n Error: 'ERROR',\n} as const;\nexport type TransferProcessSimplifiedState =\n (typeof TransferProcessSimplifiedState)[keyof typeof TransferProcessSimplifiedState];\n\nexport function TransferProcessSimplifiedStateFromJSON(\n json: any,\n): TransferProcessSimplifiedState {\n return TransferProcessSimplifiedStateFromJSONTyped(json, false);\n}\n\nexport function TransferProcessSimplifiedStateFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): TransferProcessSimplifiedState {\n return json as TransferProcessSimplifiedState;\n}\n\nexport function TransferProcessSimplifiedStateToJSON(\n value?: TransferProcessSimplifiedState | null,\n): any {\n return value as any;\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {TransferProcessSimplifiedState} from './TransferProcessSimplifiedState';\nimport {\n TransferProcessSimplifiedStateFromJSON,\n TransferProcessSimplifiedStateFromJSONTyped,\n TransferProcessSimplifiedStateToJSON,\n} from './TransferProcessSimplifiedState';\n\n/**\n * Transfer Process State interpreted\n * @export\n * @interface TransferProcessState\n */\nexport interface TransferProcessState {\n /**\n * State name or 'CUSTOM'. State names only exist for original EDC Transfer Process States.\n * @type {string}\n * @memberof TransferProcessState\n */\n name: string;\n /**\n * State code\n * @type {number}\n * @memberof TransferProcessState\n */\n code: number;\n /**\n *\n * @type {TransferProcessSimplifiedState}\n * @memberof TransferProcessState\n */\n simplifiedState: TransferProcessSimplifiedState;\n}\n\n/**\n * Check if a given object implements the TransferProcessState interface.\n */\nexport function instanceOfTransferProcessState(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'name' in value;\n isInstance = isInstance && 'code' in value;\n isInstance = isInstance && 'simplifiedState' in value;\n\n return isInstance;\n}\n\nexport function TransferProcessStateFromJSON(json: any): TransferProcessState {\n return TransferProcessStateFromJSONTyped(json, false);\n}\n\nexport function TransferProcessStateFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): TransferProcessState {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n name: json['name'],\n code: json['code'],\n simplifiedState: TransferProcessSimplifiedStateFromJSON(\n json['simplifiedState'],\n ),\n };\n}\n\nexport function TransferProcessStateToJSON(\n value?: TransferProcessState | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n name: value.name,\n code: value.code,\n simplifiedState: TransferProcessSimplifiedStateToJSON(\n value.simplifiedState,\n ),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {TransferProcessState} from './TransferProcessState';\nimport {\n TransferProcessStateFromJSON,\n TransferProcessStateFromJSONTyped,\n TransferProcessStateToJSON,\n} from './TransferProcessState';\n\n/**\n * A Contract Agreement's Transfer Process\n * @export\n * @interface ContractAgreementTransferProcess\n */\nexport interface ContractAgreementTransferProcess {\n /**\n * Transfer Process ID\n * @type {string}\n * @memberof ContractAgreementTransferProcess\n */\n transferProcessId: string;\n /**\n * Last Change Date\n * @type {Date}\n * @memberof ContractAgreementTransferProcess\n */\n lastUpdatedDate: Date;\n /**\n *\n * @type {TransferProcessState}\n * @memberof ContractAgreementTransferProcess\n */\n state: TransferProcessState;\n /**\n * Error Message\n * @type {string}\n * @memberof ContractAgreementTransferProcess\n */\n errorMessage?: string;\n}\n\n/**\n * Check if a given object implements the ContractAgreementTransferProcess interface.\n */\nexport function instanceOfContractAgreementTransferProcess(\n value: object,\n): boolean {\n let isInstance = true;\n isInstance = isInstance && 'transferProcessId' in value;\n isInstance = isInstance && 'lastUpdatedDate' in value;\n isInstance = isInstance && 'state' in value;\n\n return isInstance;\n}\n\nexport function ContractAgreementTransferProcessFromJSON(\n json: any,\n): ContractAgreementTransferProcess {\n return ContractAgreementTransferProcessFromJSONTyped(json, false);\n}\n\nexport function ContractAgreementTransferProcessFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): ContractAgreementTransferProcess {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n transferProcessId: json['transferProcessId'],\n lastUpdatedDate: new Date(json['lastUpdatedDate']),\n state: TransferProcessStateFromJSON(json['state']),\n errorMessage: !exists(json, 'errorMessage')\n ? undefined\n : json['errorMessage'],\n };\n}\n\nexport function ContractAgreementTransferProcessToJSON(\n value?: ContractAgreementTransferProcess | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n transferProcessId: value.transferProcessId,\n lastUpdatedDate: value.lastUpdatedDate.toISOString(),\n state: TransferProcessStateToJSON(value.state),\n errorMessage: value.errorMessage,\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * Operator for policies\n * @export\n */\nexport const OperatorDto = {\n Eq: 'EQ',\n Neq: 'NEQ',\n Gt: 'GT',\n Geq: 'GEQ',\n Lt: 'LT',\n Leq: 'LEQ',\n In: 'IN',\n HasPart: 'HAS_PART',\n IsA: 'IS_A',\n IsAllOf: 'IS_ALL_OF',\n IsAnyOf: 'IS_ANY_OF',\n IsNoneOf: 'IS_NONE_OF',\n} as const;\nexport type OperatorDto = (typeof OperatorDto)[keyof typeof OperatorDto];\n\nexport function OperatorDtoFromJSON(json: any): OperatorDto {\n return OperatorDtoFromJSONTyped(json, false);\n}\n\nexport function OperatorDtoFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): OperatorDto {\n return json as OperatorDto;\n}\n\nexport function OperatorDtoToJSON(value?: OperatorDto | null): any {\n return value as any;\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * Supported Types of values for the right hand side of an expression\n * @export\n */\nexport const UiPolicyLiteralType = {\n String: 'STRING',\n StringList: 'STRING_LIST',\n Json: 'JSON',\n} as const;\nexport type UiPolicyLiteralType =\n (typeof UiPolicyLiteralType)[keyof typeof UiPolicyLiteralType];\n\nexport function UiPolicyLiteralTypeFromJSON(json: any): UiPolicyLiteralType {\n return UiPolicyLiteralTypeFromJSONTyped(json, false);\n}\n\nexport function UiPolicyLiteralTypeFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiPolicyLiteralType {\n return json as UiPolicyLiteralType;\n}\n\nexport function UiPolicyLiteralTypeToJSON(\n value?: UiPolicyLiteralType | null,\n): any {\n return value as any;\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {UiPolicyLiteralType} from './UiPolicyLiteralType';\nimport {\n UiPolicyLiteralTypeFromJSON,\n UiPolicyLiteralTypeFromJSONTyped,\n UiPolicyLiteralTypeToJSON,\n} from './UiPolicyLiteralType';\n\n/**\n * Sum type: A String, a list of Strings or a generic JSON value.\n * @export\n * @interface UiPolicyLiteral\n */\nexport interface UiPolicyLiteral {\n /**\n *\n * @type {UiPolicyLiteralType}\n * @memberof UiPolicyLiteral\n */\n type: UiPolicyLiteralType;\n /**\n * Only for types STRING and JSON\n * @type {string}\n * @memberof UiPolicyLiteral\n */\n value?: string;\n /**\n * Only for type STRING_LIST\n * @type {Array<string>}\n * @memberof UiPolicyLiteral\n */\n valueList?: Array<string>;\n}\n\n/**\n * Check if a given object implements the UiPolicyLiteral interface.\n */\nexport function instanceOfUiPolicyLiteral(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'type' in value;\n\n return isInstance;\n}\n\nexport function UiPolicyLiteralFromJSON(json: any): UiPolicyLiteral {\n return UiPolicyLiteralFromJSONTyped(json, false);\n}\n\nexport function UiPolicyLiteralFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiPolicyLiteral {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n type: UiPolicyLiteralTypeFromJSON(json['type']),\n value: !exists(json, 'value') ? undefined : json['value'],\n valueList: !exists(json, 'valueList') ? undefined : json['valueList'],\n };\n}\n\nexport function UiPolicyLiteralToJSON(value?: UiPolicyLiteral | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n type: UiPolicyLiteralTypeToJSON(value.type),\n value: value.value,\n valueList: value.valueList,\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {OperatorDto} from './OperatorDto';\nimport {\n OperatorDtoFromJSON,\n OperatorDtoFromJSONTyped,\n OperatorDtoToJSON,\n} from './OperatorDto';\nimport type {UiPolicyLiteral} from './UiPolicyLiteral';\nimport {\n UiPolicyLiteralFromJSON,\n UiPolicyLiteralFromJSONTyped,\n UiPolicyLiteralToJSON,\n} from './UiPolicyLiteral';\n\n/**\n * ODRL AtomicConstraint as supported by our UI\n * @export\n * @interface UiPolicyConstraint\n */\nexport interface UiPolicyConstraint {\n /**\n * Left side of the expression.\n * @type {string}\n * @memberof UiPolicyConstraint\n */\n left: string;\n /**\n *\n * @type {OperatorDto}\n * @memberof UiPolicyConstraint\n */\n operator: OperatorDto;\n /**\n *\n * @type {UiPolicyLiteral}\n * @memberof UiPolicyConstraint\n */\n right: UiPolicyLiteral;\n}\n\n/**\n * Check if a given object implements the UiPolicyConstraint interface.\n */\nexport function instanceOfUiPolicyConstraint(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'left' in value;\n isInstance = isInstance && 'operator' in value;\n isInstance = isInstance && 'right' in value;\n\n return isInstance;\n}\n\nexport function UiPolicyConstraintFromJSON(json: any): UiPolicyConstraint {\n return UiPolicyConstraintFromJSONTyped(json, false);\n}\n\nexport function UiPolicyConstraintFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiPolicyConstraint {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n left: json['left'],\n operator: OperatorDtoFromJSON(json['operator']),\n right: UiPolicyLiteralFromJSON(json['right']),\n };\n}\n\nexport function UiPolicyConstraintToJSON(\n value?: UiPolicyConstraint | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n left: value.left,\n operator: OperatorDtoToJSON(value.operator),\n right: UiPolicyLiteralToJSON(value.right),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {UiPolicyConstraint} from './UiPolicyConstraint';\nimport {\n UiPolicyConstraintFromJSON,\n UiPolicyConstraintFromJSONTyped,\n UiPolicyConstraintToJSON,\n} from './UiPolicyConstraint';\n\n/**\n * Type-Safe OpenAPI generator friendly Policy DTO as needed by our UI\n * @export\n * @interface UiPolicy\n */\nexport interface UiPolicy {\n /**\n * EDC Policy JSON-LD. This is required because the EDC requires the full policy when initiating contract negotiations.\n * @type {string}\n * @memberof UiPolicy\n */\n policyJsonLd: string;\n /**\n * Conjunction of required expressions for the policy to evaluate to TRUE.\n * @type {Array<UiPolicyConstraint>}\n * @memberof UiPolicy\n */\n constraints?: Array<UiPolicyConstraint>;\n /**\n * When trying to reduce the policy JSON-LD to our opinionated subset of functionalities, many fields and functionalities are unsupported. Should any discrepancies occur during the mapping process, we'll collect them here.\n * @type {Array<string>}\n * @memberof UiPolicy\n */\n errors: Array<string>;\n}\n\n/**\n * Check if a given object implements the UiPolicy interface.\n */\nexport function instanceOfUiPolicy(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'policyJsonLd' in value;\n isInstance = isInstance && 'errors' in value;\n\n return isInstance;\n}\n\nexport function UiPolicyFromJSON(json: any): UiPolicy {\n return UiPolicyFromJSONTyped(json, false);\n}\n\nexport function UiPolicyFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiPolicy {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n policyJsonLd: json['policyJsonLd'],\n constraints: !exists(json, 'constraints')\n ? undefined\n : (json['constraints'] as Array<any>).map(\n UiPolicyConstraintFromJSON,\n ),\n errors: json['errors'],\n };\n}\n\nexport function UiPolicyToJSON(value?: UiPolicy | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n policyJsonLd: value.policyJsonLd,\n constraints:\n value.constraints === undefined\n ? undefined\n : (value.constraints as Array<any>).map(\n UiPolicyConstraintToJSON,\n ),\n errors: value.errors,\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {ContractAgreementDirection} from './ContractAgreementDirection';\nimport {\n ContractAgreementDirectionFromJSON,\n ContractAgreementDirectionFromJSONTyped,\n ContractAgreementDirectionToJSON,\n} from './ContractAgreementDirection';\nimport type {ContractAgreementTransferProcess} from './ContractAgreementTransferProcess';\nimport {\n ContractAgreementTransferProcessFromJSON,\n ContractAgreementTransferProcessFromJSONTyped,\n ContractAgreementTransferProcessToJSON,\n} from './ContractAgreementTransferProcess';\nimport type {UiAsset} from './UiAsset';\nimport {UiAssetFromJSON, UiAssetFromJSONTyped, UiAssetToJSON} from './UiAsset';\nimport type {UiPolicy} from './UiPolicy';\nimport {\n UiPolicyFromJSON,\n UiPolicyFromJSONTyped,\n UiPolicyToJSON,\n} from './UiPolicy';\n\n/**\n * Contract Agreement for Contract Agreement Page\n * @export\n * @interface ContractAgreementCard\n */\nexport interface ContractAgreementCard {\n /**\n * Contract Agreement ID\n * @type {string}\n * @memberof ContractAgreementCard\n */\n contractAgreementId: string;\n /**\n * Contract Negotiation ID\n * @type {string}\n * @memberof ContractAgreementCard\n */\n contractNegotiationId: string;\n /**\n *\n * @type {ContractAgreementDirection}\n * @memberof ContractAgreementCard\n */\n direction: ContractAgreementDirection;\n /**\n * Other Connector's Endpoint\n * @type {string}\n * @memberof ContractAgreementCard\n */\n counterPartyAddress: string;\n /**\n * Other Connector's ID\n * @type {string}\n * @memberof ContractAgreementCard\n */\n counterPartyId: string;\n /**\n * Contract Agreements Signing Date\n * @type {Date}\n * @memberof ContractAgreementCard\n */\n contractSigningDate: Date;\n /**\n *\n * @type {UiAsset}\n * @memberof ContractAgreementCard\n */\n asset: UiAsset;\n /**\n *\n * @type {UiPolicy}\n * @memberof ContractAgreementCard\n */\n contractPolicy: UiPolicy;\n /**\n * Contract Agreement's Transfer Processes\n * @type {Array<ContractAgreementTransferProcess>}\n * @memberof ContractAgreementCard\n */\n transferProcesses: Array<ContractAgreementTransferProcess>;\n}\n\n/**\n * Check if a given object implements the ContractAgreementCard interface.\n */\nexport function instanceOfContractAgreementCard(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'contractAgreementId' in value;\n isInstance = isInstance && 'contractNegotiationId' in value;\n isInstance = isInstance && 'direction' in value;\n isInstance = isInstance && 'counterPartyAddress' in value;\n isInstance = isInstance && 'counterPartyId' in value;\n isInstance = isInstance && 'contractSigningDate' in value;\n isInstance = isInstance && 'asset' in value;\n isInstance = isInstance && 'contractPolicy' in value;\n isInstance = isInstance && 'transferProcesses' in value;\n\n return isInstance;\n}\n\nexport function ContractAgreementCardFromJSON(\n json: any,\n): ContractAgreementCard {\n return ContractAgreementCardFromJSONTyped(json, false);\n}\n\nexport function ContractAgreementCardFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): ContractAgreementCard {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n contractAgreementId: json['contractAgreementId'],\n contractNegotiationId: json['contractNegotiationId'],\n direction: ContractAgreementDirectionFromJSON(json['direction']),\n counterPartyAddress: json['counterPartyAddress'],\n counterPartyId: json['counterPartyId'],\n contractSigningDate: new Date(json['contractSigningDate']),\n asset: UiAssetFromJSON(json['asset']),\n contractPolicy: UiPolicyFromJSON(json['contractPolicy']),\n transferProcesses: (json['transferProcesses'] as Array<any>).map(\n ContractAgreementTransferProcessFromJSON,\n ),\n };\n}\n\nexport function ContractAgreementCardToJSON(\n value?: ContractAgreementCard | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n contractAgreementId: value.contractAgreementId,\n contractNegotiationId: value.contractNegotiationId,\n direction: ContractAgreementDirectionToJSON(value.direction),\n counterPartyAddress: value.counterPartyAddress,\n counterPartyId: value.counterPartyId,\n contractSigningDate: value.contractSigningDate.toISOString(),\n asset: UiAssetToJSON(value.asset),\n contractPolicy: UiPolicyToJSON(value.contractPolicy),\n transferProcesses: (value.transferProcesses as Array<any>).map(\n ContractAgreementTransferProcessToJSON,\n ),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {ContractAgreementCard} from './ContractAgreementCard';\nimport {\n ContractAgreementCardFromJSON,\n ContractAgreementCardFromJSONTyped,\n ContractAgreementCardToJSON,\n} from './ContractAgreementCard';\n\n/**\n *\n * @export\n * @interface ContractAgreementPage\n */\nexport interface ContractAgreementPage {\n /**\n * Contract Agreement Cards\n * @type {Array<ContractAgreementCard>}\n * @memberof ContractAgreementPage\n */\n contractAgreements: Array<ContractAgreementCard>;\n}\n\n/**\n * Check if a given object implements the ContractAgreementPage interface.\n */\nexport function instanceOfContractAgreementPage(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'contractAgreements' in value;\n\n return isInstance;\n}\n\nexport function ContractAgreementPageFromJSON(\n json: any,\n): ContractAgreementPage {\n return ContractAgreementPageFromJSONTyped(json, false);\n}\n\nexport function ContractAgreementPageFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): ContractAgreementPage {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n contractAgreements: (json['contractAgreements'] as Array<any>).map(\n ContractAgreementCardFromJSON,\n ),\n };\n}\n\nexport function ContractAgreementPageToJSON(\n value?: ContractAgreementPage | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n contractAgreements: (value.contractAgreements as Array<any>).map(\n ContractAgreementCardToJSON,\n ),\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * Value type of an asset selector criterion right expression value\n * @export\n */\nexport const UiCriterionLiteralType = {\n Value: 'VALUE',\n ValueList: 'VALUE_LIST',\n} as const;\nexport type UiCriterionLiteralType =\n (typeof UiCriterionLiteralType)[keyof typeof UiCriterionLiteralType];\n\nexport function UiCriterionLiteralTypeFromJSON(\n json: any,\n): UiCriterionLiteralType {\n return UiCriterionLiteralTypeFromJSONTyped(json, false);\n}\n\nexport function UiCriterionLiteralTypeFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiCriterionLiteralType {\n return json as UiCriterionLiteralType;\n}\n\nexport function UiCriterionLiteralTypeToJSON(\n value?: UiCriterionLiteralType | null,\n): any {\n return value as any;\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {UiCriterionLiteralType} from './UiCriterionLiteralType';\nimport {\n UiCriterionLiteralTypeFromJSON,\n UiCriterionLiteralTypeFromJSONTyped,\n UiCriterionLiteralTypeToJSON,\n} from './UiCriterionLiteralType';\n\n/**\n * Criterion Literal\n * @export\n * @interface UiCriterionLiteral\n */\nexport interface UiCriterionLiteral {\n /**\n *\n * @type {UiCriterionLiteralType}\n * @memberof UiCriterionLiteral\n */\n type?: UiCriterionLiteralType;\n /**\n * Only for type VALUE. The single value representation.\n * @type {string}\n * @memberof UiCriterionLiteral\n */\n value?: string;\n /**\n * Only for type VALUE_LIST. List of values, e.g. for the IN-Operator.\n * @type {Array<string>}\n * @memberof UiCriterionLiteral\n */\n valueList?: Array<string>;\n}\n\n/**\n * Check if a given object implements the UiCriterionLiteral interface.\n */\nexport function instanceOfUiCriterionLiteral(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function UiCriterionLiteralFromJSON(json: any): UiCriterionLiteral {\n return UiCriterionLiteralFromJSONTyped(json, false);\n}\n\nexport function UiCriterionLiteralFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiCriterionLiteral {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n type: !exists(json, 'type')\n ? undefined\n : UiCriterionLiteralTypeFromJSON(json['type']),\n value: !exists(json, 'value') ? undefined : json['value'],\n valueList: !exists(json, 'valueList') ? undefined : json['valueList'],\n };\n}\n\nexport function UiCriterionLiteralToJSON(\n value?: UiCriterionLiteral | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n type: UiCriterionLiteralTypeToJSON(value.type),\n value: value.value,\n valueList: value.valueList,\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * Operator for constraints\n * @export\n */\nexport const UiCriterionOperator = {\n Eq: 'EQ',\n In: 'IN',\n Like: 'LIKE',\n} as const;\nexport type UiCriterionOperator =\n (typeof UiCriterionOperator)[keyof typeof UiCriterionOperator];\n\nexport function UiCriterionOperatorFromJSON(json: any): UiCriterionOperator {\n return UiCriterionOperatorFromJSONTyped(json, false);\n}\n\nexport function UiCriterionOperatorFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiCriterionOperator {\n return json as UiCriterionOperator;\n}\n\nexport function UiCriterionOperatorToJSON(\n value?: UiCriterionOperator | null,\n): any {\n return value as any;\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {UiCriterionLiteral} from './UiCriterionLiteral';\nimport {\n UiCriterionLiteralFromJSON,\n UiCriterionLiteralFromJSONTyped,\n UiCriterionLiteralToJSON,\n} from './UiCriterionLiteral';\nimport type {UiCriterionOperator} from './UiCriterionOperator';\nimport {\n UiCriterionOperatorFromJSON,\n UiCriterionOperatorFromJSONTyped,\n UiCriterionOperatorToJSON,\n} from './UiCriterionOperator';\n\n/**\n * Contract Definition Criterion as supported by the UI\n * @export\n * @interface UiCriterion\n */\nexport interface UiCriterion {\n /**\n * Left Operand\n * @type {string}\n * @memberof UiCriterion\n */\n operandLeft: string;\n /**\n *\n * @type {UiCriterionOperator}\n * @memberof UiCriterion\n */\n operator: UiCriterionOperator;\n /**\n *\n * @type {UiCriterionLiteral}\n * @memberof UiCriterion\n */\n operandRight: UiCriterionLiteral;\n}\n\n/**\n * Check if a given object implements the UiCriterion interface.\n */\nexport function instanceOfUiCriterion(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'operandLeft' in value;\n isInstance = isInstance && 'operator' in value;\n isInstance = isInstance && 'operandRight' in value;\n\n return isInstance;\n}\n\nexport function UiCriterionFromJSON(json: any): UiCriterion {\n return UiCriterionFromJSONTyped(json, false);\n}\n\nexport function UiCriterionFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiCriterion {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n operandLeft: json['operandLeft'],\n operator: UiCriterionOperatorFromJSON(json['operator']),\n operandRight: UiCriterionLiteralFromJSON(json['operandRight']),\n };\n}\n\nexport function UiCriterionToJSON(value?: UiCriterion | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n operandLeft: value.operandLeft,\n operator: UiCriterionOperatorToJSON(value.operator),\n operandRight: UiCriterionLiteralToJSON(value.operandRight),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {UiCriterion} from './UiCriterion';\nimport {\n UiCriterionFromJSON,\n UiCriterionFromJSONTyped,\n UiCriterionToJSON,\n} from './UiCriterion';\n\n/**\n * Contract Definition List Entry for Contract Definition Page\n * @export\n * @interface ContractDefinitionEntry\n */\nexport interface ContractDefinitionEntry {\n /**\n * Contract Definition ID\n * @type {string}\n * @memberof ContractDefinitionEntry\n */\n contractDefinitionId: string;\n /**\n * Access Policy ID\n * @type {string}\n * @memberof ContractDefinitionEntry\n */\n accessPolicyId: string;\n /**\n * Contract Policy ID\n * @type {string}\n * @memberof ContractDefinitionEntry\n */\n contractPolicyId: string;\n /**\n * Criteria for the contract\n * @type {Array<UiCriterion>}\n * @memberof ContractDefinitionEntry\n */\n assetSelector: Array<UiCriterion>;\n}\n\n/**\n * Check if a given object implements the ContractDefinitionEntry interface.\n */\nexport function instanceOfContractDefinitionEntry(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'contractDefinitionId' in value;\n isInstance = isInstance && 'accessPolicyId' in value;\n isInstance = isInstance && 'contractPolicyId' in value;\n isInstance = isInstance && 'assetSelector' in value;\n\n return isInstance;\n}\n\nexport function ContractDefinitionEntryFromJSON(\n json: any,\n): ContractDefinitionEntry {\n return ContractDefinitionEntryFromJSONTyped(json, false);\n}\n\nexport function ContractDefinitionEntryFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): ContractDefinitionEntry {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n contractDefinitionId: json['contractDefinitionId'],\n accessPolicyId: json['accessPolicyId'],\n contractPolicyId: json['contractPolicyId'],\n assetSelector: (json['assetSelector'] as Array<any>).map(\n UiCriterionFromJSON,\n ),\n };\n}\n\nexport function ContractDefinitionEntryToJSON(\n value?: ContractDefinitionEntry | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n contractDefinitionId: value.contractDefinitionId,\n accessPolicyId: value.accessPolicyId,\n contractPolicyId: value.contractPolicyId,\n assetSelector: (value.assetSelector as Array<any>).map(\n UiCriterionToJSON,\n ),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {ContractDefinitionEntry} from './ContractDefinitionEntry';\nimport {\n ContractDefinitionEntryFromJSON,\n ContractDefinitionEntryFromJSONTyped,\n ContractDefinitionEntryToJSON,\n} from './ContractDefinitionEntry';\n\n/**\n * All data for the Contract Definition Page\n * @export\n * @interface ContractDefinitionPage\n */\nexport interface ContractDefinitionPage {\n /**\n * Contract Definition Entries\n * @type {Array<ContractDefinitionEntry>}\n * @memberof ContractDefinitionPage\n */\n contractDefinitions: Array<ContractDefinitionEntry>;\n}\n\n/**\n * Check if a given object implements the ContractDefinitionPage interface.\n */\nexport function instanceOfContractDefinitionPage(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'contractDefinitions' in value;\n\n return isInstance;\n}\n\nexport function ContractDefinitionPageFromJSON(\n json: any,\n): ContractDefinitionPage {\n return ContractDefinitionPageFromJSONTyped(json, false);\n}\n\nexport function ContractDefinitionPageFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): ContractDefinitionPage {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n contractDefinitions: (json['contractDefinitions'] as Array<any>).map(\n ContractDefinitionEntryFromJSON,\n ),\n };\n}\n\nexport function ContractDefinitionPageToJSON(\n value?: ContractDefinitionPage | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n contractDefinitions: (value.contractDefinitions as Array<any>).map(\n ContractDefinitionEntryToJSON,\n ),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {UiCriterion} from './UiCriterion';\nimport {\n UiCriterionFromJSON,\n UiCriterionFromJSONTyped,\n UiCriterionToJSON,\n} from './UiCriterion';\n\n/**\n * Data for creating a Contract Definition\n * @export\n * @interface ContractDefinitionRequest\n */\nexport interface ContractDefinitionRequest {\n /**\n * Contract Definition ID\n * @type {string}\n * @memberof ContractDefinitionRequest\n */\n contractDefinitionId: string;\n /**\n * Contract Policy ID\n * @type {string}\n * @memberof ContractDefinitionRequest\n */\n contractPolicyId: string;\n /**\n * Access Policy ID\n * @type {string}\n * @memberof ContractDefinitionRequest\n */\n accessPolicyId: string;\n /**\n * List of Criteria for the contract\n * @type {Array<UiCriterion>}\n * @memberof ContractDefinitionRequest\n */\n assetSelector: Array<UiCriterion>;\n}\n\n/**\n * Check if a given object implements the ContractDefinitionRequest interface.\n */\nexport function instanceOfContractDefinitionRequest(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'contractDefinitionId' in value;\n isInstance = isInstance && 'contractPolicyId' in value;\n isInstance = isInstance && 'accessPolicyId' in value;\n isInstance = isInstance && 'assetSelector' in value;\n\n return isInstance;\n}\n\nexport function ContractDefinitionRequestFromJSON(\n json: any,\n): ContractDefinitionRequest {\n return ContractDefinitionRequestFromJSONTyped(json, false);\n}\n\nexport function ContractDefinitionRequestFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): ContractDefinitionRequest {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n contractDefinitionId: json['contractDefinitionId'],\n contractPolicyId: json['contractPolicyId'],\n accessPolicyId: json['accessPolicyId'],\n assetSelector: (json['assetSelector'] as Array<any>).map(\n UiCriterionFromJSON,\n ),\n };\n}\n\nexport function ContractDefinitionRequestToJSON(\n value?: ContractDefinitionRequest | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n contractDefinitionId: value.contractDefinitionId,\n contractPolicyId: value.contractPolicyId,\n accessPolicyId: value.accessPolicyId,\n assetSelector: (value.assetSelector as Array<any>).map(\n UiCriterionToJSON,\n ),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\n\n/**\n * Data for initiating a Contract Negotiation\n * @export\n * @interface ContractNegotiationRequest\n */\nexport interface ContractNegotiationRequest {\n /**\n * Counter Party Address\n * @type {string}\n * @memberof ContractNegotiationRequest\n */\n counterPartyAddress: string;\n /**\n * Counter Party Participant ID\n * @type {string}\n * @memberof ContractNegotiationRequest\n */\n counterPartyParticipantId: string;\n /**\n * Contract Offer Dto\n * @type {string}\n * @memberof ContractNegotiationRequest\n */\n contractOfferId: string;\n /**\n * Policy JsonLd\n * @type {string}\n * @memberof ContractNegotiationRequest\n */\n policyJsonLd: string;\n /**\n * Asset ID\n * @type {string}\n * @memberof ContractNegotiationRequest\n */\n assetId: string;\n}\n\n/**\n * Check if a given object implements the ContractNegotiationRequest interface.\n */\nexport function instanceOfContractNegotiationRequest(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'counterPartyAddress' in value;\n isInstance = isInstance && 'counterPartyParticipantId' in value;\n isInstance = isInstance && 'contractOfferId' in value;\n isInstance = isInstance && 'policyJsonLd' in value;\n isInstance = isInstance && 'assetId' in value;\n\n return isInstance;\n}\n\nexport function ContractNegotiationRequestFromJSON(\n json: any,\n): ContractNegotiationRequest {\n return ContractNegotiationRequestFromJSONTyped(json, false);\n}\n\nexport function ContractNegotiationRequestFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): ContractNegotiationRequest {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n counterPartyAddress: json['counterPartyAddress'],\n counterPartyParticipantId: json['counterPartyParticipantId'],\n contractOfferId: json['contractOfferId'],\n policyJsonLd: json['policyJsonLd'],\n assetId: json['assetId'],\n };\n}\n\nexport function ContractNegotiationRequestToJSON(\n value?: ContractNegotiationRequest | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n counterPartyAddress: value.counterPartyAddress,\n counterPartyParticipantId: value.counterPartyParticipantId,\n contractOfferId: value.contractOfferId,\n policyJsonLd: value.policyJsonLd,\n assetId: value.assetId,\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * Simplified Contract Negotiation State to be used in UI\n * @export\n */\nexport const ContractNegotiationSimplifiedState = {\n InProgress: 'IN_PROGRESS',\n Agreed: 'AGREED',\n Terminated: 'TERMINATED',\n} as const;\nexport type ContractNegotiationSimplifiedState =\n (typeof ContractNegotiationSimplifiedState)[keyof typeof ContractNegotiationSimplifiedState];\n\nexport function ContractNegotiationSimplifiedStateFromJSON(\n json: any,\n): ContractNegotiationSimplifiedState {\n return ContractNegotiationSimplifiedStateFromJSONTyped(json, false);\n}\n\nexport function ContractNegotiationSimplifiedStateFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): ContractNegotiationSimplifiedState {\n return json as ContractNegotiationSimplifiedState;\n}\n\nexport function ContractNegotiationSimplifiedStateToJSON(\n value?: ContractNegotiationSimplifiedState | null,\n): any {\n return value as any;\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {ContractNegotiationSimplifiedState} from './ContractNegotiationSimplifiedState';\nimport {\n ContractNegotiationSimplifiedStateFromJSON,\n ContractNegotiationSimplifiedStateFromJSONTyped,\n ContractNegotiationSimplifiedStateToJSON,\n} from './ContractNegotiationSimplifiedState';\n\n/**\n * Contract Negotiation State interpreted\n * @export\n * @interface ContractNegotiationState\n */\nexport interface ContractNegotiationState {\n /**\n * State name or 'CUSTOM'. State names only exist for original EDC Contract Negotiation States.\n * @type {string}\n * @memberof ContractNegotiationState\n */\n name: string;\n /**\n * State code\n * @type {number}\n * @memberof ContractNegotiationState\n */\n code: number;\n /**\n *\n * @type {ContractNegotiationSimplifiedState}\n * @memberof ContractNegotiationState\n */\n simplifiedState: ContractNegotiationSimplifiedState;\n}\n\n/**\n * Check if a given object implements the ContractNegotiationState interface.\n */\nexport function instanceOfContractNegotiationState(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'name' in value;\n isInstance = isInstance && 'code' in value;\n isInstance = isInstance && 'simplifiedState' in value;\n\n return isInstance;\n}\n\nexport function ContractNegotiationStateFromJSON(\n json: any,\n): ContractNegotiationState {\n return ContractNegotiationStateFromJSONTyped(json, false);\n}\n\nexport function ContractNegotiationStateFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): ContractNegotiationState {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n name: json['name'],\n code: json['code'],\n simplifiedState: ContractNegotiationSimplifiedStateFromJSON(\n json['simplifiedState'],\n ),\n };\n}\n\nexport function ContractNegotiationStateToJSON(\n value?: ContractNegotiationState | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n name: value.name,\n code: value.code,\n simplifiedState: ContractNegotiationSimplifiedStateToJSON(\n value.simplifiedState,\n ),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\n\n/**\n * DAPS Config\n * @export\n * @interface DashboardDapsConfig\n */\nexport interface DashboardDapsConfig {\n /**\n * Your Connector's DAPS Token URL\n * @type {string}\n * @memberof DashboardDapsConfig\n */\n tokenUrl: string;\n /**\n * Your Connector's DAPS JWKS URL\n * @type {string}\n * @memberof DashboardDapsConfig\n */\n jwksUrl: string;\n}\n\n/**\n * Check if a given object implements the DashboardDapsConfig interface.\n */\nexport function instanceOfDashboardDapsConfig(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'tokenUrl' in value;\n isInstance = isInstance && 'jwksUrl' in value;\n\n return isInstance;\n}\n\nexport function DashboardDapsConfigFromJSON(json: any): DashboardDapsConfig {\n return DashboardDapsConfigFromJSONTyped(json, false);\n}\n\nexport function DashboardDapsConfigFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): DashboardDapsConfig {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n tokenUrl: json['tokenUrl'],\n jwksUrl: json['jwksUrl'],\n };\n}\n\nexport function DashboardDapsConfigToJSON(\n value?: DashboardDapsConfig | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n tokenUrl: value.tokenUrl,\n jwksUrl: value.jwksUrl,\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\n\n/**\n * Managed Identity Wallet (MIW) Config\n * @export\n * @interface DashboardMiwConfig\n */\nexport interface DashboardMiwConfig {\n /**\n * Your Connector's MIW's URL\n * @type {string}\n * @memberof DashboardMiwConfig\n */\n url: string;\n /**\n * Your Connector's MIW's Token URL\n * @type {string}\n * @memberof DashboardMiwConfig\n */\n tokenUrl: string;\n /**\n * Your Connector's MIW's Authority ID\n * @type {string}\n * @memberof DashboardMiwConfig\n */\n authorityId: string;\n}\n\n/**\n * Check if a given object implements the DashboardMiwConfig interface.\n */\nexport function instanceOfDashboardMiwConfig(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'url' in value;\n isInstance = isInstance && 'tokenUrl' in value;\n isInstance = isInstance && 'authorityId' in value;\n\n return isInstance;\n}\n\nexport function DashboardMiwConfigFromJSON(json: any): DashboardMiwConfig {\n return DashboardMiwConfigFromJSONTyped(json, false);\n}\n\nexport function DashboardMiwConfigFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): DashboardMiwConfig {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n url: json['url'],\n tokenUrl: json['tokenUrl'],\n authorityId: json['authorityId'],\n };\n}\n\nexport function DashboardMiwConfigToJSON(\n value?: DashboardMiwConfig | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n url: value.url,\n tokenUrl: value.tokenUrl,\n authorityId: value.authorityId,\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\n\n/**\n * Providing Transfer Process Amounts\n * @export\n * @interface DashboardTransferAmounts\n */\nexport interface DashboardTransferAmounts {\n /**\n * Number of Transfer Processes\n * @type {number}\n * @memberof DashboardTransferAmounts\n */\n numTotal: number;\n /**\n * Number of running Transfer Processes\n * @type {number}\n * @memberof DashboardTransferAmounts\n */\n numRunning: number;\n /**\n * Number of successful Transfer Processes\n * @type {number}\n * @memberof DashboardTransferAmounts\n */\n numOk: number;\n /**\n * Number of failed Transfer Processes\n * @type {number}\n * @memberof DashboardTransferAmounts\n */\n numError: number;\n}\n\n/**\n * Check if a given object implements the DashboardTransferAmounts interface.\n */\nexport function instanceOfDashboardTransferAmounts(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'numTotal' in value;\n isInstance = isInstance && 'numRunning' in value;\n isInstance = isInstance && 'numOk' in value;\n isInstance = isInstance && 'numError' in value;\n\n return isInstance;\n}\n\nexport function DashboardTransferAmountsFromJSON(\n json: any,\n): DashboardTransferAmounts {\n return DashboardTransferAmountsFromJSONTyped(json, false);\n}\n\nexport function DashboardTransferAmountsFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): DashboardTransferAmounts {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n numTotal: json['numTotal'],\n numRunning: json['numRunning'],\n numOk: json['numOk'],\n numError: json['numError'],\n };\n}\n\nexport function DashboardTransferAmountsToJSON(\n value?: DashboardTransferAmounts | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n numTotal: value.numTotal,\n numRunning: value.numRunning,\n numOk: value.numOk,\n numError: value.numError,\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {DashboardDapsConfig} from './DashboardDapsConfig';\nimport {\n DashboardDapsConfigFromJSON,\n DashboardDapsConfigFromJSONTyped,\n DashboardDapsConfigToJSON,\n} from './DashboardDapsConfig';\nimport type {DashboardMiwConfig} from './DashboardMiwConfig';\nimport {\n DashboardMiwConfigFromJSON,\n DashboardMiwConfigFromJSONTyped,\n DashboardMiwConfigToJSON,\n} from './DashboardMiwConfig';\nimport type {DashboardTransferAmounts} from './DashboardTransferAmounts';\nimport {\n DashboardTransferAmountsFromJSON,\n DashboardTransferAmountsFromJSONTyped,\n DashboardTransferAmountsToJSON,\n} from './DashboardTransferAmounts';\n\n/**\n *\n * @export\n * @interface DashboardPage\n */\nexport interface DashboardPage {\n /**\n * Number of Assets\n * @type {number}\n * @memberof DashboardPage\n */\n numAssets: number;\n /**\n * Number of Policies\n * @type {number}\n * @memberof DashboardPage\n */\n numPolicies: number;\n /**\n * Number of Contract Definitions\n * @type {number}\n * @memberof DashboardPage\n */\n numContractDefinitions: number;\n /**\n * Number of consuming Contract Agreements\n * @type {number}\n * @memberof DashboardPage\n */\n numContractAgreementsConsuming: number;\n /**\n * Number of providing Contract Agreements\n * @type {number}\n * @memberof DashboardPage\n */\n numContractAgreementsProviding: number;\n /**\n *\n * @type {DashboardTransferAmounts}\n * @memberof DashboardPage\n */\n transferProcessesConsuming: DashboardTransferAmounts;\n /**\n *\n * @type {DashboardTransferAmounts}\n * @memberof DashboardPage\n */\n transferProcessesProviding: DashboardTransferAmounts;\n /**\n * Your Connector's Connector Endpoint\n * @type {string}\n * @memberof DashboardPage\n */\n connectorEndpoint: string;\n /**\n * Your Connector's Participant ID\n * @type {string}\n * @memberof DashboardPage\n */\n connectorParticipantId: string;\n /**\n * Your Connector's Title\n * @type {string}\n * @memberof DashboardPage\n */\n connectorTitle: string;\n /**\n * Your Connector's Description\n * @type {string}\n * @memberof DashboardPage\n */\n connectorDescription: string;\n /**\n * Your Organization Homepage\n * @type {string}\n * @memberof DashboardPage\n */\n connectorCuratorUrl: string;\n /**\n * Your Organization Name\n * @type {string}\n * @memberof DashboardPage\n */\n connectorCuratorName: string;\n /**\n * Your Connector's Maintainer's Organization Homepage\n * @type {string}\n * @memberof DashboardPage\n */\n connectorMaintainerUrl: string;\n /**\n * Your Connector's Maintainer's Organization Name\n * @type {string}\n * @memberof DashboardPage\n */\n connectorMaintainerName: string;\n /**\n *\n * @type {DashboardDapsConfig}\n * @memberof DashboardPage\n */\n connectorDapsConfig?: DashboardDapsConfig;\n /**\n *\n * @type {DashboardMiwConfig}\n * @memberof DashboardPage\n */\n connectorMiwConfig?: DashboardMiwConfig;\n}\n\n/**\n * Check if a given object implements the DashboardPage interface.\n */\nexport function instanceOfDashboardPage(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'numAssets' in value;\n isInstance = isInstance && 'numPolicies' in value;\n isInstance = isInstance && 'numContractDefinitions' in value;\n isInstance = isInstance && 'numContractAgreementsConsuming' in value;\n isInstance = isInstance && 'numContractAgreementsProviding' in value;\n isInstance = isInstance && 'transferProcessesConsuming' in value;\n isInstance = isInstance && 'transferProcessesProviding' in value;\n isInstance = isInstance && 'connectorEndpoint' in value;\n isInstance = isInstance && 'connectorParticipantId' in value;\n isInstance = isInstance && 'connectorTitle' in value;\n isInstance = isInstance && 'connectorDescription' in value;\n isInstance = isInstance && 'connectorCuratorUrl' in value;\n isInstance = isInstance && 'connectorCuratorName' in value;\n isInstance = isInstance && 'connectorMaintainerUrl' in value;\n isInstance = isInstance && 'connectorMaintainerName' in value;\n\n return isInstance;\n}\n\nexport function DashboardPageFromJSON(json: any): DashboardPage {\n return DashboardPageFromJSONTyped(json, false);\n}\n\nexport function DashboardPageFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): DashboardPage {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n numAssets: json['numAssets'],\n numPolicies: json['numPolicies'],\n numContractDefinitions: json['numContractDefinitions'],\n numContractAgreementsConsuming: json['numContractAgreementsConsuming'],\n numContractAgreementsProviding: json['numContractAgreementsProviding'],\n transferProcessesConsuming: DashboardTransferAmountsFromJSON(\n json['transferProcessesConsuming'],\n ),\n transferProcessesProviding: DashboardTransferAmountsFromJSON(\n json['transferProcessesProviding'],\n ),\n connectorEndpoint: json['connectorEndpoint'],\n connectorParticipantId: json['connectorParticipantId'],\n connectorTitle: json['connectorTitle'],\n connectorDescription: json['connectorDescription'],\n connectorCuratorUrl: json['connectorCuratorUrl'],\n connectorCuratorName: json['connectorCuratorName'],\n connectorMaintainerUrl: json['connectorMaintainerUrl'],\n connectorMaintainerName: json['connectorMaintainerName'],\n connectorDapsConfig: !exists(json, 'connectorDapsConfig')\n ? undefined\n : DashboardDapsConfigFromJSON(json['connectorDapsConfig']),\n connectorMiwConfig: !exists(json, 'connectorMiwConfig')\n ? undefined\n : DashboardMiwConfigFromJSON(json['connectorMiwConfig']),\n };\n}\n\nexport function DashboardPageToJSON(value?: DashboardPage | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n numAssets: value.numAssets,\n numPolicies: value.numPolicies,\n numContractDefinitions: value.numContractDefinitions,\n numContractAgreementsConsuming: value.numContractAgreementsConsuming,\n numContractAgreementsProviding: value.numContractAgreementsProviding,\n transferProcessesConsuming: DashboardTransferAmountsToJSON(\n value.transferProcessesConsuming,\n ),\n transferProcessesProviding: DashboardTransferAmountsToJSON(\n value.transferProcessesProviding,\n ),\n connectorEndpoint: value.connectorEndpoint,\n connectorParticipantId: value.connectorParticipantId,\n connectorTitle: value.connectorTitle,\n connectorDescription: value.connectorDescription,\n connectorCuratorUrl: value.connectorCuratorUrl,\n connectorCuratorName: value.connectorCuratorName,\n connectorMaintainerUrl: value.connectorMaintainerUrl,\n connectorMaintainerName: value.connectorMaintainerName,\n connectorDapsConfig: DashboardDapsConfigToJSON(\n value.connectorDapsConfig,\n ),\n connectorMiwConfig: DashboardMiwConfigToJSON(value.connectorMiwConfig),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\n\n/**\n * Marks the operation as successful\n * @export\n * @interface IdResponseDto\n */\nexport interface IdResponseDto {\n /**\n * ID\n * @type {string}\n * @memberof IdResponseDto\n */\n id: string;\n /**\n * Change Date\n * @type {Date}\n * @memberof IdResponseDto\n */\n lastUpdatedDate: Date;\n}\n\n/**\n * Check if a given object implements the IdResponseDto interface.\n */\nexport function instanceOfIdResponseDto(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'id' in value;\n isInstance = isInstance && 'lastUpdatedDate' in value;\n\n return isInstance;\n}\n\nexport function IdResponseDtoFromJSON(json: any): IdResponseDto {\n return IdResponseDtoFromJSONTyped(json, false);\n}\n\nexport function IdResponseDtoFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): IdResponseDto {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n id: json['id'],\n lastUpdatedDate: new Date(json['lastUpdatedDate']),\n };\n}\n\nexport function IdResponseDtoToJSON(value?: IdResponseDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n id: value.id,\n lastUpdatedDate: value.lastUpdatedDate.toISOString(),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\n\n/**\n * Required data for starting a Contract Agreement's Transfer Process\n * @export\n * @interface InitiateCustomTransferRequest\n */\nexport interface InitiateCustomTransferRequest {\n /**\n * Contract Agreement ID\n * @type {string}\n * @memberof InitiateCustomTransferRequest\n */\n contractAgreementId: string;\n /**\n * Partial TransferProcessRequestJsonLd JSON-LD. Fields participantId, connectorEndpoint, assetId and contractId can be omitted, they will be overridden with information from the contract.\n * @type {string}\n * @memberof InitiateCustomTransferRequest\n */\n transferProcessRequestJsonLd: string;\n}\n\n/**\n * Check if a given object implements the InitiateCustomTransferRequest interface.\n */\nexport function instanceOfInitiateCustomTransferRequest(\n value: object,\n): boolean {\n let isInstance = true;\n isInstance = isInstance && 'contractAgreementId' in value;\n isInstance = isInstance && 'transferProcessRequestJsonLd' in value;\n\n return isInstance;\n}\n\nexport function InitiateCustomTransferRequestFromJSON(\n json: any,\n): InitiateCustomTransferRequest {\n return InitiateCustomTransferRequestFromJSONTyped(json, false);\n}\n\nexport function InitiateCustomTransferRequestFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): InitiateCustomTransferRequest {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n contractAgreementId: json['contractAgreementId'],\n transferProcessRequestJsonLd: json['transferProcessRequestJsonLd'],\n };\n}\n\nexport function InitiateCustomTransferRequestToJSON(\n value?: InitiateCustomTransferRequest | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n contractAgreementId: value.contractAgreementId,\n transferProcessRequestJsonLd: value.transferProcessRequestJsonLd,\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\n\n/**\n * For type PARAMS_ONLY: Required data for starting a Transfer Process\n * @export\n * @interface InitiateTransferRequest\n */\nexport interface InitiateTransferRequest {\n /**\n * Contract Agreement ID\n * @type {string}\n * @memberof InitiateTransferRequest\n */\n contractAgreementId: string;\n /**\n * Data Sink / Data Address\n * @type {{ [key: string]: string; }}\n * @memberof InitiateTransferRequest\n */\n dataSinkProperties: {[key: string]: string};\n /**\n * Additional transfer process properties. These are not passed to the consumer EDC\n * @type {{ [key: string]: string; }}\n * @memberof InitiateTransferRequest\n */\n transferProcessProperties: {[key: string]: string};\n}\n\n/**\n * Check if a given object implements the InitiateTransferRequest interface.\n */\nexport function instanceOfInitiateTransferRequest(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'contractAgreementId' in value;\n isInstance = isInstance && 'dataSinkProperties' in value;\n isInstance = isInstance && 'transferProcessProperties' in value;\n\n return isInstance;\n}\n\nexport function InitiateTransferRequestFromJSON(\n json: any,\n): InitiateTransferRequest {\n return InitiateTransferRequestFromJSONTyped(json, false);\n}\n\nexport function InitiateTransferRequestFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): InitiateTransferRequest {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n contractAgreementId: json['contractAgreementId'],\n dataSinkProperties: json['dataSinkProperties'],\n transferProcessProperties: json['transferProcessProperties'],\n };\n}\n\nexport function InitiateTransferRequestToJSON(\n value?: InitiateTransferRequest | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n contractAgreementId: value.contractAgreementId,\n dataSinkProperties: value.dataSinkProperties,\n transferProcessProperties: value.transferProcessProperties,\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\n\n/**\n * Counts of incoming and outgoing TransferProcesses and status\n * @export\n * @interface TransferProcessStatesDto\n */\nexport interface TransferProcessStatesDto {\n /**\n * States and count of incoming transferprocess counts\n * @type {{ [key: string]: number; }}\n * @memberof TransferProcessStatesDto\n */\n incomingTransferProcessCounts: {[key: string]: number};\n /**\n * States and counts of outgoing transferprocess counts\n * @type {{ [key: string]: number; }}\n * @memberof TransferProcessStatesDto\n */\n outgoingTransferProcessCounts: {[key: string]: number};\n}\n\n/**\n * Check if a given object implements the TransferProcessStatesDto interface.\n */\nexport function instanceOfTransferProcessStatesDto(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'incomingTransferProcessCounts' in value;\n isInstance = isInstance && 'outgoingTransferProcessCounts' in value;\n\n return isInstance;\n}\n\nexport function TransferProcessStatesDtoFromJSON(\n json: any,\n): TransferProcessStatesDto {\n return TransferProcessStatesDtoFromJSONTyped(json, false);\n}\n\nexport function TransferProcessStatesDtoFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): TransferProcessStatesDto {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n incomingTransferProcessCounts: json['incomingTransferProcessCounts'],\n outgoingTransferProcessCounts: json['outgoingTransferProcessCounts'],\n };\n}\n\nexport function TransferProcessStatesDtoToJSON(\n value?: TransferProcessStatesDto | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n incomingTransferProcessCounts: value.incomingTransferProcessCounts,\n outgoingTransferProcessCounts: value.outgoingTransferProcessCounts,\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {TransferProcessStatesDto} from './TransferProcessStatesDto';\nimport {\n TransferProcessStatesDtoFromJSON,\n TransferProcessStatesDtoFromJSONTyped,\n TransferProcessStatesDtoToJSON,\n} from './TransferProcessStatesDto';\n\n/**\n * EDC-status-defining KPIs\n * @export\n * @interface KpiResult\n */\nexport interface KpiResult {\n /**\n * Counts of assets\n * @type {number}\n * @memberof KpiResult\n */\n assetsCount: number;\n /**\n * Counts of policies\n * @type {number}\n * @memberof KpiResult\n */\n policiesCount: number;\n /**\n * Counts of contract definitions\n * @type {number}\n * @memberof KpiResult\n */\n contractDefinitionsCount: number;\n /**\n * Counts of contract agreements\n * @type {number}\n * @memberof KpiResult\n */\n contractAgreementsCount: number;\n /**\n *\n * @type {TransferProcessStatesDto}\n * @memberof KpiResult\n */\n transferProcessDto: TransferProcessStatesDto;\n}\n\n/**\n * Check if a given object implements the KpiResult interface.\n */\nexport function instanceOfKpiResult(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'assetsCount' in value;\n isInstance = isInstance && 'policiesCount' in value;\n isInstance = isInstance && 'contractDefinitionsCount' in value;\n isInstance = isInstance && 'contractAgreementsCount' in value;\n isInstance = isInstance && 'transferProcessDto' in value;\n\n return isInstance;\n}\n\nexport function KpiResultFromJSON(json: any): KpiResult {\n return KpiResultFromJSONTyped(json, false);\n}\n\nexport function KpiResultFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): KpiResult {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n assetsCount: json['assetsCount'],\n policiesCount: json['policiesCount'],\n contractDefinitionsCount: json['contractDefinitionsCount'],\n contractAgreementsCount: json['contractAgreementsCount'],\n transferProcessDto: TransferProcessStatesDtoFromJSON(\n json['transferProcessDto'],\n ),\n };\n}\n\nexport function KpiResultToJSON(value?: KpiResult | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n assetsCount: value.assetsCount,\n policiesCount: value.policiesCount,\n contractDefinitionsCount: value.contractDefinitionsCount,\n contractAgreementsCount: value.contractAgreementsCount,\n transferProcessDto: TransferProcessStatesDtoToJSON(\n value.transferProcessDto,\n ),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {UiPolicyConstraint} from './UiPolicyConstraint';\nimport {\n UiPolicyConstraintFromJSON,\n UiPolicyConstraintFromJSONTyped,\n UiPolicyConstraintToJSON,\n} from './UiPolicyConstraint';\n\n/**\n * Type-Safe OpenAPI generator friendly Policy Create DTO that supports an opinionated subset of the original EDC Policy Entity.\n * @export\n * @interface UiPolicyCreateRequest\n */\nexport interface UiPolicyCreateRequest {\n /**\n * Conjunction of required expressions for the policy to evaluate to TRUE.\n * @type {Array<UiPolicyConstraint>}\n * @memberof UiPolicyCreateRequest\n */\n constraints?: Array<UiPolicyConstraint>;\n}\n\n/**\n * Check if a given object implements the UiPolicyCreateRequest interface.\n */\nexport function instanceOfUiPolicyCreateRequest(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function UiPolicyCreateRequestFromJSON(\n json: any,\n): UiPolicyCreateRequest {\n return UiPolicyCreateRequestFromJSONTyped(json, false);\n}\n\nexport function UiPolicyCreateRequestFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiPolicyCreateRequest {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n constraints: !exists(json, 'constraints')\n ? undefined\n : (json['constraints'] as Array<any>).map(\n UiPolicyConstraintFromJSON,\n ),\n };\n}\n\nexport function UiPolicyCreateRequestToJSON(\n value?: UiPolicyCreateRequest | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n constraints:\n value.constraints === undefined\n ? undefined\n : (value.constraints as Array<any>).map(\n UiPolicyConstraintToJSON,\n ),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {UiPolicyCreateRequest} from './UiPolicyCreateRequest';\nimport {\n UiPolicyCreateRequestFromJSON,\n UiPolicyCreateRequestFromJSONTyped,\n UiPolicyCreateRequestToJSON,\n} from './UiPolicyCreateRequest';\n\n/**\n * Data for creating a Policy Definition\n * @export\n * @interface PolicyDefinitionCreateRequest\n */\nexport interface PolicyDefinitionCreateRequest {\n /**\n * Policy Definition ID\n * @type {string}\n * @memberof PolicyDefinitionCreateRequest\n */\n policyDefinitionId: string;\n /**\n *\n * @type {UiPolicyCreateRequest}\n * @memberof PolicyDefinitionCreateRequest\n */\n policy: UiPolicyCreateRequest;\n}\n\n/**\n * Check if a given object implements the PolicyDefinitionCreateRequest interface.\n */\nexport function instanceOfPolicyDefinitionCreateRequest(\n value: object,\n): boolean {\n let isInstance = true;\n isInstance = isInstance && 'policyDefinitionId' in value;\n isInstance = isInstance && 'policy' in value;\n\n return isInstance;\n}\n\nexport function PolicyDefinitionCreateRequestFromJSON(\n json: any,\n): PolicyDefinitionCreateRequest {\n return PolicyDefinitionCreateRequestFromJSONTyped(json, false);\n}\n\nexport function PolicyDefinitionCreateRequestFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): PolicyDefinitionCreateRequest {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n policyDefinitionId: json['policyDefinitionId'],\n policy: UiPolicyCreateRequestFromJSON(json['policy']),\n };\n}\n\nexport function PolicyDefinitionCreateRequestToJSON(\n value?: PolicyDefinitionCreateRequest | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n policyDefinitionId: value.policyDefinitionId,\n policy: UiPolicyCreateRequestToJSON(value.policy),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {UiPolicy} from './UiPolicy';\nimport {\n UiPolicyFromJSON,\n UiPolicyFromJSONTyped,\n UiPolicyToJSON,\n} from './UiPolicy';\n\n/**\n * Policy Definition as required for the Policy Definition Page\n * @export\n * @interface PolicyDefinitionDto\n */\nexport interface PolicyDefinitionDto {\n /**\n * Policy Definition ID\n * @type {string}\n * @memberof PolicyDefinitionDto\n */\n policyDefinitionId: string;\n /**\n *\n * @type {UiPolicy}\n * @memberof PolicyDefinitionDto\n */\n policy: UiPolicy;\n}\n\n/**\n * Check if a given object implements the PolicyDefinitionDto interface.\n */\nexport function instanceOfPolicyDefinitionDto(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'policyDefinitionId' in value;\n isInstance = isInstance && 'policy' in value;\n\n return isInstance;\n}\n\nexport function PolicyDefinitionDtoFromJSON(json: any): PolicyDefinitionDto {\n return PolicyDefinitionDtoFromJSONTyped(json, false);\n}\n\nexport function PolicyDefinitionDtoFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): PolicyDefinitionDto {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n policyDefinitionId: json['policyDefinitionId'],\n policy: UiPolicyFromJSON(json['policy']),\n };\n}\n\nexport function PolicyDefinitionDtoToJSON(\n value?: PolicyDefinitionDto | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n policyDefinitionId: value.policyDefinitionId,\n policy: UiPolicyToJSON(value.policy),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {PolicyDefinitionDto} from './PolicyDefinitionDto';\nimport {\n PolicyDefinitionDtoFromJSON,\n PolicyDefinitionDtoFromJSONTyped,\n PolicyDefinitionDtoToJSON,\n} from './PolicyDefinitionDto';\n\n/**\n * All data for the policy definition page as required by the UI\n * @export\n * @interface PolicyDefinitionPage\n */\nexport interface PolicyDefinitionPage {\n /**\n * Policy Definition Entries\n * @type {Array<PolicyDefinitionDto>}\n * @memberof PolicyDefinitionPage\n */\n policies: Array<PolicyDefinitionDto>;\n}\n\n/**\n * Check if a given object implements the PolicyDefinitionPage interface.\n */\nexport function instanceOfPolicyDefinitionPage(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'policies' in value;\n\n return isInstance;\n}\n\nexport function PolicyDefinitionPageFromJSON(json: any): PolicyDefinitionPage {\n return PolicyDefinitionPageFromJSONTyped(json, false);\n}\n\nexport function PolicyDefinitionPageFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): PolicyDefinitionPage {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n policies: (json['policies'] as Array<any>).map(\n PolicyDefinitionDtoFromJSON,\n ),\n };\n}\n\nexport function PolicyDefinitionPageToJSON(\n value?: PolicyDefinitionPage | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n policies: (value.policies as Array<any>).map(PolicyDefinitionDtoToJSON),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {ContractAgreementDirection} from './ContractAgreementDirection';\nimport {\n ContractAgreementDirectionFromJSON,\n ContractAgreementDirectionFromJSONTyped,\n ContractAgreementDirectionToJSON,\n} from './ContractAgreementDirection';\nimport type {TransferProcessState} from './TransferProcessState';\nimport {\n TransferProcessStateFromJSON,\n TransferProcessStateFromJSONTyped,\n TransferProcessStateToJSON,\n} from './TransferProcessState';\n\n/**\n * Transfer History Entry for Transfer History Page\n * @export\n * @interface TransferHistoryEntry\n */\nexport interface TransferHistoryEntry {\n /**\n * Transfer Process ID\n * @type {string}\n * @memberof TransferHistoryEntry\n */\n transferProcessId: string;\n /**\n * Created Date\n * @type {Date}\n * @memberof TransferHistoryEntry\n */\n createdDate: Date;\n /**\n * Last Change Date\n * @type {Date}\n * @memberof TransferHistoryEntry\n */\n lastUpdatedDate: Date;\n /**\n *\n * @type {TransferProcessState}\n * @memberof TransferHistoryEntry\n */\n state: TransferProcessState;\n /**\n * Contract Agreement ID\n * @type {string}\n * @memberof TransferHistoryEntry\n */\n contractAgreementId: string;\n /**\n *\n * @type {ContractAgreementDirection}\n * @memberof TransferHistoryEntry\n */\n direction: ContractAgreementDirection;\n /**\n * Other Connector's Endpoint\n * @type {string}\n * @memberof TransferHistoryEntry\n */\n counterPartyConnectorEndpoint: string;\n /**\n * Other Connector's Participant ID\n * @type {string}\n * @memberof TransferHistoryEntry\n */\n counterPartyParticipantId: string;\n /**\n * Asset Name\n * @type {string}\n * @memberof TransferHistoryEntry\n */\n assetName: string;\n /**\n * Asset ID\n * @type {string}\n * @memberof TransferHistoryEntry\n */\n assetId: string;\n /**\n * Error Message\n * @type {string}\n * @memberof TransferHistoryEntry\n */\n errorMessage?: string;\n}\n\n/**\n * Check if a given object implements the TransferHistoryEntry interface.\n */\nexport function instanceOfTransferHistoryEntry(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'transferProcessId' in value;\n isInstance = isInstance && 'createdDate' in value;\n isInstance = isInstance && 'lastUpdatedDate' in value;\n isInstance = isInstance && 'state' in value;\n isInstance = isInstance && 'contractAgreementId' in value;\n isInstance = isInstance && 'direction' in value;\n isInstance = isInstance && 'counterPartyConnectorEndpoint' in value;\n isInstance = isInstance && 'counterPartyParticipantId' in value;\n isInstance = isInstance && 'assetName' in value;\n isInstance = isInstance && 'assetId' in value;\n\n return isInstance;\n}\n\nexport function TransferHistoryEntryFromJSON(json: any): TransferHistoryEntry {\n return TransferHistoryEntryFromJSONTyped(json, false);\n}\n\nexport function TransferHistoryEntryFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): TransferHistoryEntry {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n transferProcessId: json['transferProcessId'],\n createdDate: new Date(json['createdDate']),\n lastUpdatedDate: new Date(json['lastUpdatedDate']),\n state: TransferProcessStateFromJSON(json['state']),\n contractAgreementId: json['contractAgreementId'],\n direction: ContractAgreementDirectionFromJSON(json['direction']),\n counterPartyConnectorEndpoint: json['counterPartyConnectorEndpoint'],\n counterPartyParticipantId: json['counterPartyParticipantId'],\n assetName: json['assetName'],\n assetId: json['assetId'],\n errorMessage: !exists(json, 'errorMessage')\n ? undefined\n : json['errorMessage'],\n };\n}\n\nexport function TransferHistoryEntryToJSON(\n value?: TransferHistoryEntry | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n transferProcessId: value.transferProcessId,\n createdDate: value.createdDate.toISOString(),\n lastUpdatedDate: value.lastUpdatedDate.toISOString(),\n state: TransferProcessStateToJSON(value.state),\n contractAgreementId: value.contractAgreementId,\n direction: ContractAgreementDirectionToJSON(value.direction),\n counterPartyConnectorEndpoint: value.counterPartyConnectorEndpoint,\n counterPartyParticipantId: value.counterPartyParticipantId,\n assetName: value.assetName,\n assetId: value.assetId,\n errorMessage: value.errorMessage,\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {TransferHistoryEntry} from './TransferHistoryEntry';\nimport {\n TransferHistoryEntryFromJSON,\n TransferHistoryEntryFromJSONTyped,\n TransferHistoryEntryToJSON,\n} from './TransferHistoryEntry';\n\n/**\n *\n * @export\n * @interface TransferHistoryPage\n */\nexport interface TransferHistoryPage {\n /**\n * Transfer History Page Entries\n * @type {Array<TransferHistoryEntry>}\n * @memberof TransferHistoryPage\n */\n transferEntries: Array<TransferHistoryEntry>;\n}\n\n/**\n * Check if a given object implements the TransferHistoryPage interface.\n */\nexport function instanceOfTransferHistoryPage(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'transferEntries' in value;\n\n return isInstance;\n}\n\nexport function TransferHistoryPageFromJSON(json: any): TransferHistoryPage {\n return TransferHistoryPageFromJSONTyped(json, false);\n}\n\nexport function TransferHistoryPageFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): TransferHistoryPage {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n transferEntries: (json['transferEntries'] as Array<any>).map(\n TransferHistoryEntryFromJSON,\n ),\n };\n}\n\nexport function TransferHistoryPageToJSON(\n value?: TransferHistoryPage | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n transferEntries: (value.transferEntries as Array<any>).map(\n TransferHistoryEntryToJSON,\n ),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\n\n/**\n * Type-Safe OpenAPI generator friendly Asset Create DTO that supports an opinionated subset of the original EDC Asset Entity.\n * @export\n * @interface UiAssetCreateRequest\n */\nexport interface UiAssetCreateRequest {\n /**\n * Asset Id\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n id: string;\n /**\n * Asset Title\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n title?: string;\n /**\n * Asset Language\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n language?: string;\n /**\n * Asset Description\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n description?: string;\n /**\n * Asset Homepage\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n publisherHomepage?: string;\n /**\n * License URL\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n licenseUrl?: string;\n /**\n * Version\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n version?: string;\n /**\n * Asset Keywords\n * @type {Array<string>}\n * @memberof UiAssetCreateRequest\n */\n keywords?: Array<string>;\n /**\n * Asset MediaType\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n mediaType?: string;\n /**\n * Landing Page URL\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n landingPageUrl?: string;\n /**\n * Data Category\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n dataCategory?: string;\n /**\n * Data Subcategory\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n dataSubcategory?: string;\n /**\n * Data Model\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n dataModel?: string;\n /**\n * Geo-Reference Method\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n geoReferenceMethod?: string;\n /**\n * Transport Mode\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n transportMode?: string;\n /**\n * The sovereign is distinct from the publisher by being the legal owner of the data.\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n sovereignLegalName?: string;\n /**\n * Geo location\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n geoLocation?: string;\n /**\n * Locations by NUTS standard which divides countries into administrative divisions\n * @type {Array<string>}\n * @memberof UiAssetCreateRequest\n */\n nutsLocations?: Array<string>;\n /**\n * Data sample URLs\n * @type {Array<string>}\n * @memberof UiAssetCreateRequest\n */\n dataSampleUrls?: Array<string>;\n /**\n * Reference file/schema URLs\n * @type {Array<string>}\n * @memberof UiAssetCreateRequest\n */\n referenceFileUrls?: Array<string>;\n /**\n * Additional information on reference files/schemas\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n referenceFilesDescription?: string;\n /**\n * Instructions for use that are not legally relevant e.g. information on how to cite the dataset in papers\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n conditionsForUse?: string;\n /**\n * Data update frequency\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n dataUpdateFrequency?: string;\n /**\n * Temporal coverage start date\n * @type {Date}\n * @memberof UiAssetCreateRequest\n */\n temporalCoverageFrom?: Date;\n /**\n * Temporal coverage end date (inclusive)\n * @type {Date}\n * @memberof UiAssetCreateRequest\n */\n temporalCoverageToInclusive?: Date;\n /**\n * Data Address\n * @type {{ [key: string]: string; }}\n * @memberof UiAssetCreateRequest\n */\n dataAddressProperties: {[key: string]: string};\n /**\n * Contains serialized custom properties in the JSON format.\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n customJsonAsString?: string;\n /**\n * Contains serialized custom properties in the JSON LD format. Contrary to the customJsonAsString field, this string must represent a JSON LD object and will be affected by JSON LD compaction and expansion. Due to a technical limitation, the properties can't be booleans.\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n customJsonLdAsString?: string;\n /**\n * Same as customJsonAsString but the data will be stored in the private properties.\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n privateCustomJsonAsString?: string;\n /**\n * Same as customJsonLdAsString but the data will be stored in the private properties. The same limitations apply.\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n privateCustomJsonLdAsString?: string;\n}\n\n/**\n * Check if a given object implements the UiAssetCreateRequest interface.\n */\nexport function instanceOfUiAssetCreateRequest(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'id' in value;\n isInstance = isInstance && 'dataAddressProperties' in value;\n\n return isInstance;\n}\n\nexport function UiAssetCreateRequestFromJSON(json: any): UiAssetCreateRequest {\n return UiAssetCreateRequestFromJSONTyped(json, false);\n}\n\nexport function UiAssetCreateRequestFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiAssetCreateRequest {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n id: json['id'],\n title: !exists(json, 'title') ? undefined : json['title'],\n language: !exists(json, 'language') ? undefined : json['language'],\n description: !exists(json, 'description')\n ? undefined\n : json['description'],\n publisherHomepage: !exists(json, 'publisherHomepage')\n ? undefined\n : json['publisherHomepage'],\n licenseUrl: !exists(json, 'licenseUrl')\n ? undefined\n : json['licenseUrl'],\n version: !exists(json, 'version') ? undefined : json['version'],\n keywords: !exists(json, 'keywords') ? undefined : json['keywords'],\n mediaType: !exists(json, 'mediaType') ? undefined : json['mediaType'],\n landingPageUrl: !exists(json, 'landingPageUrl')\n ? undefined\n : json['landingPageUrl'],\n dataCategory: !exists(json, 'dataCategory')\n ? undefined\n : json['dataCategory'],\n dataSubcategory: !exists(json, 'dataSubcategory')\n ? undefined\n : json['dataSubcategory'],\n dataModel: !exists(json, 'dataModel') ? undefined : json['dataModel'],\n geoReferenceMethod: !exists(json, 'geoReferenceMethod')\n ? undefined\n : json['geoReferenceMethod'],\n transportMode: !exists(json, 'transportMode')\n ? undefined\n : json['transportMode'],\n sovereignLegalName: !exists(json, 'sovereignLegalName')\n ? undefined\n : json['sovereignLegalName'],\n geoLocation: !exists(json, 'geoLocation')\n ? undefined\n : json['geoLocation'],\n nutsLocations: !exists(json, 'nutsLocations')\n ? undefined\n : json['nutsLocations'],\n dataSampleUrls: !exists(json, 'dataSampleUrls')\n ? undefined\n : json['dataSampleUrls'],\n referenceFileUrls: !exists(json, 'referenceFileUrls')\n ? undefined\n : json['referenceFileUrls'],\n referenceFilesDescription: !exists(json, 'referenceFilesDescription')\n ? undefined\n : json['referenceFilesDescription'],\n conditionsForUse: !exists(json, 'conditionsForUse')\n ? undefined\n : json['conditionsForUse'],\n dataUpdateFrequency: !exists(json, 'dataUpdateFrequency')\n ? undefined\n : json['dataUpdateFrequency'],\n temporalCoverageFrom: !exists(json, 'temporalCoverageFrom')\n ? undefined\n : new Date(json['temporalCoverageFrom']),\n temporalCoverageToInclusive: !exists(\n json,\n 'temporalCoverageToInclusive',\n )\n ? undefined\n : new Date(json['temporalCoverageToInclusive']),\n dataAddressProperties: json['dataAddressProperties'],\n customJsonAsString: !exists(json, 'customJsonAsString')\n ? undefined\n : json['customJsonAsString'],\n customJsonLdAsString: !exists(json, 'customJsonLdAsString')\n ? undefined\n : json['customJsonLdAsString'],\n privateCustomJsonAsString: !exists(json, 'privateCustomJsonAsString')\n ? undefined\n : json['privateCustomJsonAsString'],\n privateCustomJsonLdAsString: !exists(\n json,\n 'privateCustomJsonLdAsString',\n )\n ? undefined\n : json['privateCustomJsonLdAsString'],\n };\n}\n\nexport function UiAssetCreateRequestToJSON(\n value?: UiAssetCreateRequest | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n id: value.id,\n title: value.title,\n language: value.language,\n description: value.description,\n publisherHomepage: value.publisherHomepage,\n licenseUrl: value.licenseUrl,\n version: value.version,\n keywords: value.keywords,\n mediaType: value.mediaType,\n landingPageUrl: value.landingPageUrl,\n dataCategory: value.dataCategory,\n dataSubcategory: value.dataSubcategory,\n dataModel: value.dataModel,\n geoReferenceMethod: value.geoReferenceMethod,\n transportMode: value.transportMode,\n sovereignLegalName: value.sovereignLegalName,\n geoLocation: value.geoLocation,\n nutsLocations: value.nutsLocations,\n dataSampleUrls: value.dataSampleUrls,\n referenceFileUrls: value.referenceFileUrls,\n referenceFilesDescription: value.referenceFilesDescription,\n conditionsForUse: value.conditionsForUse,\n dataUpdateFrequency: value.dataUpdateFrequency,\n temporalCoverageFrom:\n value.temporalCoverageFrom === undefined\n ? undefined\n : value.temporalCoverageFrom.toISOString().substr(0, 10),\n temporalCoverageToInclusive:\n value.temporalCoverageToInclusive === undefined\n ? undefined\n : value.temporalCoverageToInclusive.toISOString().substr(0, 10),\n dataAddressProperties: value.dataAddressProperties,\n customJsonAsString: value.customJsonAsString,\n customJsonLdAsString: value.customJsonLdAsString,\n privateCustomJsonAsString: value.privateCustomJsonAsString,\n privateCustomJsonLdAsString: value.privateCustomJsonLdAsString,\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\n\n/**\n * Data for editing an asset.\n * @export\n * @interface UiAssetEditMetadataRequest\n */\nexport interface UiAssetEditMetadataRequest {\n /**\n * Asset Title\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n title?: string;\n /**\n * Asset Language\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n language?: string;\n /**\n * Asset Description\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n description?: string;\n /**\n * Asset Homepage\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n publisherHomepage?: string;\n /**\n * License URL\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n licenseUrl?: string;\n /**\n * Version\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n version?: string;\n /**\n * Asset Keywords\n * @type {Array<string>}\n * @memberof UiAssetEditMetadataRequest\n */\n keywords?: Array<string>;\n /**\n * Asset MediaType\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n mediaType?: string;\n /**\n * Landing Page URL\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n landingPageUrl?: string;\n /**\n * Data Category\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n dataCategory?: string;\n /**\n * Data Subcategory\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n dataSubcategory?: string;\n /**\n * Data Model\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n dataModel?: string;\n /**\n * Geo-Reference Method\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n geoReferenceMethod?: string;\n /**\n * Transport Mode\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n transportMode?: string;\n /**\n * The sovereign is distinct from the publisher by being the legal owner of the data.\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n sovereignLegalName?: string;\n /**\n * Geo location\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n geoLocation?: string;\n /**\n * Locations by NUTS standard which divides countries into administrative divisions\n * @type {Array<string>}\n * @memberof UiAssetEditMetadataRequest\n */\n nutsLocations?: Array<string>;\n /**\n * Data sample URLs\n * @type {Array<string>}\n * @memberof UiAssetEditMetadataRequest\n */\n dataSampleUrls?: Array<string>;\n /**\n * Reference file/schema URLs\n * @type {Array<string>}\n * @memberof UiAssetEditMetadataRequest\n */\n referenceFileUrls?: Array<string>;\n /**\n * Additional information on reference files/schemas\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n referenceFilesDescription?: string;\n /**\n * Instructions for use that are not legally relevant e.g. information on how to cite the dataset in papers\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n conditionsForUse?: string;\n /**\n * Data update frequency\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n dataUpdateFrequency?: string;\n /**\n * Temporal coverage start date\n * @type {Date}\n * @memberof UiAssetEditMetadataRequest\n */\n temporalCoverageFrom?: Date;\n /**\n * Temporal coverage end date (inclusive)\n * @type {Date}\n * @memberof UiAssetEditMetadataRequest\n */\n temporalCoverageToInclusive?: Date;\n /**\n * Contains serialized custom properties in the JSON format.\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n customJsonAsString?: string;\n /**\n * Contains serialized custom properties in the JSON LD format. Contrary to the customJsonAsString field, this string must represent a JSON LD object and will be affected by JSON LD compaction and expansion. Due to a technical limitation, the properties can't be booleans.\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n customJsonLdAsString?: string;\n /**\n * Same as customJsonAsString but the data will be stored in the private properties.\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n privateCustomJsonAsString?: string;\n /**\n * Same as customJsonLdAsString but the data will be stored in the private properties. The same limitations apply.\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n privateCustomJsonLdAsString?: string;\n}\n\n/**\n * Check if a given object implements the UiAssetEditMetadataRequest interface.\n */\nexport function instanceOfUiAssetEditMetadataRequest(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function UiAssetEditMetadataRequestFromJSON(\n json: any,\n): UiAssetEditMetadataRequest {\n return UiAssetEditMetadataRequestFromJSONTyped(json, false);\n}\n\nexport function UiAssetEditMetadataRequestFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiAssetEditMetadataRequest {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n title: !exists(json, 'title') ? undefined : json['title'],\n language: !exists(json, 'language') ? undefined : json['language'],\n description: !exists(json, 'description')\n ? undefined\n : json['description'],\n publisherHomepage: !exists(json, 'publisherHomepage')\n ? undefined\n : json['publisherHomepage'],\n licenseUrl: !exists(json, 'licenseUrl')\n ? undefined\n : json['licenseUrl'],\n version: !exists(json, 'version') ? undefined : json['version'],\n keywords: !exists(json, 'keywords') ? undefined : json['keywords'],\n mediaType: !exists(json, 'mediaType') ? undefined : json['mediaType'],\n landingPageUrl: !exists(json, 'landingPageUrl')\n ? undefined\n : json['landingPageUrl'],\n dataCategory: !exists(json, 'dataCategory')\n ? undefined\n : json['dataCategory'],\n dataSubcategory: !exists(json, 'dataSubcategory')\n ? undefined\n : json['dataSubcategory'],\n dataModel: !exists(json, 'dataModel') ? undefined : json['dataModel'],\n geoReferenceMethod: !exists(json, 'geoReferenceMethod')\n ? undefined\n : json['geoReferenceMethod'],\n transportMode: !exists(json, 'transportMode')\n ? undefined\n : json['transportMode'],\n sovereignLegalName: !exists(json, 'sovereignLegalName')\n ? undefined\n : json['sovereignLegalName'],\n geoLocation: !exists(json, 'geoLocation')\n ? undefined\n : json['geoLocation'],\n nutsLocations: !exists(json, 'nutsLocations')\n ? undefined\n : json['nutsLocations'],\n dataSampleUrls: !exists(json, 'dataSampleUrls')\n ? undefined\n : json['dataSampleUrls'],\n referenceFileUrls: !exists(json, 'referenceFileUrls')\n ? undefined\n : json['referenceFileUrls'],\n referenceFilesDescription: !exists(json, 'referenceFilesDescription')\n ? undefined\n : json['referenceFilesDescription'],\n conditionsForUse: !exists(json, 'conditionsForUse')\n ? undefined\n : json['conditionsForUse'],\n dataUpdateFrequency: !exists(json, 'dataUpdateFrequency')\n ? undefined\n : json['dataUpdateFrequency'],\n temporalCoverageFrom: !exists(json, 'temporalCoverageFrom')\n ? undefined\n : new Date(json['temporalCoverageFrom']),\n temporalCoverageToInclusive: !exists(\n json,\n 'temporalCoverageToInclusive',\n )\n ? undefined\n : new Date(json['temporalCoverageToInclusive']),\n customJsonAsString: !exists(json, 'customJsonAsString')\n ? undefined\n : json['customJsonAsString'],\n customJsonLdAsString: !exists(json, 'customJsonLdAsString')\n ? undefined\n : json['customJsonLdAsString'],\n privateCustomJsonAsString: !exists(json, 'privateCustomJsonAsString')\n ? undefined\n : json['privateCustomJsonAsString'],\n privateCustomJsonLdAsString: !exists(\n json,\n 'privateCustomJsonLdAsString',\n )\n ? undefined\n : json['privateCustomJsonLdAsString'],\n };\n}\n\nexport function UiAssetEditMetadataRequestToJSON(\n value?: UiAssetEditMetadataRequest | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n title: value.title,\n language: value.language,\n description: value.description,\n publisherHomepage: value.publisherHomepage,\n licenseUrl: value.licenseUrl,\n version: value.version,\n keywords: value.keywords,\n mediaType: value.mediaType,\n landingPageUrl: value.landingPageUrl,\n dataCategory: value.dataCategory,\n dataSubcategory: value.dataSubcategory,\n dataModel: value.dataModel,\n geoReferenceMethod: value.geoReferenceMethod,\n transportMode: value.transportMode,\n sovereignLegalName: value.sovereignLegalName,\n geoLocation: value.geoLocation,\n nutsLocations: value.nutsLocations,\n dataSampleUrls: value.dataSampleUrls,\n referenceFileUrls: value.referenceFileUrls,\n referenceFilesDescription: value.referenceFilesDescription,\n conditionsForUse: value.conditionsForUse,\n dataUpdateFrequency: value.dataUpdateFrequency,\n temporalCoverageFrom:\n value.temporalCoverageFrom === undefined\n ? undefined\n : value.temporalCoverageFrom.toISOString().substr(0, 10),\n temporalCoverageToInclusive:\n value.temporalCoverageToInclusive === undefined\n ? undefined\n : value.temporalCoverageToInclusive.toISOString().substr(0, 10),\n customJsonAsString: value.customJsonAsString,\n customJsonLdAsString: value.customJsonLdAsString,\n privateCustomJsonAsString: value.privateCustomJsonAsString,\n privateCustomJsonLdAsString: value.privateCustomJsonLdAsString,\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {ContractNegotiationState} from './ContractNegotiationState';\nimport {\n ContractNegotiationStateFromJSON,\n ContractNegotiationStateFromJSONTyped,\n ContractNegotiationStateToJSON,\n} from './ContractNegotiationState';\n\n/**\n * Contract Negotiation Information\n * @export\n * @interface UiContractNegotiation\n */\nexport interface UiContractNegotiation {\n /**\n * Contract Negotiation Id\n * @type {string}\n * @memberof UiContractNegotiation\n */\n contractNegotiationId: string;\n /**\n * Contract Negotiation Creation Time\n * @type {Date}\n * @memberof UiContractNegotiation\n */\n createdAt: Date;\n /**\n * Contract Agreement Id\n * @type {string}\n * @memberof UiContractNegotiation\n */\n contractAgreementId?: string;\n /**\n *\n * @type {ContractNegotiationState}\n * @memberof UiContractNegotiation\n */\n state: ContractNegotiationState;\n}\n\n/**\n * Check if a given object implements the UiContractNegotiation interface.\n */\nexport function instanceOfUiContractNegotiation(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'contractNegotiationId' in value;\n isInstance = isInstance && 'createdAt' in value;\n isInstance = isInstance && 'state' in value;\n\n return isInstance;\n}\n\nexport function UiContractNegotiationFromJSON(\n json: any,\n): UiContractNegotiation {\n return UiContractNegotiationFromJSONTyped(json, false);\n}\n\nexport function UiContractNegotiationFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiContractNegotiation {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n contractNegotiationId: json['contractNegotiationId'],\n createdAt: new Date(json['createdAt']),\n contractAgreementId: !exists(json, 'contractAgreementId')\n ? undefined\n : json['contractAgreementId'],\n state: ContractNegotiationStateFromJSON(json['state']),\n };\n}\n\nexport function UiContractNegotiationToJSON(\n value?: UiContractNegotiation | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n contractNegotiationId: value.contractNegotiationId,\n createdAt: value.createdAt.toISOString(),\n contractAgreementId: value.contractAgreementId,\n state: ContractNegotiationStateToJSON(value.state),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {UiPolicy} from './UiPolicy';\nimport {\n UiPolicyFromJSON,\n UiPolicyFromJSONTyped,\n UiPolicyToJSON,\n} from './UiPolicy';\n\n/**\n * Catalog Data Offer's Contract Offer as required by the UI\n * @export\n * @interface UiContractOffer\n */\nexport interface UiContractOffer {\n /**\n * Contract Offer ID\n * @type {string}\n * @memberof UiContractOffer\n */\n contractOfferId: string;\n /**\n *\n * @type {UiPolicy}\n * @memberof UiContractOffer\n */\n policy: UiPolicy;\n}\n\n/**\n * Check if a given object implements the UiContractOffer interface.\n */\nexport function instanceOfUiContractOffer(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'contractOfferId' in value;\n isInstance = isInstance && 'policy' in value;\n\n return isInstance;\n}\n\nexport function UiContractOfferFromJSON(json: any): UiContractOffer {\n return UiContractOfferFromJSONTyped(json, false);\n}\n\nexport function UiContractOfferFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiContractOffer {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n contractOfferId: json['contractOfferId'],\n policy: UiPolicyFromJSON(json['policy']),\n };\n}\n\nexport function UiContractOfferToJSON(value?: UiContractOffer | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n contractOfferId: value.contractOfferId,\n policy: UiPolicyToJSON(value.policy),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {UiAsset} from './UiAsset';\nimport {UiAssetFromJSON, UiAssetFromJSONTyped, UiAssetToJSON} from './UiAsset';\nimport type {UiContractOffer} from './UiContractOffer';\nimport {\n UiContractOfferFromJSON,\n UiContractOfferFromJSONTyped,\n UiContractOfferToJSON,\n} from './UiContractOffer';\n\n/**\n * Catalog Data Offer as required by the UI\n * @export\n * @interface UiDataOffer\n */\nexport interface UiDataOffer {\n /**\n * Connector Endpoint\n * @type {string}\n * @memberof UiDataOffer\n */\n endpoint: string;\n /**\n * Participant ID. Required for initiating transfers.\n * @type {string}\n * @memberof UiDataOffer\n */\n participantId: string;\n /**\n *\n * @type {UiAsset}\n * @memberof UiDataOffer\n */\n asset: UiAsset;\n /**\n * Available Contract Offers\n * @type {Array<UiContractOffer>}\n * @memberof UiDataOffer\n */\n contractOffers: Array<UiContractOffer>;\n}\n\n/**\n * Check if a given object implements the UiDataOffer interface.\n */\nexport function instanceOfUiDataOffer(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'endpoint' in value;\n isInstance = isInstance && 'participantId' in value;\n isInstance = isInstance && 'asset' in value;\n isInstance = isInstance && 'contractOffers' in value;\n\n return isInstance;\n}\n\nexport function UiDataOfferFromJSON(json: any): UiDataOffer {\n return UiDataOfferFromJSONTyped(json, false);\n}\n\nexport function UiDataOfferFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiDataOffer {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n endpoint: json['endpoint'],\n participantId: json['participantId'],\n asset: UiAssetFromJSON(json['asset']),\n contractOffers: (json['contractOffers'] as Array<any>).map(\n UiContractOfferFromJSON,\n ),\n };\n}\n\nexport function UiDataOfferToJSON(value?: UiDataOffer | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n endpoint: value.endpoint,\n participantId: value.participantId,\n asset: UiAssetToJSON(value.asset),\n contractOffers: (value.contractOffers as Array<any>).map(\n UiContractOfferToJSON,\n ),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport type {ConnectorLimits, UiAssetCreateRequest} from '../models';\nimport {\n ConnectorLimitsFromJSON,\n ConnectorLimitsToJSON,\n UiAssetCreateRequestFromJSON,\n UiAssetCreateRequestToJSON,\n} from '../models';\nimport * as runtime from '../runtime';\n\nexport interface FileUploadCreateAssetRequest {\n blobId: string;\n uiAssetCreateRequest: UiAssetCreateRequest;\n}\n\n/**\n *\n */\nexport class EnterpriseEditionApi extends runtime.BaseAPI {\n /**\n * Available and used resources of a connector.\n */\n async connectorLimitsRaw(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<ConnectorLimits>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ee/connector-limits`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n ConnectorLimitsFromJSON(jsonValue),\n );\n }\n\n /**\n * Available and used resources of a connector.\n */\n async connectorLimits(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<ConnectorLimits> {\n const response = await this.connectorLimitsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n * Creates an asset using the uploaded file as data source.\n * Create an asset from an uploaded file.\n */\n async fileUploadCreateAssetRaw(\n requestParameters: FileUploadCreateAssetRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<void>> {\n if (\n requestParameters.blobId === null ||\n requestParameters.blobId === undefined\n ) {\n throw new runtime.RequiredError(\n 'blobId',\n 'Required parameter requestParameters.blobId was null or undefined when calling fileUploadCreateAsset.',\n );\n }\n\n if (\n requestParameters.uiAssetCreateRequest === null ||\n requestParameters.uiAssetCreateRequest === undefined\n ) {\n throw new runtime.RequiredError(\n 'uiAssetCreateRequest',\n 'Required parameter requestParameters.uiAssetCreateRequest was null or undefined when calling fileUploadCreateAsset.',\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request(\n {\n path: `/wrapper/ee/file-upload/blobs/{blobId}/asset`.replace(\n `{${'blobId'}}`,\n encodeURIComponent(String(requestParameters.blobId)),\n ),\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: UiAssetCreateRequestToJSON(\n requestParameters.uiAssetCreateRequest,\n ),\n },\n initOverrides,\n );\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n * Creates an asset using the uploaded file as data source.\n * Create an asset from an uploaded file.\n */\n async fileUploadCreateAsset(\n requestParameters: FileUploadCreateAssetRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<void> {\n await this.fileUploadCreateAssetRaw(requestParameters, initOverrides);\n }\n\n /**\n * Requests a Blob URL with a SAS Token so that the UI can directly upload the file to the Azure Blob Storage. Returns the Blob ID / Token.\n * Requests a Blob for file upload.\n */\n async fileUploadRequestSasTokenRaw(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<string>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ee/file-upload/blobs`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse<string>(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n * Requests a Blob URL with a SAS Token so that the UI can directly upload the file to the Azure Blob Storage. Returns the Blob ID / Token.\n * Requests a Blob for file upload.\n */\n async fileUploadRequestSasToken(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<string> {\n const response = await this.fileUploadRequestSasTokenRaw(initOverrides);\n return await response.value();\n }\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport type {\n AssetPage,\n ContractAgreementPage,\n ContractDefinitionPage,\n ContractDefinitionRequest,\n ContractNegotiationRequest,\n DashboardPage,\n IdResponseDto,\n InitiateCustomTransferRequest,\n InitiateTransferRequest,\n PolicyDefinitionCreateRequest,\n PolicyDefinitionPage,\n TransferHistoryPage,\n UiAsset,\n UiAssetCreateRequest,\n UiAssetEditMetadataRequest,\n UiContractNegotiation,\n UiDataOffer,\n} from '../models';\nimport {\n AssetPageFromJSON,\n AssetPageToJSON,\n ContractAgreementPageFromJSON,\n ContractAgreementPageToJSON,\n ContractDefinitionPageFromJSON,\n ContractDefinitionPageToJSON,\n ContractDefinitionRequestFromJSON,\n ContractDefinitionRequestToJSON,\n ContractNegotiationRequestFromJSON,\n ContractNegotiationRequestToJSON,\n DashboardPageFromJSON,\n DashboardPageToJSON,\n IdResponseDtoFromJSON,\n IdResponseDtoToJSON,\n InitiateCustomTransferRequestFromJSON,\n InitiateCustomTransferRequestToJSON,\n InitiateTransferRequestFromJSON,\n InitiateTransferRequestToJSON,\n PolicyDefinitionCreateRequestFromJSON,\n PolicyDefinitionCreateRequestToJSON,\n PolicyDefinitionPageFromJSON,\n PolicyDefinitionPageToJSON,\n TransferHistoryPageFromJSON,\n TransferHistoryPageToJSON,\n UiAssetCreateRequestFromJSON,\n UiAssetCreateRequestToJSON,\n UiAssetEditMetadataRequestFromJSON,\n UiAssetEditMetadataRequestToJSON,\n UiAssetFromJSON,\n UiAssetToJSON,\n UiContractNegotiationFromJSON,\n UiContractNegotiationToJSON,\n UiDataOfferFromJSON,\n UiDataOfferToJSON,\n} from '../models';\nimport * as runtime from '../runtime';\n\nexport interface CreateAssetRequest {\n uiAssetCreateRequest?: UiAssetCreateRequest;\n}\n\nexport interface CreateContractDefinitionRequest {\n contractDefinitionRequest?: ContractDefinitionRequest;\n}\n\nexport interface CreatePolicyDefinitionRequest {\n policyDefinitionCreateRequest?: PolicyDefinitionCreateRequest;\n}\n\nexport interface DeleteAssetRequest {\n assetId: string;\n}\n\nexport interface DeleteContractDefinitionRequest {\n contractDefinitionId: string;\n}\n\nexport interface DeletePolicyDefinitionRequest {\n policyId: string;\n}\n\nexport interface EditAssetMetadataRequest {\n assetId: string;\n uiAssetEditMetadataRequest?: UiAssetEditMetadataRequest;\n}\n\nexport interface GetCatalogPageDataOffersRequest {\n connectorEndpoint?: string;\n}\n\nexport interface GetContractNegotiationRequest {\n contractNegotiationId: string;\n}\n\nexport interface GetTransferProcessAssetRequest {\n transferProcessId: string;\n}\n\nexport interface InitiateContractNegotiationRequest {\n contractNegotiationRequest?: ContractNegotiationRequest;\n}\n\nexport interface InitiateCustomTransferOperationRequest {\n initiateCustomTransferRequest?: InitiateCustomTransferRequest;\n}\n\nexport interface InitiateTransferOperationRequest {\n initiateTransferRequest?: InitiateTransferRequest;\n}\n\n/**\n *\n */\nexport class UIApi extends runtime.BaseAPI {\n /**\n * Create a new Asset\n */\n async createAssetRaw(\n requestParameters: CreateAssetRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<IdResponseDto>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/asset-page/assets`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: UiAssetCreateRequestToJSON(\n requestParameters.uiAssetCreateRequest,\n ),\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n IdResponseDtoFromJSON(jsonValue),\n );\n }\n\n /**\n * Create a new Asset\n */\n async createAsset(\n requestParameters: CreateAssetRequest = {},\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<IdResponseDto> {\n const response = await this.createAssetRaw(\n requestParameters,\n initOverrides,\n );\n return await response.value();\n }\n\n /**\n * Create a new Contract Definition\n */\n async createContractDefinitionRaw(\n requestParameters: CreateContractDefinitionRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<IdResponseDto>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/contract-definition-page/contract-definitions`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContractDefinitionRequestToJSON(\n requestParameters.contractDefinitionRequest,\n ),\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n IdResponseDtoFromJSON(jsonValue),\n );\n }\n\n /**\n * Create a new Contract Definition\n */\n async createContractDefinition(\n requestParameters: CreateContractDefinitionRequest = {},\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<IdResponseDto> {\n const response = await this.createContractDefinitionRaw(\n requestParameters,\n initOverrides,\n );\n return await response.value();\n }\n\n /**\n * Create a new Policy Definition\n */\n async createPolicyDefinitionRaw(\n requestParameters: CreatePolicyDefinitionRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<IdResponseDto>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/policy-page/policy-definitions`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: PolicyDefinitionCreateRequestToJSON(\n requestParameters.policyDefinitionCreateRequest,\n ),\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n IdResponseDtoFromJSON(jsonValue),\n );\n }\n\n /**\n * Create a new Policy Definition\n */\n async createPolicyDefinition(\n requestParameters: CreatePolicyDefinitionRequest = {},\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<IdResponseDto> {\n const response = await this.createPolicyDefinitionRaw(\n requestParameters,\n initOverrides,\n );\n return await response.value();\n }\n\n /**\n * Delete an Asset\n */\n async deleteAssetRaw(\n requestParameters: DeleteAssetRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<IdResponseDto>> {\n if (\n requestParameters.assetId === null ||\n requestParameters.assetId === undefined\n ) {\n throw new runtime.RequiredError(\n 'assetId',\n 'Required parameter requestParameters.assetId was null or undefined when calling deleteAsset.',\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/asset-page/assets/{assetId}`.replace(\n `{${'assetId'}}`,\n encodeURIComponent(String(requestParameters.assetId)),\n ),\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n IdResponseDtoFromJSON(jsonValue),\n );\n }\n\n /**\n * Delete an Asset\n */\n async deleteAsset(\n requestParameters: DeleteAssetRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<IdResponseDto> {\n const response = await this.deleteAssetRaw(\n requestParameters,\n initOverrides,\n );\n return await response.value();\n }\n\n /**\n * Delete a Contract Definition\n */\n async deleteContractDefinitionRaw(\n requestParameters: DeleteContractDefinitionRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<IdResponseDto>> {\n if (\n requestParameters.contractDefinitionId === null ||\n requestParameters.contractDefinitionId === undefined\n ) {\n throw new runtime.RequiredError(\n 'contractDefinitionId',\n 'Required parameter requestParameters.contractDefinitionId was null or undefined when calling deleteContractDefinition.',\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/contract-definition-page/contract-definitions/{contractDefinitionId}`.replace(\n `{${'contractDefinitionId'}}`,\n encodeURIComponent(\n String(requestParameters.contractDefinitionId),\n ),\n ),\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n IdResponseDtoFromJSON(jsonValue),\n );\n }\n\n /**\n * Delete a Contract Definition\n */\n async deleteContractDefinition(\n requestParameters: DeleteContractDefinitionRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<IdResponseDto> {\n const response = await this.deleteContractDefinitionRaw(\n requestParameters,\n initOverrides,\n );\n return await response.value();\n }\n\n /**\n * Delete a Policy Definition\n */\n async deletePolicyDefinitionRaw(\n requestParameters: DeletePolicyDefinitionRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<IdResponseDto>> {\n if (\n requestParameters.policyId === null ||\n requestParameters.policyId === undefined\n ) {\n throw new runtime.RequiredError(\n 'policyId',\n 'Required parameter requestParameters.policyId was null or undefined when calling deletePolicyDefinition.',\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/policy-page/policy-definitions/{policyId}`.replace(\n `{${'policyId'}}`,\n encodeURIComponent(String(requestParameters.policyId)),\n ),\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n IdResponseDtoFromJSON(jsonValue),\n );\n }\n\n /**\n * Delete a Policy Definition\n */\n async deletePolicyDefinition(\n requestParameters: DeletePolicyDefinitionRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<IdResponseDto> {\n const response = await this.deletePolicyDefinitionRaw(\n requestParameters,\n initOverrides,\n );\n return await response.value();\n }\n\n /**\n * Updates an Asset\\'s metadata\n */\n async editAssetMetadataRaw(\n requestParameters: EditAssetMetadataRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<IdResponseDto>> {\n if (\n requestParameters.assetId === null ||\n requestParameters.assetId === undefined\n ) {\n throw new runtime.RequiredError(\n 'assetId',\n 'Required parameter requestParameters.assetId was null or undefined when calling editAssetMetadata.',\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/asset-page/assets/{assetId}/metadata`.replace(\n `{${'assetId'}}`,\n encodeURIComponent(String(requestParameters.assetId)),\n ),\n method: 'PUT',\n headers: headerParameters,\n query: queryParameters,\n body: UiAssetEditMetadataRequestToJSON(\n requestParameters.uiAssetEditMetadataRequest,\n ),\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n IdResponseDtoFromJSON(jsonValue),\n );\n }\n\n /**\n * Updates an Asset\\'s metadata\n */\n async editAssetMetadata(\n requestParameters: EditAssetMetadataRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<IdResponseDto> {\n const response = await this.editAssetMetadataRaw(\n requestParameters,\n initOverrides,\n );\n return await response.value();\n }\n\n /**\n * Collect all data for Asset Page\n */\n async getAssetPageRaw(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<AssetPage>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/asset-page`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n AssetPageFromJSON(jsonValue),\n );\n }\n\n /**\n * Collect all data for Asset Page\n */\n async getAssetPage(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<AssetPage> {\n const response = await this.getAssetPageRaw(initOverrides);\n return await response.value();\n }\n\n /**\n * Fetch a connector\\'s data offers\n */\n async getCatalogPageDataOffersRaw(\n requestParameters: GetCatalogPageDataOffersRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<Array<UiDataOffer>>> {\n const queryParameters: any = {};\n\n if (requestParameters.connectorEndpoint !== undefined) {\n queryParameters['connectorEndpoint'] =\n requestParameters.connectorEndpoint;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/catalog-page/data-offers`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n jsonValue.map(UiDataOfferFromJSON),\n );\n }\n\n /**\n * Fetch a connector\\'s data offers\n */\n async getCatalogPageDataOffers(\n requestParameters: GetCatalogPageDataOffersRequest = {},\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<Array<UiDataOffer>> {\n const response = await this.getCatalogPageDataOffersRaw(\n requestParameters,\n initOverrides,\n );\n return await response.value();\n }\n\n /**\n * Collect all data for the Contract Agreement Page\n */\n async getContractAgreementPageRaw(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<ContractAgreementPage>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/contract-agreement-page`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n ContractAgreementPageFromJSON(jsonValue),\n );\n }\n\n /**\n * Collect all data for the Contract Agreement Page\n */\n async getContractAgreementPage(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<ContractAgreementPage> {\n const response = await this.getContractAgreementPageRaw(initOverrides);\n return await response.value();\n }\n\n /**\n * Collect all data for Contract Definition Page\n */\n async getContractDefinitionPageRaw(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<ContractDefinitionPage>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/contract-definition-page`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n ContractDefinitionPageFromJSON(jsonValue),\n );\n }\n\n /**\n * Collect all data for Contract Definition Page\n */\n async getContractDefinitionPage(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<ContractDefinitionPage> {\n const response = await this.getContractDefinitionPageRaw(initOverrides);\n return await response.value();\n }\n\n /**\n * Get Contract Negotiation Information\n */\n async getContractNegotiationRaw(\n requestParameters: GetContractNegotiationRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<UiContractNegotiation>> {\n if (\n requestParameters.contractNegotiationId === null ||\n requestParameters.contractNegotiationId === undefined\n ) {\n throw new runtime.RequiredError(\n 'contractNegotiationId',\n 'Required parameter requestParameters.contractNegotiationId was null or undefined when calling getContractNegotiation.',\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/catalog-page/contract-negotiations/{contractNegotiationId}`.replace(\n `{${'contractNegotiationId'}}`,\n encodeURIComponent(\n String(requestParameters.contractNegotiationId),\n ),\n ),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n UiContractNegotiationFromJSON(jsonValue),\n );\n }\n\n /**\n * Get Contract Negotiation Information\n */\n async getContractNegotiation(\n requestParameters: GetContractNegotiationRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<UiContractNegotiation> {\n const response = await this.getContractNegotiationRaw(\n requestParameters,\n initOverrides,\n );\n return await response.value();\n }\n\n /**\n * Collect all data for the Dashboard Page\n */\n async getDashboardPageRaw(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<DashboardPage>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/dashboard-page`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n DashboardPageFromJSON(jsonValue),\n );\n }\n\n /**\n * Collect all data for the Dashboard Page\n */\n async getDashboardPage(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<DashboardPage> {\n const response = await this.getDashboardPageRaw(initOverrides);\n return await response.value();\n }\n\n /**\n * Collect all data for Policy Definition Page\n */\n async getPolicyDefinitionPageRaw(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<PolicyDefinitionPage>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/policy-page`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n PolicyDefinitionPageFromJSON(jsonValue),\n );\n }\n\n /**\n * Collect all data for Policy Definition Page\n */\n async getPolicyDefinitionPage(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<PolicyDefinitionPage> {\n const response = await this.getPolicyDefinitionPageRaw(initOverrides);\n return await response.value();\n }\n\n /**\n * Collect all data for the Transfer History Page\n */\n async getTransferHistoryPageRaw(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<TransferHistoryPage>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/transfer-history-page`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n TransferHistoryPageFromJSON(jsonValue),\n );\n }\n\n /**\n * Collect all data for the Transfer History Page\n */\n async getTransferHistoryPage(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<TransferHistoryPage> {\n const response = await this.getTransferHistoryPageRaw(initOverrides);\n return await response.value();\n }\n\n /**\n * Queries a transfer process\\' asset\n */\n async getTransferProcessAssetRaw(\n requestParameters: GetTransferProcessAssetRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<UiAsset>> {\n if (\n requestParameters.transferProcessId === null ||\n requestParameters.transferProcessId === undefined\n ) {\n throw new runtime.RequiredError(\n 'transferProcessId',\n 'Required parameter requestParameters.transferProcessId was null or undefined when calling getTransferProcessAsset.',\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/transfer-history-page/transfer-processes/{transferProcessId}/asset`.replace(\n `{${'transferProcessId'}}`,\n encodeURIComponent(\n String(requestParameters.transferProcessId),\n ),\n ),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n UiAssetFromJSON(jsonValue),\n );\n }\n\n /**\n * Queries a transfer process\\' asset\n */\n async getTransferProcessAsset(\n requestParameters: GetTransferProcessAssetRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<UiAsset> {\n const response = await this.getTransferProcessAssetRaw(\n requestParameters,\n initOverrides,\n );\n return await response.value();\n }\n\n /**\n * Initiate a new Contract Negotiation\n */\n async initiateContractNegotiationRaw(\n requestParameters: InitiateContractNegotiationRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<UiContractNegotiation>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/catalog-page/contract-negotiations`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContractNegotiationRequestToJSON(\n requestParameters.contractNegotiationRequest,\n ),\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n UiContractNegotiationFromJSON(jsonValue),\n );\n }\n\n /**\n * Initiate a new Contract Negotiation\n */\n async initiateContractNegotiation(\n requestParameters: InitiateContractNegotiationRequest = {},\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<UiContractNegotiation> {\n const response = await this.initiateContractNegotiationRaw(\n requestParameters,\n initOverrides,\n );\n return await response.value();\n }\n\n /**\n * Initiate a Transfer Process via a custom Transfer Process JSON-LD. Fields such as connectorId, assetId, providerConnectorId, providerConnectorAddress will be set automatically.\n */\n async initiateCustomTransferRaw(\n requestParameters: InitiateCustomTransferOperationRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<IdResponseDto>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/contract-agreement-page/transfers/custom`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: InitiateCustomTransferRequestToJSON(\n requestParameters.initiateCustomTransferRequest,\n ),\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n IdResponseDtoFromJSON(jsonValue),\n );\n }\n\n /**\n * Initiate a Transfer Process via a custom Transfer Process JSON-LD. Fields such as connectorId, assetId, providerConnectorId, providerConnectorAddress will be set automatically.\n */\n async initiateCustomTransfer(\n requestParameters: InitiateCustomTransferOperationRequest = {},\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<IdResponseDto> {\n const response = await this.initiateCustomTransferRaw(\n requestParameters,\n initOverrides,\n );\n return await response.value();\n }\n\n /**\n * Initiate a Transfer Process\n */\n async initiateTransferRaw(\n requestParameters: InitiateTransferOperationRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<IdResponseDto>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/contract-agreement-page/transfers`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: InitiateTransferRequestToJSON(\n requestParameters.initiateTransferRequest,\n ),\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n IdResponseDtoFromJSON(jsonValue),\n );\n }\n\n /**\n * Initiate a Transfer Process\n */\n async initiateTransfer(\n requestParameters: InitiateTransferOperationRequest = {},\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<IdResponseDto> {\n const response = await this.initiateTransferRaw(\n requestParameters,\n initOverrides,\n );\n return await response.value();\n }\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport type {KpiResult} from '../models';\nimport {KpiResultFromJSON, KpiResultToJSON} from '../models';\nimport * as runtime from '../runtime';\n\n/**\n *\n */\nexport class UseCaseApi extends runtime.BaseAPI {\n /**\n * Basic KPIs about the running EDC Connector.\n */\n async getKpisRaw(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<KpiResult>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/use-case-api/kpis`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n KpiResultFromJSON(jsonValue),\n );\n }\n\n /**\n * Basic KPIs about the running EDC Connector.\n */\n async getKpis(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<KpiResult> {\n const response = await this.getKpisRaw(initOverrides);\n return await response.value();\n }\n\n /**\n * List available functions in policies, prohibitions and obligations.\n */\n async getSupportedFunctionsRaw(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<Array<string>>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/use-case-api/supported-policy-functions`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse<any>(response);\n }\n\n /**\n * List available functions in policies, prohibitions and obligations.\n */\n async getSupportedFunctions(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<Array<string>> {\n const response = await this.getSupportedFunctionsRaw(initOverrides);\n return await response.value();\n }\n}\n","var util;\n(function (util) {\n util.assertEqual = (val) => val;\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array\n .map((val) => (typeof val === \"string\" ? `'${val}'` : val))\n .join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nvar objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nconst ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nconst getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then &&\n typeof data.then === \"function\" &&\n data.catch &&\n typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n\nconst ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nconst quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nclass ZodError extends Error {\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n get errors() {\n return this.issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `smaller than or equal to`\n : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\n\nlet overrideErrorMap = errorMap;\nfunction setErrorMap(map) {\n overrideErrorMap = map;\n}\nfunction getErrorMap() {\n return overrideErrorMap;\n}\n\nconst makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message || errorMessage,\n };\n};\nconst EMPTY_PATH = [];\nfunction addIssueToContext(ctx, issueData) {\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nclass ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n syncPairs.push({\n key: await pair.key,\n value: await pair.value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" &&\n (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nconst INVALID = Object.freeze({\n status: \"aborted\",\n});\nconst DIRTY = (value) => ({ status: \"dirty\", value });\nconst OK = (value) => ({ status: \"valid\", value });\nconst isAborted = (x) => x.status === \"aborted\";\nconst isDirty = (x) => x.status === \"dirty\";\nconst isValid = (x) => x.status === \"valid\";\nconst isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n\nvar errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message === null || message === void 0 ? void 0 : message.message;\n})(errorUtil || (errorUtil = {}));\n\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (this._key instanceof Array) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n if (typeof ctx.data === \"undefined\") {\n return { message: required_error !== null && required_error !== void 0 ? required_error : ctx.defaultError };\n }\n return { message: invalid_type_error !== null && invalid_type_error !== void 0 ? invalid_type_error : ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nclass ZodType {\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n }\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n var _a;\n const ctx = {\n common: {\n issues: [],\n async: (_a = params === null || params === void 0 ? void 0 : params.async) !== null && _a !== void 0 ? _a : false,\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n async: true,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult)\n ? maybeAsyncResult\n : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\"\n ? refinementData(val, ctx)\n : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this, this._def);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[a-z][a-z0-9]*$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_+-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\nconst ipv4Regex = /^(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))$/;\nconst ipv6Regex = /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\n// Adapted from https://stackoverflow.com/a/3143231\nconst datetimeRegex = (args) => {\n if (args.precision) {\n if (args.offset) {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}\\\\.\\\\d{${args.precision}}(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$`);\n }\n else {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}\\\\.\\\\d{${args.precision}}Z$`);\n }\n }\n else if (args.precision === 0) {\n if (args.offset) {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$`);\n }\n else {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}Z$`);\n }\n }\n else {\n if (args.offset) {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d+)?(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$`);\n }\n else {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d+)?Z$`);\n }\n }\n};\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nclass ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n }\n //\n );\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch (_a) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n var _a;\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === \"undefined\" ? null : options === null || options === void 0 ? void 0 : options.precision,\n offset: (_a = options === null || options === void 0 ? void 0 : options.offset) !== null && _a !== void 0 ? _a : false,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options === null || options === void 0 ? void 0 : options.position,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * @deprecated Use z.string().min(1) instead.\n * @see {@link ZodString.min}\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n var _a;\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / Math.pow(10, decCount);\n}\nclass ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" ||\n (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null, min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" ||\n ch.kind === \"int\" ||\n ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = BigInt(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n var _a;\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\nclass ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nclass ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nclass ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nclass ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nclass ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nclass ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nclass ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nclass ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nclass ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nclass ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<T, Augmentation>,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n return (this._cached = { shape, keys });\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever &&\n this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") ;\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n syncPairs.push({\n key,\n value: await pair.value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n var _a, _b, _c, _d;\n const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: (_d = errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n util.objectKeys(mask).forEach((key) => {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nclass ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return Object.keys(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else {\n return null;\n }\n};\nclass ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util\n .objectKeys(a)\n .filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date &&\n bType === ZodParsedType.date &&\n +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nclass ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\nclass ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nclass ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nclass ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nclass ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nclass ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args\n .parseAsync(args, params)\n .catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args\n ? args\n : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nclass ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nclass ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nclass ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (this._def.values.indexOf(input.data) === -1) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values) {\n return ZodEnum.create(values);\n }\n exclude(values) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)));\n }\n}\nZodEnum.create = createZodEnum;\nclass ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string &&\n ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (nativeEnumValues.indexOf(input.data) === -1) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nclass ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise &&\n ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise\n ? ctx.data\n : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nclass ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.issues.length) {\n return {\n status: \"dirty\",\n value: ctx.data,\n };\n }\n if (ctx.common.async) {\n return Promise.resolve(processed).then((processed) => {\n return this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n });\n }\n else {\n return this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc\n // effect: RefinementEffect<any>\n ) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return base;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((base) => {\n if (!isValid(base))\n return base;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nclass ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nclass ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nclass ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\"\n ? params.default\n : () => params.default,\n ...processCreateParams(params),\n });\n};\nclass ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nclass ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nconst BRAND = Symbol(\"zod_brand\");\nclass ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nclass ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nclass ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n if (isValid(result)) {\n result.value = Object.freeze(result.value);\n }\n return result;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\nconst custom = (check, params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) => {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n var _a, _b;\n if (!check(data)) {\n const p = typeof params === \"function\"\n ? params(data)\n : typeof params === \"string\"\n ? { message: params }\n : params;\n const _fatal = (_b = (_a = p.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n ctx.addIssue({ code: \"custom\", ...p2, fatal: _fatal });\n }\n });\n return ZodAny.create();\n};\nconst late = {\n object: ZodObject.lazycreate,\n};\nvar ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\nconst instanceOfType = (\n// const instanceOfType = <T extends new (...args: any[]) => any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nconst coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nconst NEVER = INVALID;\n\nvar z = /*#__PURE__*/Object.freeze({\n __proto__: null,\n defaultErrorMap: errorMap,\n setErrorMap: setErrorMap,\n getErrorMap: getErrorMap,\n makeIssue: makeIssue,\n EMPTY_PATH: EMPTY_PATH,\n addIssueToContext: addIssueToContext,\n ParseStatus: ParseStatus,\n INVALID: INVALID,\n DIRTY: DIRTY,\n OK: OK,\n isAborted: isAborted,\n isDirty: isDirty,\n isValid: isValid,\n isAsync: isAsync,\n get util () { return util; },\n get objectUtil () { return objectUtil; },\n ZodParsedType: ZodParsedType,\n getParsedType: getParsedType,\n ZodType: ZodType,\n ZodString: ZodString,\n ZodNumber: ZodNumber,\n ZodBigInt: ZodBigInt,\n ZodBoolean: ZodBoolean,\n ZodDate: ZodDate,\n ZodSymbol: ZodSymbol,\n ZodUndefined: ZodUndefined,\n ZodNull: ZodNull,\n ZodAny: ZodAny,\n ZodUnknown: ZodUnknown,\n ZodNever: ZodNever,\n ZodVoid: ZodVoid,\n ZodArray: ZodArray,\n ZodObject: ZodObject,\n ZodUnion: ZodUnion,\n ZodDiscriminatedUnion: ZodDiscriminatedUnion,\n ZodIntersection: ZodIntersection,\n ZodTuple: ZodTuple,\n ZodRecord: ZodRecord,\n ZodMap: ZodMap,\n ZodSet: ZodSet,\n ZodFunction: ZodFunction,\n ZodLazy: ZodLazy,\n ZodLiteral: ZodLiteral,\n ZodEnum: ZodEnum,\n ZodNativeEnum: ZodNativeEnum,\n ZodPromise: ZodPromise,\n ZodEffects: ZodEffects,\n ZodTransformer: ZodEffects,\n ZodOptional: ZodOptional,\n ZodNullable: ZodNullable,\n ZodDefault: ZodDefault,\n ZodCatch: ZodCatch,\n ZodNaN: ZodNaN,\n BRAND: BRAND,\n ZodBranded: ZodBranded,\n ZodPipeline: ZodPipeline,\n ZodReadonly: ZodReadonly,\n custom: custom,\n Schema: ZodType,\n ZodSchema: ZodType,\n late: late,\n get ZodFirstPartyTypeKind () { return ZodFirstPartyTypeKind; },\n coerce: coerce,\n any: anyType,\n array: arrayType,\n bigint: bigIntType,\n boolean: booleanType,\n date: dateType,\n discriminatedUnion: discriminatedUnionType,\n effect: effectsType,\n 'enum': enumType,\n 'function': functionType,\n 'instanceof': instanceOfType,\n intersection: intersectionType,\n lazy: lazyType,\n literal: literalType,\n map: mapType,\n nan: nanType,\n nativeEnum: nativeEnumType,\n never: neverType,\n 'null': nullType,\n nullable: nullableType,\n number: numberType,\n object: objectType,\n oboolean: oboolean,\n onumber: onumber,\n optional: optionalType,\n ostring: ostring,\n pipeline: pipelineType,\n preprocess: preprocessType,\n promise: promiseType,\n record: recordType,\n set: setType,\n strictObject: strictObjectType,\n string: stringType,\n symbol: symbolType,\n transformer: effectsType,\n tuple: tupleType,\n 'undefined': undefinedType,\n union: unionType,\n unknown: unknownType,\n 'void': voidType,\n NEVER: NEVER,\n ZodIssueCode: ZodIssueCode,\n quotelessJson: quotelessJson,\n ZodError: ZodError\n});\n\nexport { BRAND, DIRTY, EMPTY_PATH, INVALID, NEVER, OK, ParseStatus, ZodType as Schema, ZodAny, ZodArray, ZodBigInt, ZodBoolean, ZodBranded, ZodCatch, ZodDate, ZodDefault, ZodDiscriminatedUnion, ZodEffects, ZodEnum, ZodError, ZodFirstPartyTypeKind, ZodFunction, ZodIntersection, ZodIssueCode, ZodLazy, ZodLiteral, ZodMap, ZodNaN, ZodNativeEnum, ZodNever, ZodNull, ZodNullable, ZodNumber, ZodObject, ZodOptional, ZodParsedType, ZodPipeline, ZodPromise, ZodReadonly, ZodRecord, ZodType as ZodSchema, ZodSet, ZodString, ZodSymbol, ZodEffects as ZodTransformer, ZodTuple, ZodType, ZodUndefined, ZodUnion, ZodUnknown, ZodVoid, addIssueToContext, anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, coerce, custom, dateType as date, z as default, errorMap as defaultErrorMap, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, getErrorMap, getParsedType, instanceOfType as instanceof, intersectionType as intersection, isAborted, isAsync, isDirty, isValid, late, lazyType as lazy, literalType as literal, makeIssue, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, objectUtil, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, quotelessJson, recordType as record, setType as set, setErrorMap, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, util, voidType as void, z };\n","/**\n * Checks if the given HTTP status code is either 401 (Unauthorized) or 403 (Forbidden).\n * @param httpStatus\n */\nexport function needsAuthentication(httpStatus: number) {\n return httpStatus === 401 || httpStatus === 403;\n}\n\nexport function createUrlEncodedParamsString(obj: Record<string, string>) {\n return Object.entries(obj)\n .map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`)\n .join('&');\n}\n","import {z} from 'zod';\nimport {ClientCredentials} from '../model/ClientCredentials';\nimport {createUrlEncodedParamsString} from './HttpUtils';\n\nconst ClientCredentialsResponseSchema = z.object({\n access_token: z.string().min(1),\n token_type: z.string(),\n expires_in: z.number(),\n scope: z.string(),\n});\nexport type ClientCredentialsResponse = z.infer<\n typeof ClientCredentialsResponseSchema\n>;\n\nexport async function fetchClientCredentials(\n clientCredentials: ClientCredentials,\n): Promise<ClientCredentialsResponse> {\n let response = await fetch(clientCredentials.tokenUrl, {\n method: 'POST',\n body: createUrlEncodedParamsString({\n grant_type: 'client_credentials',\n client_id: clientCredentials.clientId,\n client_secret: clientCredentials.clientSecret,\n }),\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n });\n let json: unknown = await response.json();\n return parseTokenResponse(json);\n}\n\nfunction parseTokenResponse(json: unknown): ClientCredentialsResponse {\n const tokenResponseParsed = ClientCredentialsResponseSchema.safeParse(json);\n if (!tokenResponseParsed.success) {\n throw new Error('Bad access token response');\n }\n return tokenResponseParsed.data;\n}\n","import {ClientCredentials} from './model/ClientCredentials';\nimport {\n ClientCredentialsResponse,\n fetchClientCredentials,\n} from './utils/FetchUtils';\n\nexport class AccessTokenService {\n private activeRequest: Promise<ClientCredentialsResponse> | null = null;\n private refreshTimeout?: NodeJS.Timeout;\n private accessToken: string | null = null;\n\n constructor(private clientCredentials: ClientCredentials) {}\n\n async getAccessToken(): Promise<string> {\n if (!this.accessToken) {\n return await this.refreshAccessToken();\n }\n return this.accessToken;\n }\n\n /**\n * Synchronized refreshing of the access token\n */\n async refreshAccessToken(): Promise<string> {\n if (this.activeRequest) {\n await this.activeRequest;\n return this.accessToken!;\n }\n\n this.accessToken = null;\n this.activeRequest = fetchClientCredentials(this.clientCredentials);\n const response = await this.activeRequest;\n this.scheduleNextRefresh(response);\n this.accessToken = response.access_token;\n this.activeRequest = null;\n\n return this.accessToken;\n }\n\n private scheduleNextRefresh(response: ClientCredentialsResponse) {\n clearTimeout(this.refreshTimeout);\n const ms = (response.expires_in - 2) * 1000;\n this.refreshTimeout = setTimeout(() => {\n this.accessToken = null;\n }, ms);\n }\n}\n","export function injectAccessTokenHeader(init: RequestInit, token: string) {\n init.headers = withHeader('Authorization', `Bearer ${token}`, init.headers);\n}\n\nfunction withHeader(\n headerName: string,\n headerValue: string,\n headers?: HeadersInit,\n): HeadersInit {\n if (!headers) {\n headers = {};\n headers[headerName] = headerValue;\n return headers;\n }\n\n if (Array.isArray(headers)) {\n return headers.map(([a, b]) =>\n a !== headerName ? [a, b] : [headerName, headerValue],\n );\n }\n\n if (isHeaders(headers)) {\n if (headers.has(headerName)) {\n headers.set(headerName, headerValue);\n } else {\n headers.append(headerName, headerValue);\n }\n return headers;\n }\n\n headers[headerName] = headerValue;\n return headers;\n}\n\nfunction isHeaders(object: any): object is Headers {\n return (\n 'append' in object &&\n 'delete' in object &&\n 'get' in object &&\n 'has' in object &&\n 'set' in object &&\n 'forEach' in object\n );\n}\n","import {Middleware, RequestContext, ResponseContext} from '../generated';\nimport {AccessTokenService} from './AccessTokenService';\nimport {ClientCredentials} from './model/ClientCredentials';\nimport {needsAuthentication} from './utils/HttpUtils';\nimport {injectAccessTokenHeader} from './utils/RequestUtils';\n\nexport function buildOAuthMiddleware(\n clientCredentials: ClientCredentials,\n): Middleware {\n const accessTokenService = new AccessTokenService(clientCredentials);\n\n return {\n pre: async (ctx: RequestContext) => {\n const accessToken = await accessTokenService.getAccessToken();\n injectAccessTokenHeader(ctx.init, accessToken);\n\n return Promise.resolve({\n url: ctx.url,\n init: ctx.init,\n });\n },\n post: async (ctx: ResponseContext): Promise<Response> => {\n if (needsAuthentication(ctx.response.status)) {\n const accessToken =\n await accessTokenService.refreshAccessToken();\n injectAccessTokenHeader(ctx.init, accessToken);\n // Use normal fetch to not trigger middleware on retry\n return await fetch(ctx.url, ctx.init);\n }\n\n return Promise.resolve(ctx.response);\n },\n };\n}\n","import {\n Configuration,\n ConfigurationParameters,\n EnterpriseEditionApi,\n Middleware,\n UIApi,\n UseCaseApi,\n} from './generated';\nimport {buildOAuthMiddleware} from './oauth2/Middleware';\nimport {ClientCredentials} from './oauth2/model/ClientCredentials';\n\n/**\n * API Client for our sovity EDC\n */\nexport interface EdcClient {\n uiApi: UIApi;\n useCaseApi: UseCaseApi;\n enterpriseEditionApi: EnterpriseEditionApi;\n}\n\n/**\n * Configure & Build new EDC Client\n * @param opts opts\n */\nexport function buildEdcClient(opts: EdcClientOptions): EdcClient {\n let middleware: Middleware[] = [];\n let headers: Record<string, string> = {};\n\n if (opts.clientCredentials) {\n middleware.push(buildOAuthMiddleware(opts.clientCredentials));\n }\n if (opts.managementApiKey) {\n headers = buildApiKeyHeader(opts.managementApiKey);\n }\n\n const config = new Configuration({\n basePath: opts.managementApiUrl,\n headers,\n credentials: 'same-origin',\n middleware,\n ...opts.configOverrides,\n });\n\n return {\n uiApi: new UIApi(config),\n useCaseApi: new UseCaseApi(config),\n enterpriseEditionApi: new EnterpriseEditionApi(config),\n };\n}\n\nfunction buildApiKeyHeader(key: string) {\n return {\n 'X-Api-Key': key,\n };\n}\n\n/**\n * Options for instantiating an EDC API Client\n */\nexport interface EdcClientOptions {\n managementApiUrl: string;\n managementApiKey?: string;\n clientCredentials?: ClientCredentials;\n configOverrides?: Partial<ConfigurationParameters>;\n}\n"],"names":["BASE_PATH","Configuration","configuration","querystring","apiKey","accessToken","DefaultConfig","_BaseAPI","__publicField","url","init","fetchParams","middleware","response","e","FetchError","middlewares","next","preMiddlewares","pre","postMiddlewares","post","mime","context","initOverrides","ResponseError","headers","key","initOverrideFn","initParams","overriddenInit","isFormData","isBlob","constructor","BaseAPI","value","msg","cause","RequiredError","field","COLLECTION_FORMATS","exists","json","params","prefix","querystringSingleKey","part","keyPrefix","fullKey","multiValue","singleValue","valueAsArray","mapValues","data","fn","acc","canConsumeForm","consumes","consume","JSONApiResponse","raw","transformer","jsonValue","VoidApiResponse","BlobApiResponse","TextApiResponse","instanceOfUiAsset","isInstance","UiAssetFromJSON","UiAssetFromJSONTyped","ignoreDiscriminator","UiAssetToJSON","instanceOfAssetPage","AssetPageFromJSON","AssetPageFromJSONTyped","AssetPageToJSON","instanceOfConnectorLimits","ConnectorLimitsFromJSON","ConnectorLimitsFromJSONTyped","ConnectorLimitsToJSON","ContractAgreementDirection","ContractAgreementDirectionFromJSON","ContractAgreementDirectionFromJSONTyped","ContractAgreementDirectionToJSON","TransferProcessSimplifiedState","TransferProcessSimplifiedStateFromJSON","TransferProcessSimplifiedStateFromJSONTyped","TransferProcessSimplifiedStateToJSON","instanceOfTransferProcessState","TransferProcessStateFromJSON","TransferProcessStateFromJSONTyped","TransferProcessStateToJSON","instanceOfContractAgreementTransferProcess","ContractAgreementTransferProcessFromJSON","ContractAgreementTransferProcessFromJSONTyped","ContractAgreementTransferProcessToJSON","OperatorDto","OperatorDtoFromJSON","OperatorDtoFromJSONTyped","OperatorDtoToJSON","UiPolicyLiteralType","UiPolicyLiteralTypeFromJSON","UiPolicyLiteralTypeFromJSONTyped","UiPolicyLiteralTypeToJSON","instanceOfUiPolicyLiteral","UiPolicyLiteralFromJSON","UiPolicyLiteralFromJSONTyped","UiPolicyLiteralToJSON","instanceOfUiPolicyConstraint","UiPolicyConstraintFromJSON","UiPolicyConstraintFromJSONTyped","UiPolicyConstraintToJSON","instanceOfUiPolicy","UiPolicyFromJSON","UiPolicyFromJSONTyped","UiPolicyToJSON","instanceOfContractAgreementCard","ContractAgreementCardFromJSON","ContractAgreementCardFromJSONTyped","ContractAgreementCardToJSON","instanceOfContractAgreementPage","ContractAgreementPageFromJSON","ContractAgreementPageFromJSONTyped","ContractAgreementPageToJSON","UiCriterionLiteralType","UiCriterionLiteralTypeFromJSON","UiCriterionLiteralTypeFromJSONTyped","UiCriterionLiteralTypeToJSON","instanceOfUiCriterionLiteral","UiCriterionLiteralFromJSON","UiCriterionLiteralFromJSONTyped","UiCriterionLiteralToJSON","UiCriterionOperator","UiCriterionOperatorFromJSON","UiCriterionOperatorFromJSONTyped","UiCriterionOperatorToJSON","instanceOfUiCriterion","UiCriterionFromJSON","UiCriterionFromJSONTyped","UiCriterionToJSON","instanceOfContractDefinitionEntry","ContractDefinitionEntryFromJSON","ContractDefinitionEntryFromJSONTyped","ContractDefinitionEntryToJSON","instanceOfContractDefinitionPage","ContractDefinitionPageFromJSON","ContractDefinitionPageFromJSONTyped","ContractDefinitionPageToJSON","instanceOfContractDefinitionRequest","ContractDefinitionRequestFromJSON","ContractDefinitionRequestFromJSONTyped","ContractDefinitionRequestToJSON","instanceOfContractNegotiationRequest","ContractNegotiationRequestFromJSON","ContractNegotiationRequestFromJSONTyped","ContractNegotiationRequestToJSON","ContractNegotiationSimplifiedState","ContractNegotiationSimplifiedStateFromJSON","ContractNegotiationSimplifiedStateFromJSONTyped","ContractNegotiationSimplifiedStateToJSON","instanceOfContractNegotiationState","ContractNegotiationStateFromJSON","ContractNegotiationStateFromJSONTyped","ContractNegotiationStateToJSON","instanceOfDashboardDapsConfig","DashboardDapsConfigFromJSON","DashboardDapsConfigFromJSONTyped","DashboardDapsConfigToJSON","instanceOfDashboardMiwConfig","DashboardMiwConfigFromJSON","DashboardMiwConfigFromJSONTyped","DashboardMiwConfigToJSON","instanceOfDashboardTransferAmounts","DashboardTransferAmountsFromJSON","DashboardTransferAmountsFromJSONTyped","DashboardTransferAmountsToJSON","instanceOfDashboardPage","DashboardPageFromJSON","DashboardPageFromJSONTyped","DashboardPageToJSON","instanceOfIdResponseDto","IdResponseDtoFromJSON","IdResponseDtoFromJSONTyped","IdResponseDtoToJSON","instanceOfInitiateCustomTransferRequest","InitiateCustomTransferRequestFromJSON","InitiateCustomTransferRequestFromJSONTyped","InitiateCustomTransferRequestToJSON","instanceOfInitiateTransferRequest","InitiateTransferRequestFromJSON","InitiateTransferRequestFromJSONTyped","InitiateTransferRequestToJSON","instanceOfTransferProcessStatesDto","TransferProcessStatesDtoFromJSON","TransferProcessStatesDtoFromJSONTyped","TransferProcessStatesDtoToJSON","instanceOfKpiResult","KpiResultFromJSON","KpiResultFromJSONTyped","KpiResultToJSON","instanceOfUiPolicyCreateRequest","UiPolicyCreateRequestFromJSON","UiPolicyCreateRequestFromJSONTyped","UiPolicyCreateRequestToJSON","instanceOfPolicyDefinitionCreateRequest","PolicyDefinitionCreateRequestFromJSON","PolicyDefinitionCreateRequestFromJSONTyped","PolicyDefinitionCreateRequestToJSON","instanceOfPolicyDefinitionDto","PolicyDefinitionDtoFromJSON","PolicyDefinitionDtoFromJSONTyped","PolicyDefinitionDtoToJSON","instanceOfPolicyDefinitionPage","PolicyDefinitionPageFromJSON","PolicyDefinitionPageFromJSONTyped","PolicyDefinitionPageToJSON","instanceOfTransferHistoryEntry","TransferHistoryEntryFromJSON","TransferHistoryEntryFromJSONTyped","TransferHistoryEntryToJSON","instanceOfTransferHistoryPage","TransferHistoryPageFromJSON","TransferHistoryPageFromJSONTyped","TransferHistoryPageToJSON","instanceOfUiAssetCreateRequest","UiAssetCreateRequestFromJSON","UiAssetCreateRequestFromJSONTyped","UiAssetCreateRequestToJSON","instanceOfUiAssetEditMetadataRequest","UiAssetEditMetadataRequestFromJSON","UiAssetEditMetadataRequestFromJSONTyped","UiAssetEditMetadataRequestToJSON","instanceOfUiContractNegotiation","UiContractNegotiationFromJSON","UiContractNegotiationFromJSONTyped","UiContractNegotiationToJSON","instanceOfUiContractOffer","UiContractOfferFromJSON","UiContractOfferFromJSONTyped","UiContractOfferToJSON","instanceOfUiDataOffer","UiDataOfferFromJSON","UiDataOfferFromJSONTyped","UiDataOfferToJSON","EnterpriseEditionApi","runtime.BaseAPI","queryParameters","headerParameters","runtime.JSONApiResponse","requestParameters","runtime.RequiredError","runtime.VoidApiResponse","runtime.TextApiResponse","UIApi","UseCaseApi","util","val","assertIs","_arg","assertNever","_x","items","obj","item","validKeys","k","filtered","object","keys","arr","checker","joinValues","array","separator","_","objectUtil","first","second","ZodParsedType","getParsedType","ZodIssueCode","quotelessJson","ZodError","issues","sub","subs","actualProto","_mapper","mapper","issue","fieldErrors","processError","error","curr","i","el","formErrors","errorMap","_ctx","message","overrideErrorMap","setErrorMap","map","getErrorMap","makeIssue","path","errorMaps","issueData","fullPath","fullIssue","errorMessage","maps","m","EMPTY_PATH","addIssueToContext","ctx","x","ParseStatus","status","results","arrayValue","s","INVALID","pairs","syncPairs","pair","finalObject","DIRTY","OK","isAborted","isDirty","isValid","isAsync","errorUtil","ParseInputLazyPath","parent","handleResult","result","processCreateParams","invalid_type_error","required_error","description","iss","ZodType","def","input","_a","maybeAsyncResult","check","getIssueProperties","setError","refinementData","refinement","ZodEffects","ZodFirstPartyTypeKind","ZodOptional","ZodNullable","ZodArray","ZodPromise","option","ZodUnion","incoming","ZodIntersection","transform","defaultValueFunc","ZodDefault","ZodBranded","catchValueFunc","ZodCatch","This","target","ZodPipeline","ZodReadonly","cuidRegex","cuid2Regex","ulidRegex","uuidRegex","emailRegex","_emojiRegex","emojiRegex","ipv4Regex","ipv6Regex","datetimeRegex","args","isValidIP","ip","version","ZodString","tooBig","tooSmall","regex","validation","options","minLength","maxLength","len","ch","min","max","floatSafeRemainder","step","valDecCount","stepDecCount","decCount","valInt","stepInt","ZodNumber","kind","inclusive","ZodBigInt","ZodBoolean","ZodDate","minDate","maxDate","ZodSymbol","ZodUndefined","ZodNull","ZodAny","ZodUnknown","ZodNever","ZodVoid","schema","deepPartialify","ZodObject","newShape","fieldSchema","ZodTuple","shape","shapeKeys","extraKeys","keyValidator","unknownKeys","catchall","_b","_c","_d","defaultError","augmentation","merging","index","mask","newField","createZodEnum","handleResults","unionErrors","childCtx","dirty","types","getDiscriminator","type","ZodLazy","ZodLiteral","ZodEnum","ZodNativeEnum","ZodDiscriminatedUnion","discriminator","discriminatorValue","optionsMap","discriminatorValues","mergeValues","a","b","aType","bType","bKeys","sharedKeys","newObj","sharedValue","newArray","itemA","itemB","handleParsed","parsedLeft","parsedRight","merged","left","right","itemIndex","rest","schemas","ZodRecord","keyType","valueType","third","ZodMap","finalMap","ZodSet","finalizeSet","elements","parsedSet","element","minSize","maxSize","size","ZodFunction","makeArgsIssue","makeReturnsIssue","returns","me","parsedArgs","parsedReturns","returnType","func","getter","values","expectedValues","enumValues","opt","nativeEnumValues","promisified","effect","checkCtx","arg","processed","executeRefinement","inner","base","preprocess","newCtx","ZodNaN","BRAND","inResult","custom","fatal","p","_fatal","p2","late","instanceOfType","cls","stringType","numberType","nanType","bigIntType","booleanType","dateType","symbolType","undefinedType","nullType","anyType","unknownType","neverType","voidType","arrayType","objectType","strictObjectType","unionType","discriminatedUnionType","intersectionType","tupleType","recordType","mapType","setType","functionType","lazyType","literalType","enumType","nativeEnumType","promiseType","effectsType","optionalType","nullableType","preprocessType","pipelineType","ostring","onumber","oboolean","coerce","NEVER","z","needsAuthentication","httpStatus","createUrlEncodedParamsString","v","ClientCredentialsResponseSchema","fetchClientCredentials","clientCredentials","parseTokenResponse","tokenResponseParsed","AccessTokenService","ms","injectAccessTokenHeader","token","withHeader","headerName","headerValue","isHeaders","buildOAuthMiddleware","accessTokenService","buildEdcClient","opts","buildApiKeyHeader","config"],"mappings":"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","x_google_ignoreList":[48]}
1
+ {"version":3,"file":"sovity-edc-client.js","sources":["../src/generated/runtime.ts","../src/generated/models/UiAsset.ts","../src/generated/models/AssetPage.ts","../src/generated/models/CatalogFilterExpressionLiteralType.ts","../src/generated/models/CatalogFilterExpressionLiteral.ts","../src/generated/models/CatalogFilterExpressionOperator.ts","../src/generated/models/CatalogFilterExpression.ts","../src/generated/models/CatalogQuery.ts","../src/generated/models/ConnectorLimits.ts","../src/generated/models/ContractAgreementDirection.ts","../src/generated/models/TransferProcessSimplifiedState.ts","../src/generated/models/TransferProcessState.ts","../src/generated/models/ContractAgreementTransferProcess.ts","../src/generated/models/OperatorDto.ts","../src/generated/models/UiPolicyLiteralType.ts","../src/generated/models/UiPolicyLiteral.ts","../src/generated/models/UiPolicyConstraint.ts","../src/generated/models/UiPolicy.ts","../src/generated/models/ContractAgreementCard.ts","../src/generated/models/ContractAgreementPage.ts","../src/generated/models/UiCriterionLiteralType.ts","../src/generated/models/UiCriterionLiteral.ts","../src/generated/models/UiCriterionOperator.ts","../src/generated/models/UiCriterion.ts","../src/generated/models/ContractDefinitionEntry.ts","../src/generated/models/ContractDefinitionPage.ts","../src/generated/models/ContractDefinitionRequest.ts","../src/generated/models/ContractNegotiationRequest.ts","../src/generated/models/ContractNegotiationSimplifiedState.ts","../src/generated/models/ContractNegotiationState.ts","../src/generated/models/DashboardDapsConfig.ts","../src/generated/models/DashboardMiwConfig.ts","../src/generated/models/DashboardTransferAmounts.ts","../src/generated/models/DashboardPage.ts","../src/generated/models/IdResponseDto.ts","../src/generated/models/InitiateCustomTransferRequest.ts","../src/generated/models/InitiateTransferRequest.ts","../src/generated/models/TransferProcessStatesDto.ts","../src/generated/models/KpiResult.ts","../src/generated/models/UiPolicyCreateRequest.ts","../src/generated/models/PolicyDefinitionCreateRequest.ts","../src/generated/models/PolicyDefinitionDto.ts","../src/generated/models/PolicyDefinitionPage.ts","../src/generated/models/TransferHistoryEntry.ts","../src/generated/models/TransferHistoryPage.ts","../src/generated/models/UiAssetCreateRequest.ts","../src/generated/models/UiAssetEditMetadataRequest.ts","../src/generated/models/UiContractNegotiation.ts","../src/generated/models/UiContractOffer.ts","../src/generated/models/UiDataOffer.ts","../src/generated/apis/EnterpriseEditionApi.ts","../src/generated/apis/UIApi.ts","../src/generated/apis/UseCaseApi.ts","../node_modules/zod/lib/index.mjs","../src/oauth2/utils/HttpUtils.ts","../src/oauth2/utils/FetchUtils.ts","../src/oauth2/AccessTokenService.ts","../src/oauth2/utils/RequestUtils.ts","../src/oauth2/Middleware.ts","../src/EdcClient.ts"],"sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nexport const BASE_PATH = 'https://my-connector/api/management'.replace(\n /\\/+$/,\n '',\n);\n\nexport interface ConfigurationParameters {\n basePath?: string; // override base path\n fetchApi?: FetchAPI; // override for fetch implementation\n middleware?: Middleware[]; // middleware to apply before/after fetch requests\n queryParamsStringify?: (params: HTTPQuery) => string; // stringify function for query strings\n username?: string; // parameter for basic security\n password?: string; // parameter for basic security\n apiKey?: string | ((name: string) => string); // parameter for apiKey security\n accessToken?:\n | string\n | Promise<string>\n | ((name?: string, scopes?: string[]) => string | Promise<string>); // parameter for oauth2 security\n headers?: HTTPHeaders; //header params we want to use on every request\n credentials?: RequestCredentials; //value for the credentials param we want to use on each request\n}\n\nexport class Configuration {\n constructor(private configuration: ConfigurationParameters = {}) {}\n\n set config(configuration: Configuration) {\n this.configuration = configuration;\n }\n\n get basePath(): string {\n return this.configuration.basePath != null\n ? this.configuration.basePath\n : BASE_PATH;\n }\n\n get fetchApi(): FetchAPI | undefined {\n return this.configuration.fetchApi;\n }\n\n get middleware(): Middleware[] {\n return this.configuration.middleware || [];\n }\n\n get queryParamsStringify(): (params: HTTPQuery) => string {\n return this.configuration.queryParamsStringify || querystring;\n }\n\n get username(): string | undefined {\n return this.configuration.username;\n }\n\n get password(): string | undefined {\n return this.configuration.password;\n }\n\n get apiKey(): ((name: string) => string) | undefined {\n const apiKey = this.configuration.apiKey;\n if (apiKey) {\n return typeof apiKey === 'function' ? apiKey : () => apiKey;\n }\n return undefined;\n }\n\n get accessToken():\n | ((name?: string, scopes?: string[]) => string | Promise<string>)\n | undefined {\n const accessToken = this.configuration.accessToken;\n if (accessToken) {\n return typeof accessToken === 'function'\n ? accessToken\n : async () => accessToken;\n }\n return undefined;\n }\n\n get headers(): HTTPHeaders | undefined {\n return this.configuration.headers;\n }\n\n get credentials(): RequestCredentials | undefined {\n return this.configuration.credentials;\n }\n}\n\nexport const DefaultConfig = new Configuration();\n\n/**\n * This is the base class for all generated API classes.\n */\nexport class BaseAPI {\n private static readonly jsonRegex = new RegExp(\n '^(:?application/json|[^;/ \\t]+/[^;/ \\t]+[+]json)[ \\t]*(:?;.*)?$',\n 'i',\n );\n private middleware: Middleware[];\n\n constructor(protected configuration = DefaultConfig) {\n this.middleware = configuration.middleware;\n }\n\n withMiddleware<T extends BaseAPI>(this: T, ...middlewares: Middleware[]) {\n const next = this.clone<T>();\n next.middleware = next.middleware.concat(...middlewares);\n return next;\n }\n\n withPreMiddleware<T extends BaseAPI>(\n this: T,\n ...preMiddlewares: Array<Middleware['pre']>\n ) {\n const middlewares = preMiddlewares.map((pre) => ({pre}));\n return this.withMiddleware<T>(...middlewares);\n }\n\n withPostMiddleware<T extends BaseAPI>(\n this: T,\n ...postMiddlewares: Array<Middleware['post']>\n ) {\n const middlewares = postMiddlewares.map((post) => ({post}));\n return this.withMiddleware<T>(...middlewares);\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n protected isJsonMime(mime: string | null | undefined): boolean {\n if (!mime) {\n return false;\n }\n return BaseAPI.jsonRegex.test(mime);\n }\n\n protected async request(\n context: RequestOpts,\n initOverrides?: RequestInit | InitOverrideFunction,\n ): Promise<Response> {\n const {url, init} = await this.createFetchParams(\n context,\n initOverrides,\n );\n const response = await this.fetchApi(url, init);\n if (response && response.status >= 200 && response.status < 300) {\n return response;\n }\n throw new ResponseError(response, 'Response returned an error code');\n }\n\n private async createFetchParams(\n context: RequestOpts,\n initOverrides?: RequestInit | InitOverrideFunction,\n ) {\n let url = this.configuration.basePath + context.path;\n if (\n context.query !== undefined &&\n Object.keys(context.query).length !== 0\n ) {\n // only add the querystring to the URL if there are query parameters.\n // this is done to avoid urls ending with a \"?\" character which buggy webservers\n // do not handle correctly sometimes.\n url += '?' + this.configuration.queryParamsStringify(context.query);\n }\n\n const headers = Object.assign(\n {},\n this.configuration.headers,\n context.headers,\n );\n Object.keys(headers).forEach((key) =>\n headers[key] === undefined ? delete headers[key] : {},\n );\n\n const initOverrideFn =\n typeof initOverrides === 'function'\n ? initOverrides\n : async () => initOverrides;\n\n const initParams = {\n method: context.method,\n headers,\n body: context.body,\n credentials: this.configuration.credentials,\n };\n\n const overriddenInit: RequestInit = {\n ...initParams,\n ...(await initOverrideFn({\n init: initParams,\n context,\n })),\n };\n\n const init: RequestInit = {\n ...overriddenInit,\n body:\n isFormData(overriddenInit.body) ||\n overriddenInit.body instanceof URLSearchParams ||\n isBlob(overriddenInit.body)\n ? overriddenInit.body\n : JSON.stringify(overriddenInit.body),\n };\n\n return {url, init};\n }\n\n private fetchApi = async (url: string, init: RequestInit) => {\n let fetchParams = {url, init};\n for (const middleware of this.middleware) {\n if (middleware.pre) {\n fetchParams =\n (await middleware.pre({\n fetch: this.fetchApi,\n ...fetchParams,\n })) || fetchParams;\n }\n }\n let response: Response | undefined = undefined;\n try {\n response = await (this.configuration.fetchApi || fetch)(\n fetchParams.url,\n fetchParams.init,\n );\n } catch (e) {\n for (const middleware of this.middleware) {\n if (middleware.onError) {\n response =\n (await middleware.onError({\n fetch: this.fetchApi,\n url: fetchParams.url,\n init: fetchParams.init,\n error: e,\n response: response ? response.clone() : undefined,\n })) || response;\n }\n }\n if (response === undefined) {\n if (e instanceof Error) {\n throw new FetchError(\n e,\n 'The request failed and the interceptors did not return an alternative response',\n );\n } else {\n throw e;\n }\n }\n }\n for (const middleware of this.middleware) {\n if (middleware.post) {\n response =\n (await middleware.post({\n fetch: this.fetchApi,\n url: fetchParams.url,\n init: fetchParams.init,\n response: response.clone(),\n })) || response;\n }\n }\n return response;\n };\n\n /**\n * Create a shallow clone of `this` by constructing a new instance\n * and then shallow cloning data members.\n */\n private clone<T extends BaseAPI>(this: T): T {\n const constructor = this.constructor as any;\n const next = new constructor(this.configuration);\n next.middleware = this.middleware.slice();\n return next;\n }\n}\n\nfunction isBlob(value: any): value is Blob {\n return typeof Blob !== 'undefined' && value instanceof Blob;\n}\n\nfunction isFormData(value: any): value is FormData {\n return typeof FormData !== 'undefined' && value instanceof FormData;\n}\n\nexport class ResponseError extends Error {\n override name: 'ResponseError' = 'ResponseError';\n constructor(public response: Response, msg?: string) {\n super(msg);\n }\n}\n\nexport class FetchError extends Error {\n override name: 'FetchError' = 'FetchError';\n constructor(public cause: Error, msg?: string) {\n super(msg);\n }\n}\n\nexport class RequiredError extends Error {\n override name: 'RequiredError' = 'RequiredError';\n constructor(public field: string, msg?: string) {\n super(msg);\n }\n}\n\nexport const COLLECTION_FORMATS = {\n csv: ',',\n ssv: ' ',\n tsv: '\\t',\n pipes: '|',\n};\n\nexport type FetchAPI = WindowOrWorkerGlobalScope['fetch'];\n\nexport type Json = any;\nexport type HTTPMethod =\n | 'GET'\n | 'POST'\n | 'PUT'\n | 'PATCH'\n | 'DELETE'\n | 'OPTIONS'\n | 'HEAD';\nexport type HTTPHeaders = {[key: string]: string};\nexport type HTTPQuery = {\n [key: string]:\n | string\n | number\n | null\n | boolean\n | Array<string | number | null | boolean>\n | Set<string | number | null | boolean>\n | HTTPQuery;\n};\nexport type HTTPBody = Json | FormData | URLSearchParams;\nexport type HTTPRequestInit = {\n headers?: HTTPHeaders;\n method: HTTPMethod;\n credentials?: RequestCredentials;\n body?: HTTPBody;\n};\nexport type ModelPropertyNaming =\n | 'camelCase'\n | 'snake_case'\n | 'PascalCase'\n | 'original';\n\nexport type InitOverrideFunction = (requestContext: {\n init: HTTPRequestInit;\n context: RequestOpts;\n}) => Promise<RequestInit>;\n\nexport interface FetchParams {\n url: string;\n init: RequestInit;\n}\n\nexport interface RequestOpts {\n path: string;\n method: HTTPMethod;\n headers: HTTPHeaders;\n query?: HTTPQuery;\n body?: HTTPBody;\n}\n\nexport function exists(json: any, key: string) {\n const value = json[key];\n return value !== null && value !== undefined;\n}\n\nexport function querystring(params: HTTPQuery, prefix: string = ''): string {\n return Object.keys(params)\n .map((key) => querystringSingleKey(key, params[key], prefix))\n .filter((part) => part.length > 0)\n .join('&');\n}\n\nfunction querystringSingleKey(\n key: string,\n value:\n | string\n | number\n | null\n | undefined\n | boolean\n | Array<string | number | null | boolean>\n | Set<string | number | null | boolean>\n | HTTPQuery,\n keyPrefix: string = '',\n): string {\n const fullKey = keyPrefix + (keyPrefix.length ? `[${key}]` : key);\n if (value instanceof Array) {\n const multiValue = value\n .map((singleValue) => encodeURIComponent(String(singleValue)))\n .join(`&${encodeURIComponent(fullKey)}=`);\n return `${encodeURIComponent(fullKey)}=${multiValue}`;\n }\n if (value instanceof Set) {\n const valueAsArray = Array.from(value);\n return querystringSingleKey(key, valueAsArray, keyPrefix);\n }\n if (value instanceof Date) {\n return `${encodeURIComponent(fullKey)}=${encodeURIComponent(\n value.toISOString(),\n )}`;\n }\n if (value instanceof Object) {\n return querystring(value as HTTPQuery, fullKey);\n }\n return `${encodeURIComponent(fullKey)}=${encodeURIComponent(\n String(value),\n )}`;\n}\n\nexport function mapValues(data: any, fn: (item: any) => any) {\n return Object.keys(data).reduce(\n (acc, key) => ({...acc, [key]: fn(data[key])}),\n {},\n );\n}\n\nexport function canConsumeForm(consumes: Consume[]): boolean {\n for (const consume of consumes) {\n if ('multipart/form-data' === consume.contentType) {\n return true;\n }\n }\n return false;\n}\n\nexport interface Consume {\n contentType: string;\n}\n\nexport interface RequestContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n}\n\nexport interface ResponseContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n response: Response;\n}\n\nexport interface ErrorContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n error: unknown;\n response?: Response;\n}\n\nexport interface Middleware {\n pre?(context: RequestContext): Promise<FetchParams | void>;\n post?(context: ResponseContext): Promise<Response | void>;\n onError?(context: ErrorContext): Promise<Response | void>;\n}\n\nexport interface ApiResponse<T> {\n raw: Response;\n value(): Promise<T>;\n}\n\nexport interface ResponseTransformer<T> {\n (json: any): T;\n}\n\nexport class JSONApiResponse<T> {\n constructor(\n public raw: Response,\n private transformer: ResponseTransformer<T> = (jsonValue: any) =>\n jsonValue,\n ) {}\n\n async value(): Promise<T> {\n return this.transformer(await this.raw.json());\n }\n}\n\nexport class VoidApiResponse {\n constructor(public raw: Response) {}\n\n async value(): Promise<void> {\n return undefined;\n }\n}\n\nexport class BlobApiResponse {\n constructor(public raw: Response) {}\n\n async value(): Promise<Blob> {\n return await this.raw.blob();\n }\n}\n\nexport class TextApiResponse {\n constructor(public raw: Response) {}\n\n async value(): Promise<string> {\n return await this.raw.text();\n }\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\n\n/**\n * Type-Safe Asset Metadata as needed by our UI\n * @export\n * @interface UiAsset\n */\nexport interface UiAsset {\n /**\n * Asset Id\n * @type {string}\n * @memberof UiAsset\n */\n assetId: string;\n /**\n * Providing Connector's Connector Endpoint\n * @type {string}\n * @memberof UiAsset\n */\n connectorEndpoint: string;\n /**\n * Providing Connector's Participant ID\n * @type {string}\n * @memberof UiAsset\n */\n participantId: string;\n /**\n * Asset Title\n * @type {string}\n * @memberof UiAsset\n */\n title: string;\n /**\n * Asset Organization Name\n * @type {string}\n * @memberof UiAsset\n */\n creatorOrganizationName: string;\n /**\n * Asset Language\n * @type {string}\n * @memberof UiAsset\n */\n language?: string;\n /**\n * Asset Description. Supports markdown.\n * @type {string}\n * @memberof UiAsset\n */\n description?: string;\n /**\n * Asset Description Short Text generated from description. Contains no markdown.\n * @type {string}\n * @memberof UiAsset\n */\n descriptionShortText?: string;\n /**\n * Flag that indicates whether this asset is created by this connector.\n * @type {boolean}\n * @memberof UiAsset\n */\n isOwnConnector: boolean;\n /**\n * Asset Homepage\n * @type {string}\n * @memberof UiAsset\n */\n publisherHomepage?: string;\n /**\n * License URL\n * @type {string}\n * @memberof UiAsset\n */\n licenseUrl?: string;\n /**\n * Version\n * @type {string}\n * @memberof UiAsset\n */\n version?: string;\n /**\n * Asset Keywords\n * @type {Array<string>}\n * @memberof UiAsset\n */\n keywords?: Array<string>;\n /**\n * Asset MediaType\n * @type {string}\n * @memberof UiAsset\n */\n mediaType?: string;\n /**\n * Homepage URL associated with the Asset\n * @type {string}\n * @memberof UiAsset\n */\n landingPageUrl?: string;\n /**\n * HTTP Datasource Hints Proxy Method\n * @type {boolean}\n * @memberof UiAsset\n */\n httpDatasourceHintsProxyMethod?: boolean;\n /**\n * HTTP Datasource Hints Proxy Path\n * @type {boolean}\n * @memberof UiAsset\n */\n httpDatasourceHintsProxyPath?: boolean;\n /**\n * HTTP Datasource Hints Proxy Query Params\n * @type {boolean}\n * @memberof UiAsset\n */\n httpDatasourceHintsProxyQueryParams?: boolean;\n /**\n * HTTP Datasource Hints Proxy Body\n * @type {boolean}\n * @memberof UiAsset\n */\n httpDatasourceHintsProxyBody?: boolean;\n /**\n * Data Category\n * @type {string}\n * @memberof UiAsset\n */\n dataCategory?: string;\n /**\n * Data Subcategory\n * @type {string}\n * @memberof UiAsset\n */\n dataSubcategory?: string;\n /**\n * Data Model\n * @type {string}\n * @memberof UiAsset\n */\n dataModel?: string;\n /**\n * Geo-Reference Method\n * @type {string}\n * @memberof UiAsset\n */\n geoReferenceMethod?: string;\n /**\n * Transport Mode\n * @type {string}\n * @memberof UiAsset\n */\n transportMode?: string;\n /**\n * The sovereign is distinct from the publisher by being the legal owner of the data.\n * @type {string}\n * @memberof UiAsset\n */\n sovereignLegalName?: string;\n /**\n * Geo location\n * @type {string}\n * @memberof UiAsset\n */\n geoLocation?: string;\n /**\n * Locations by NUTS standard which divides countries into administrative divisions\n * @type {Array<string>}\n * @memberof UiAsset\n */\n nutsLocations?: Array<string>;\n /**\n * Data sample URLs\n * @type {Array<string>}\n * @memberof UiAsset\n */\n dataSampleUrls?: Array<string>;\n /**\n * Reference file/schema URLs\n * @type {Array<string>}\n * @memberof UiAsset\n */\n referenceFileUrls?: Array<string>;\n /**\n * Additional information on reference files/schemas\n * @type {string}\n * @memberof UiAsset\n */\n referenceFilesDescription?: string;\n /**\n * Instructions for use that are not legally relevant e.g. information on how to cite the dataset in papers\n * @type {string}\n * @memberof UiAsset\n */\n conditionsForUse?: string;\n /**\n * Data update frequency\n * @type {string}\n * @memberof UiAsset\n */\n dataUpdateFrequency?: string;\n /**\n * Temporal coverage start date\n * @type {Date}\n * @memberof UiAsset\n */\n temporalCoverageFrom?: Date;\n /**\n * Temporal coverage end date (inclusive)\n * @type {Date}\n * @memberof UiAsset\n */\n temporalCoverageToInclusive?: Date;\n /**\n * Contains the entire asset in the JSON-LD format\n * @type {string}\n * @memberof UiAsset\n */\n assetJsonLd?: string;\n /**\n * Contains serialized custom properties in the JSON format.\n * @type {string}\n * @memberof UiAsset\n */\n customJsonAsString?: string;\n /**\n * Contains serialized custom properties in the JSON LD format. Contrary to the customJsonAsString field, this string must represent a JSON LD object and will be affected by JSON LD compaction and expansion. Due to a technical limitation, the properties can't be booleans.\n * @type {string}\n * @memberof UiAsset\n */\n customJsonLdAsString?: string;\n /**\n * Same as customJsonAsString but the data will be stored in the private properties.\n * @type {string}\n * @memberof UiAsset\n */\n privateCustomJsonAsString?: string;\n /**\n * Same as customJsonLdAsString but the data will be stored in the private properties. The same limitations apply.\n * @type {string}\n * @memberof UiAsset\n */\n privateCustomJsonLdAsString?: string;\n}\n\n/**\n * Check if a given object implements the UiAsset interface.\n */\nexport function instanceOfUiAsset(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'assetId' in value;\n isInstance = isInstance && 'connectorEndpoint' in value;\n isInstance = isInstance && 'participantId' in value;\n isInstance = isInstance && 'title' in value;\n isInstance = isInstance && 'creatorOrganizationName' in value;\n isInstance = isInstance && 'isOwnConnector' in value;\n\n return isInstance;\n}\n\nexport function UiAssetFromJSON(json: any): UiAsset {\n return UiAssetFromJSONTyped(json, false);\n}\n\nexport function UiAssetFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiAsset {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n assetId: json['assetId'],\n connectorEndpoint: json['connectorEndpoint'],\n participantId: json['participantId'],\n title: json['title'],\n creatorOrganizationName: json['creatorOrganizationName'],\n language: !exists(json, 'language') ? undefined : json['language'],\n description: !exists(json, 'description')\n ? undefined\n : json['description'],\n descriptionShortText: !exists(json, 'descriptionShortText')\n ? undefined\n : json['descriptionShortText'],\n isOwnConnector: json['isOwnConnector'],\n publisherHomepage: !exists(json, 'publisherHomepage')\n ? undefined\n : json['publisherHomepage'],\n licenseUrl: !exists(json, 'licenseUrl')\n ? undefined\n : json['licenseUrl'],\n version: !exists(json, 'version') ? undefined : json['version'],\n keywords: !exists(json, 'keywords') ? undefined : json['keywords'],\n mediaType: !exists(json, 'mediaType') ? undefined : json['mediaType'],\n landingPageUrl: !exists(json, 'landingPageUrl')\n ? undefined\n : json['landingPageUrl'],\n httpDatasourceHintsProxyMethod: !exists(\n json,\n 'httpDatasourceHintsProxyMethod',\n )\n ? undefined\n : json['httpDatasourceHintsProxyMethod'],\n httpDatasourceHintsProxyPath: !exists(\n json,\n 'httpDatasourceHintsProxyPath',\n )\n ? undefined\n : json['httpDatasourceHintsProxyPath'],\n httpDatasourceHintsProxyQueryParams: !exists(\n json,\n 'httpDatasourceHintsProxyQueryParams',\n )\n ? undefined\n : json['httpDatasourceHintsProxyQueryParams'],\n httpDatasourceHintsProxyBody: !exists(\n json,\n 'httpDatasourceHintsProxyBody',\n )\n ? undefined\n : json['httpDatasourceHintsProxyBody'],\n dataCategory: !exists(json, 'dataCategory')\n ? undefined\n : json['dataCategory'],\n dataSubcategory: !exists(json, 'dataSubcategory')\n ? undefined\n : json['dataSubcategory'],\n dataModel: !exists(json, 'dataModel') ? undefined : json['dataModel'],\n geoReferenceMethod: !exists(json, 'geoReferenceMethod')\n ? undefined\n : json['geoReferenceMethod'],\n transportMode: !exists(json, 'transportMode')\n ? undefined\n : json['transportMode'],\n sovereignLegalName: !exists(json, 'sovereignLegalName')\n ? undefined\n : json['sovereignLegalName'],\n geoLocation: !exists(json, 'geoLocation')\n ? undefined\n : json['geoLocation'],\n nutsLocations: !exists(json, 'nutsLocations')\n ? undefined\n : json['nutsLocations'],\n dataSampleUrls: !exists(json, 'dataSampleUrls')\n ? undefined\n : json['dataSampleUrls'],\n referenceFileUrls: !exists(json, 'referenceFileUrls')\n ? undefined\n : json['referenceFileUrls'],\n referenceFilesDescription: !exists(json, 'referenceFilesDescription')\n ? undefined\n : json['referenceFilesDescription'],\n conditionsForUse: !exists(json, 'conditionsForUse')\n ? undefined\n : json['conditionsForUse'],\n dataUpdateFrequency: !exists(json, 'dataUpdateFrequency')\n ? undefined\n : json['dataUpdateFrequency'],\n temporalCoverageFrom: !exists(json, 'temporalCoverageFrom')\n ? undefined\n : new Date(json['temporalCoverageFrom']),\n temporalCoverageToInclusive: !exists(\n json,\n 'temporalCoverageToInclusive',\n )\n ? undefined\n : new Date(json['temporalCoverageToInclusive']),\n assetJsonLd: !exists(json, 'assetJsonLd')\n ? undefined\n : json['assetJsonLd'],\n customJsonAsString: !exists(json, 'customJsonAsString')\n ? undefined\n : json['customJsonAsString'],\n customJsonLdAsString: !exists(json, 'customJsonLdAsString')\n ? undefined\n : json['customJsonLdAsString'],\n privateCustomJsonAsString: !exists(json, 'privateCustomJsonAsString')\n ? undefined\n : json['privateCustomJsonAsString'],\n privateCustomJsonLdAsString: !exists(\n json,\n 'privateCustomJsonLdAsString',\n )\n ? undefined\n : json['privateCustomJsonLdAsString'],\n };\n}\n\nexport function UiAssetToJSON(value?: UiAsset | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n assetId: value.assetId,\n connectorEndpoint: value.connectorEndpoint,\n participantId: value.participantId,\n title: value.title,\n creatorOrganizationName: value.creatorOrganizationName,\n language: value.language,\n description: value.description,\n descriptionShortText: value.descriptionShortText,\n isOwnConnector: value.isOwnConnector,\n publisherHomepage: value.publisherHomepage,\n licenseUrl: value.licenseUrl,\n version: value.version,\n keywords: value.keywords,\n mediaType: value.mediaType,\n landingPageUrl: value.landingPageUrl,\n httpDatasourceHintsProxyMethod: value.httpDatasourceHintsProxyMethod,\n httpDatasourceHintsProxyPath: value.httpDatasourceHintsProxyPath,\n httpDatasourceHintsProxyQueryParams:\n value.httpDatasourceHintsProxyQueryParams,\n httpDatasourceHintsProxyBody: value.httpDatasourceHintsProxyBody,\n dataCategory: value.dataCategory,\n dataSubcategory: value.dataSubcategory,\n dataModel: value.dataModel,\n geoReferenceMethod: value.geoReferenceMethod,\n transportMode: value.transportMode,\n sovereignLegalName: value.sovereignLegalName,\n geoLocation: value.geoLocation,\n nutsLocations: value.nutsLocations,\n dataSampleUrls: value.dataSampleUrls,\n referenceFileUrls: value.referenceFileUrls,\n referenceFilesDescription: value.referenceFilesDescription,\n conditionsForUse: value.conditionsForUse,\n dataUpdateFrequency: value.dataUpdateFrequency,\n temporalCoverageFrom:\n value.temporalCoverageFrom === undefined\n ? undefined\n : value.temporalCoverageFrom.toISOString().substr(0, 10),\n temporalCoverageToInclusive:\n value.temporalCoverageToInclusive === undefined\n ? undefined\n : value.temporalCoverageToInclusive.toISOString().substr(0, 10),\n assetJsonLd: value.assetJsonLd,\n customJsonAsString: value.customJsonAsString,\n customJsonLdAsString: value.customJsonLdAsString,\n privateCustomJsonAsString: value.privateCustomJsonAsString,\n privateCustomJsonLdAsString: value.privateCustomJsonLdAsString,\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {UiAsset} from './UiAsset';\nimport {UiAssetFromJSON, UiAssetFromJSONTyped, UiAssetToJSON} from './UiAsset';\n\n/**\n * All data for the Asset Page\n * @export\n * @interface AssetPage\n */\nexport interface AssetPage {\n /**\n * Visible Assets\n * @type {Array<UiAsset>}\n * @memberof AssetPage\n */\n assets: Array<UiAsset>;\n}\n\n/**\n * Check if a given object implements the AssetPage interface.\n */\nexport function instanceOfAssetPage(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'assets' in value;\n\n return isInstance;\n}\n\nexport function AssetPageFromJSON(json: any): AssetPage {\n return AssetPageFromJSONTyped(json, false);\n}\n\nexport function AssetPageFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): AssetPage {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n assets: (json['assets'] as Array<any>).map(UiAssetFromJSON),\n };\n}\n\nexport function AssetPageToJSON(value?: AssetPage | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n assets: (value.assets as Array<any>).map(UiAssetToJSON),\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * Value type of a filter expression criterion\n * @export\n */\nexport const CatalogFilterExpressionLiteralType = {\n Value: 'VALUE',\n ValueList: 'VALUE_LIST',\n} as const;\nexport type CatalogFilterExpressionLiteralType =\n (typeof CatalogFilterExpressionLiteralType)[keyof typeof CatalogFilterExpressionLiteralType];\n\nexport function CatalogFilterExpressionLiteralTypeFromJSON(\n json: any,\n): CatalogFilterExpressionLiteralType {\n return CatalogFilterExpressionLiteralTypeFromJSONTyped(json, false);\n}\n\nexport function CatalogFilterExpressionLiteralTypeFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): CatalogFilterExpressionLiteralType {\n return json as CatalogFilterExpressionLiteralType;\n}\n\nexport function CatalogFilterExpressionLiteralTypeToJSON(\n value?: CatalogFilterExpressionLiteralType | null,\n): any {\n return value as any;\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {CatalogFilterExpressionLiteralType} from './CatalogFilterExpressionLiteralType';\nimport {\n CatalogFilterExpressionLiteralTypeFromJSON,\n CatalogFilterExpressionLiteralTypeFromJSONTyped,\n CatalogFilterExpressionLiteralTypeToJSON,\n} from './CatalogFilterExpressionLiteralType';\n\n/**\n * FilterExpression Criterion Literal\n * @export\n * @interface CatalogFilterExpressionLiteral\n */\nexport interface CatalogFilterExpressionLiteral {\n /**\n *\n * @type {CatalogFilterExpressionLiteralType}\n * @memberof CatalogFilterExpressionLiteral\n */\n type?: CatalogFilterExpressionLiteralType;\n /**\n * Only for type VALUE. The single value representation.\n * @type {string}\n * @memberof CatalogFilterExpressionLiteral\n */\n value?: string;\n /**\n * Only for type VALUE_LIST. List of values, e.g. for the IN-Operator.\n * @type {Array<string>}\n * @memberof CatalogFilterExpressionLiteral\n */\n valueList?: Array<string>;\n}\n\n/**\n * Check if a given object implements the CatalogFilterExpressionLiteral interface.\n */\nexport function instanceOfCatalogFilterExpressionLiteral(\n value: object,\n): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function CatalogFilterExpressionLiteralFromJSON(\n json: any,\n): CatalogFilterExpressionLiteral {\n return CatalogFilterExpressionLiteralFromJSONTyped(json, false);\n}\n\nexport function CatalogFilterExpressionLiteralFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): CatalogFilterExpressionLiteral {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n type: !exists(json, 'type')\n ? undefined\n : CatalogFilterExpressionLiteralTypeFromJSON(json['type']),\n value: !exists(json, 'value') ? undefined : json['value'],\n valueList: !exists(json, 'valueList') ? undefined : json['valueList'],\n };\n}\n\nexport function CatalogFilterExpressionLiteralToJSON(\n value?: CatalogFilterExpressionLiteral | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n type: CatalogFilterExpressionLiteralTypeToJSON(value.type),\n value: value.value,\n valueList: value.valueList,\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * Operator for filter expressions\n * @export\n */\nexport const CatalogFilterExpressionOperator = {\n Like: 'LIKE',\n Eq: 'EQ',\n In: 'IN',\n} as const;\nexport type CatalogFilterExpressionOperator =\n (typeof CatalogFilterExpressionOperator)[keyof typeof CatalogFilterExpressionOperator];\n\nexport function CatalogFilterExpressionOperatorFromJSON(\n json: any,\n): CatalogFilterExpressionOperator {\n return CatalogFilterExpressionOperatorFromJSONTyped(json, false);\n}\n\nexport function CatalogFilterExpressionOperatorFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): CatalogFilterExpressionOperator {\n return json as CatalogFilterExpressionOperator;\n}\n\nexport function CatalogFilterExpressionOperatorToJSON(\n value?: CatalogFilterExpressionOperator | null,\n): any {\n return value as any;\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {CatalogFilterExpressionLiteral} from './CatalogFilterExpressionLiteral';\nimport {\n CatalogFilterExpressionLiteralFromJSON,\n CatalogFilterExpressionLiteralFromJSONTyped,\n CatalogFilterExpressionLiteralToJSON,\n} from './CatalogFilterExpressionLiteral';\nimport type {CatalogFilterExpressionOperator} from './CatalogFilterExpressionOperator';\nimport {\n CatalogFilterExpressionOperatorFromJSON,\n CatalogFilterExpressionOperatorFromJSONTyped,\n CatalogFilterExpressionOperatorToJSON,\n} from './CatalogFilterExpressionOperator';\n\n/**\n * Generic expression for filtering the data offers in the catalog\n * @export\n * @interface CatalogFilterExpression\n */\nexport interface CatalogFilterExpression {\n /**\n * Asset property name\n * @type {string}\n * @memberof CatalogFilterExpression\n */\n operandLeft: string;\n /**\n *\n * @type {CatalogFilterExpressionOperator}\n * @memberof CatalogFilterExpression\n */\n operator: CatalogFilterExpressionOperator;\n /**\n *\n * @type {CatalogFilterExpressionLiteral}\n * @memberof CatalogFilterExpression\n */\n operandRight: CatalogFilterExpressionLiteral;\n}\n\n/**\n * Check if a given object implements the CatalogFilterExpression interface.\n */\nexport function instanceOfCatalogFilterExpression(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'operandLeft' in value;\n isInstance = isInstance && 'operator' in value;\n isInstance = isInstance && 'operandRight' in value;\n\n return isInstance;\n}\n\nexport function CatalogFilterExpressionFromJSON(\n json: any,\n): CatalogFilterExpression {\n return CatalogFilterExpressionFromJSONTyped(json, false);\n}\n\nexport function CatalogFilterExpressionFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): CatalogFilterExpression {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n operandLeft: json['operandLeft'],\n operator: CatalogFilterExpressionOperatorFromJSON(json['operator']),\n operandRight: CatalogFilterExpressionLiteralFromJSON(\n json['operandRight'],\n ),\n };\n}\n\nexport function CatalogFilterExpressionToJSON(\n value?: CatalogFilterExpression | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n operandLeft: value.operandLeft,\n operator: CatalogFilterExpressionOperatorToJSON(value.operator),\n operandRight: CatalogFilterExpressionLiteralToJSON(value.operandRight),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {CatalogFilterExpression} from './CatalogFilterExpression';\nimport {\n CatalogFilterExpressionFromJSON,\n CatalogFilterExpressionFromJSONTyped,\n CatalogFilterExpressionToJSON,\n} from './CatalogFilterExpression';\n\n/**\n * Catalog query parameters\n * @export\n * @interface CatalogQuery\n */\nexport interface CatalogQuery {\n /**\n * Target EDC DSP endpoint URL\n * @type {string}\n * @memberof CatalogQuery\n */\n connectorEndpoint: string;\n /**\n * Limit the number of results\n * @type {number}\n * @memberof CatalogQuery\n */\n limit?: number;\n /**\n * Offset for returned results, e.g. start at result 2\n * @type {number}\n * @memberof CatalogQuery\n */\n offset?: number;\n /**\n * Filter expressions for catalog filtering\n * @type {Array<CatalogFilterExpression>}\n * @memberof CatalogQuery\n */\n filterExpressions?: Array<CatalogFilterExpression>;\n}\n\n/**\n * Check if a given object implements the CatalogQuery interface.\n */\nexport function instanceOfCatalogQuery(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'connectorEndpoint' in value;\n\n return isInstance;\n}\n\nexport function CatalogQueryFromJSON(json: any): CatalogQuery {\n return CatalogQueryFromJSONTyped(json, false);\n}\n\nexport function CatalogQueryFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): CatalogQuery {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n connectorEndpoint: json['connectorEndpoint'],\n limit: !exists(json, 'limit') ? undefined : json['limit'],\n offset: !exists(json, 'offset') ? undefined : json['offset'],\n filterExpressions: !exists(json, 'filterExpressions')\n ? undefined\n : (json['filterExpressions'] as Array<any>).map(\n CatalogFilterExpressionFromJSON,\n ),\n };\n}\n\nexport function CatalogQueryToJSON(value?: CatalogQuery | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n connectorEndpoint: value.connectorEndpoint,\n limit: value.limit,\n offset: value.offset,\n filterExpressions:\n value.filterExpressions === undefined\n ? undefined\n : (value.filterExpressions as Array<any>).map(\n CatalogFilterExpressionToJSON,\n ),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\n\n/**\n * Available and used resources of a connector.\n * @export\n * @interface ConnectorLimits\n */\nexport interface ConnectorLimits {\n /**\n * Current amount of active consuming contract agreements.\n * @type {number}\n * @memberof ConnectorLimits\n */\n numActiveConsumingContractAgreements: number;\n /**\n * Maximum amount of active consuming contract agreements. A value of 'null' or a negative value means that there are no limit.\n * @type {number}\n * @memberof ConnectorLimits\n */\n maxActiveConsumingContractAgreements?: number;\n}\n\n/**\n * Check if a given object implements the ConnectorLimits interface.\n */\nexport function instanceOfConnectorLimits(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'numActiveConsumingContractAgreements' in value;\n\n return isInstance;\n}\n\nexport function ConnectorLimitsFromJSON(json: any): ConnectorLimits {\n return ConnectorLimitsFromJSONTyped(json, false);\n}\n\nexport function ConnectorLimitsFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): ConnectorLimits {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n numActiveConsumingContractAgreements:\n json['numActiveConsumingContractAgreements'],\n maxActiveConsumingContractAgreements: !exists(\n json,\n 'maxActiveConsumingContractAgreements',\n )\n ? undefined\n : json['maxActiveConsumingContractAgreements'],\n };\n}\n\nexport function ConnectorLimitsToJSON(value?: ConnectorLimits | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n numActiveConsumingContractAgreements:\n value.numActiveConsumingContractAgreements,\n maxActiveConsumingContractAgreements:\n value.maxActiveConsumingContractAgreements,\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * Whether the contract agreement is incoming or outgoing\n * @export\n */\nexport const ContractAgreementDirection = {\n Consuming: 'CONSUMING',\n Providing: 'PROVIDING',\n} as const;\nexport type ContractAgreementDirection =\n (typeof ContractAgreementDirection)[keyof typeof ContractAgreementDirection];\n\nexport function ContractAgreementDirectionFromJSON(\n json: any,\n): ContractAgreementDirection {\n return ContractAgreementDirectionFromJSONTyped(json, false);\n}\n\nexport function ContractAgreementDirectionFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): ContractAgreementDirection {\n return json as ContractAgreementDirection;\n}\n\nexport function ContractAgreementDirectionToJSON(\n value?: ContractAgreementDirection | null,\n): any {\n return value as any;\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * Simplified Transfer Process State to be used in UI\n * @export\n */\nexport const TransferProcessSimplifiedState = {\n Running: 'RUNNING',\n Ok: 'OK',\n Error: 'ERROR',\n} as const;\nexport type TransferProcessSimplifiedState =\n (typeof TransferProcessSimplifiedState)[keyof typeof TransferProcessSimplifiedState];\n\nexport function TransferProcessSimplifiedStateFromJSON(\n json: any,\n): TransferProcessSimplifiedState {\n return TransferProcessSimplifiedStateFromJSONTyped(json, false);\n}\n\nexport function TransferProcessSimplifiedStateFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): TransferProcessSimplifiedState {\n return json as TransferProcessSimplifiedState;\n}\n\nexport function TransferProcessSimplifiedStateToJSON(\n value?: TransferProcessSimplifiedState | null,\n): any {\n return value as any;\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {TransferProcessSimplifiedState} from './TransferProcessSimplifiedState';\nimport {\n TransferProcessSimplifiedStateFromJSON,\n TransferProcessSimplifiedStateFromJSONTyped,\n TransferProcessSimplifiedStateToJSON,\n} from './TransferProcessSimplifiedState';\n\n/**\n * Transfer Process State interpreted\n * @export\n * @interface TransferProcessState\n */\nexport interface TransferProcessState {\n /**\n * State name or 'CUSTOM'. State names only exist for original EDC Transfer Process States.\n * @type {string}\n * @memberof TransferProcessState\n */\n name: string;\n /**\n * State code\n * @type {number}\n * @memberof TransferProcessState\n */\n code: number;\n /**\n *\n * @type {TransferProcessSimplifiedState}\n * @memberof TransferProcessState\n */\n simplifiedState: TransferProcessSimplifiedState;\n}\n\n/**\n * Check if a given object implements the TransferProcessState interface.\n */\nexport function instanceOfTransferProcessState(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'name' in value;\n isInstance = isInstance && 'code' in value;\n isInstance = isInstance && 'simplifiedState' in value;\n\n return isInstance;\n}\n\nexport function TransferProcessStateFromJSON(json: any): TransferProcessState {\n return TransferProcessStateFromJSONTyped(json, false);\n}\n\nexport function TransferProcessStateFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): TransferProcessState {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n name: json['name'],\n code: json['code'],\n simplifiedState: TransferProcessSimplifiedStateFromJSON(\n json['simplifiedState'],\n ),\n };\n}\n\nexport function TransferProcessStateToJSON(\n value?: TransferProcessState | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n name: value.name,\n code: value.code,\n simplifiedState: TransferProcessSimplifiedStateToJSON(\n value.simplifiedState,\n ),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {TransferProcessState} from './TransferProcessState';\nimport {\n TransferProcessStateFromJSON,\n TransferProcessStateFromJSONTyped,\n TransferProcessStateToJSON,\n} from './TransferProcessState';\n\n/**\n * A Contract Agreement's Transfer Process\n * @export\n * @interface ContractAgreementTransferProcess\n */\nexport interface ContractAgreementTransferProcess {\n /**\n * Transfer Process ID\n * @type {string}\n * @memberof ContractAgreementTransferProcess\n */\n transferProcessId: string;\n /**\n * Last Change Date\n * @type {Date}\n * @memberof ContractAgreementTransferProcess\n */\n lastUpdatedDate: Date;\n /**\n *\n * @type {TransferProcessState}\n * @memberof ContractAgreementTransferProcess\n */\n state: TransferProcessState;\n /**\n * Error Message\n * @type {string}\n * @memberof ContractAgreementTransferProcess\n */\n errorMessage?: string;\n}\n\n/**\n * Check if a given object implements the ContractAgreementTransferProcess interface.\n */\nexport function instanceOfContractAgreementTransferProcess(\n value: object,\n): boolean {\n let isInstance = true;\n isInstance = isInstance && 'transferProcessId' in value;\n isInstance = isInstance && 'lastUpdatedDate' in value;\n isInstance = isInstance && 'state' in value;\n\n return isInstance;\n}\n\nexport function ContractAgreementTransferProcessFromJSON(\n json: any,\n): ContractAgreementTransferProcess {\n return ContractAgreementTransferProcessFromJSONTyped(json, false);\n}\n\nexport function ContractAgreementTransferProcessFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): ContractAgreementTransferProcess {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n transferProcessId: json['transferProcessId'],\n lastUpdatedDate: new Date(json['lastUpdatedDate']),\n state: TransferProcessStateFromJSON(json['state']),\n errorMessage: !exists(json, 'errorMessage')\n ? undefined\n : json['errorMessage'],\n };\n}\n\nexport function ContractAgreementTransferProcessToJSON(\n value?: ContractAgreementTransferProcess | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n transferProcessId: value.transferProcessId,\n lastUpdatedDate: value.lastUpdatedDate.toISOString(),\n state: TransferProcessStateToJSON(value.state),\n errorMessage: value.errorMessage,\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * Operator for policies\n * @export\n */\nexport const OperatorDto = {\n Eq: 'EQ',\n Neq: 'NEQ',\n Gt: 'GT',\n Geq: 'GEQ',\n Lt: 'LT',\n Leq: 'LEQ',\n In: 'IN',\n HasPart: 'HAS_PART',\n IsA: 'IS_A',\n IsAllOf: 'IS_ALL_OF',\n IsAnyOf: 'IS_ANY_OF',\n IsNoneOf: 'IS_NONE_OF',\n} as const;\nexport type OperatorDto = (typeof OperatorDto)[keyof typeof OperatorDto];\n\nexport function OperatorDtoFromJSON(json: any): OperatorDto {\n return OperatorDtoFromJSONTyped(json, false);\n}\n\nexport function OperatorDtoFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): OperatorDto {\n return json as OperatorDto;\n}\n\nexport function OperatorDtoToJSON(value?: OperatorDto | null): any {\n return value as any;\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * Supported Types of values for the right hand side of an expression\n * @export\n */\nexport const UiPolicyLiteralType = {\n String: 'STRING',\n StringList: 'STRING_LIST',\n Json: 'JSON',\n} as const;\nexport type UiPolicyLiteralType =\n (typeof UiPolicyLiteralType)[keyof typeof UiPolicyLiteralType];\n\nexport function UiPolicyLiteralTypeFromJSON(json: any): UiPolicyLiteralType {\n return UiPolicyLiteralTypeFromJSONTyped(json, false);\n}\n\nexport function UiPolicyLiteralTypeFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiPolicyLiteralType {\n return json as UiPolicyLiteralType;\n}\n\nexport function UiPolicyLiteralTypeToJSON(\n value?: UiPolicyLiteralType | null,\n): any {\n return value as any;\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {UiPolicyLiteralType} from './UiPolicyLiteralType';\nimport {\n UiPolicyLiteralTypeFromJSON,\n UiPolicyLiteralTypeFromJSONTyped,\n UiPolicyLiteralTypeToJSON,\n} from './UiPolicyLiteralType';\n\n/**\n * Sum type: A String, a list of Strings or a generic JSON value.\n * @export\n * @interface UiPolicyLiteral\n */\nexport interface UiPolicyLiteral {\n /**\n *\n * @type {UiPolicyLiteralType}\n * @memberof UiPolicyLiteral\n */\n type: UiPolicyLiteralType;\n /**\n * Only for types STRING and JSON\n * @type {string}\n * @memberof UiPolicyLiteral\n */\n value?: string;\n /**\n * Only for type STRING_LIST\n * @type {Array<string>}\n * @memberof UiPolicyLiteral\n */\n valueList?: Array<string>;\n}\n\n/**\n * Check if a given object implements the UiPolicyLiteral interface.\n */\nexport function instanceOfUiPolicyLiteral(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'type' in value;\n\n return isInstance;\n}\n\nexport function UiPolicyLiteralFromJSON(json: any): UiPolicyLiteral {\n return UiPolicyLiteralFromJSONTyped(json, false);\n}\n\nexport function UiPolicyLiteralFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiPolicyLiteral {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n type: UiPolicyLiteralTypeFromJSON(json['type']),\n value: !exists(json, 'value') ? undefined : json['value'],\n valueList: !exists(json, 'valueList') ? undefined : json['valueList'],\n };\n}\n\nexport function UiPolicyLiteralToJSON(value?: UiPolicyLiteral | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n type: UiPolicyLiteralTypeToJSON(value.type),\n value: value.value,\n valueList: value.valueList,\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {OperatorDto} from './OperatorDto';\nimport {\n OperatorDtoFromJSON,\n OperatorDtoFromJSONTyped,\n OperatorDtoToJSON,\n} from './OperatorDto';\nimport type {UiPolicyLiteral} from './UiPolicyLiteral';\nimport {\n UiPolicyLiteralFromJSON,\n UiPolicyLiteralFromJSONTyped,\n UiPolicyLiteralToJSON,\n} from './UiPolicyLiteral';\n\n/**\n * ODRL AtomicConstraint as supported by our UI\n * @export\n * @interface UiPolicyConstraint\n */\nexport interface UiPolicyConstraint {\n /**\n * Left side of the expression.\n * @type {string}\n * @memberof UiPolicyConstraint\n */\n left: string;\n /**\n *\n * @type {OperatorDto}\n * @memberof UiPolicyConstraint\n */\n operator: OperatorDto;\n /**\n *\n * @type {UiPolicyLiteral}\n * @memberof UiPolicyConstraint\n */\n right: UiPolicyLiteral;\n}\n\n/**\n * Check if a given object implements the UiPolicyConstraint interface.\n */\nexport function instanceOfUiPolicyConstraint(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'left' in value;\n isInstance = isInstance && 'operator' in value;\n isInstance = isInstance && 'right' in value;\n\n return isInstance;\n}\n\nexport function UiPolicyConstraintFromJSON(json: any): UiPolicyConstraint {\n return UiPolicyConstraintFromJSONTyped(json, false);\n}\n\nexport function UiPolicyConstraintFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiPolicyConstraint {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n left: json['left'],\n operator: OperatorDtoFromJSON(json['operator']),\n right: UiPolicyLiteralFromJSON(json['right']),\n };\n}\n\nexport function UiPolicyConstraintToJSON(\n value?: UiPolicyConstraint | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n left: value.left,\n operator: OperatorDtoToJSON(value.operator),\n right: UiPolicyLiteralToJSON(value.right),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {UiPolicyConstraint} from './UiPolicyConstraint';\nimport {\n UiPolicyConstraintFromJSON,\n UiPolicyConstraintFromJSONTyped,\n UiPolicyConstraintToJSON,\n} from './UiPolicyConstraint';\n\n/**\n * Type-Safe OpenAPI generator friendly Policy DTO as needed by our UI\n * @export\n * @interface UiPolicy\n */\nexport interface UiPolicy {\n /**\n * EDC Policy JSON-LD. This is required because the EDC requires the full policy when initiating contract negotiations.\n * @type {string}\n * @memberof UiPolicy\n */\n policyJsonLd: string;\n /**\n * Conjunction of required expressions for the policy to evaluate to TRUE.\n * @type {Array<UiPolicyConstraint>}\n * @memberof UiPolicy\n */\n constraints?: Array<UiPolicyConstraint>;\n /**\n * When trying to reduce the policy JSON-LD to our opinionated subset of functionalities, many fields and functionalities are unsupported. Should any discrepancies occur during the mapping process, we'll collect them here.\n * @type {Array<string>}\n * @memberof UiPolicy\n */\n errors: Array<string>;\n}\n\n/**\n * Check if a given object implements the UiPolicy interface.\n */\nexport function instanceOfUiPolicy(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'policyJsonLd' in value;\n isInstance = isInstance && 'errors' in value;\n\n return isInstance;\n}\n\nexport function UiPolicyFromJSON(json: any): UiPolicy {\n return UiPolicyFromJSONTyped(json, false);\n}\n\nexport function UiPolicyFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiPolicy {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n policyJsonLd: json['policyJsonLd'],\n constraints: !exists(json, 'constraints')\n ? undefined\n : (json['constraints'] as Array<any>).map(\n UiPolicyConstraintFromJSON,\n ),\n errors: json['errors'],\n };\n}\n\nexport function UiPolicyToJSON(value?: UiPolicy | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n policyJsonLd: value.policyJsonLd,\n constraints:\n value.constraints === undefined\n ? undefined\n : (value.constraints as Array<any>).map(\n UiPolicyConstraintToJSON,\n ),\n errors: value.errors,\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {ContractAgreementDirection} from './ContractAgreementDirection';\nimport {\n ContractAgreementDirectionFromJSON,\n ContractAgreementDirectionFromJSONTyped,\n ContractAgreementDirectionToJSON,\n} from './ContractAgreementDirection';\nimport type {ContractAgreementTransferProcess} from './ContractAgreementTransferProcess';\nimport {\n ContractAgreementTransferProcessFromJSON,\n ContractAgreementTransferProcessFromJSONTyped,\n ContractAgreementTransferProcessToJSON,\n} from './ContractAgreementTransferProcess';\nimport type {UiAsset} from './UiAsset';\nimport {UiAssetFromJSON, UiAssetFromJSONTyped, UiAssetToJSON} from './UiAsset';\nimport type {UiPolicy} from './UiPolicy';\nimport {\n UiPolicyFromJSON,\n UiPolicyFromJSONTyped,\n UiPolicyToJSON,\n} from './UiPolicy';\n\n/**\n * Contract Agreement for Contract Agreement Page\n * @export\n * @interface ContractAgreementCard\n */\nexport interface ContractAgreementCard {\n /**\n * Contract Agreement ID\n * @type {string}\n * @memberof ContractAgreementCard\n */\n contractAgreementId: string;\n /**\n * Contract Negotiation ID\n * @type {string}\n * @memberof ContractAgreementCard\n */\n contractNegotiationId: string;\n /**\n *\n * @type {ContractAgreementDirection}\n * @memberof ContractAgreementCard\n */\n direction: ContractAgreementDirection;\n /**\n * Other Connector's Endpoint\n * @type {string}\n * @memberof ContractAgreementCard\n */\n counterPartyAddress: string;\n /**\n * Other Connector's ID\n * @type {string}\n * @memberof ContractAgreementCard\n */\n counterPartyId: string;\n /**\n * Contract Agreements Signing Date\n * @type {Date}\n * @memberof ContractAgreementCard\n */\n contractSigningDate: Date;\n /**\n *\n * @type {UiAsset}\n * @memberof ContractAgreementCard\n */\n asset: UiAsset;\n /**\n *\n * @type {UiPolicy}\n * @memberof ContractAgreementCard\n */\n contractPolicy: UiPolicy;\n /**\n * Contract Agreement's Transfer Processes\n * @type {Array<ContractAgreementTransferProcess>}\n * @memberof ContractAgreementCard\n */\n transferProcesses: Array<ContractAgreementTransferProcess>;\n}\n\n/**\n * Check if a given object implements the ContractAgreementCard interface.\n */\nexport function instanceOfContractAgreementCard(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'contractAgreementId' in value;\n isInstance = isInstance && 'contractNegotiationId' in value;\n isInstance = isInstance && 'direction' in value;\n isInstance = isInstance && 'counterPartyAddress' in value;\n isInstance = isInstance && 'counterPartyId' in value;\n isInstance = isInstance && 'contractSigningDate' in value;\n isInstance = isInstance && 'asset' in value;\n isInstance = isInstance && 'contractPolicy' in value;\n isInstance = isInstance && 'transferProcesses' in value;\n\n return isInstance;\n}\n\nexport function ContractAgreementCardFromJSON(\n json: any,\n): ContractAgreementCard {\n return ContractAgreementCardFromJSONTyped(json, false);\n}\n\nexport function ContractAgreementCardFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): ContractAgreementCard {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n contractAgreementId: json['contractAgreementId'],\n contractNegotiationId: json['contractNegotiationId'],\n direction: ContractAgreementDirectionFromJSON(json['direction']),\n counterPartyAddress: json['counterPartyAddress'],\n counterPartyId: json['counterPartyId'],\n contractSigningDate: new Date(json['contractSigningDate']),\n asset: UiAssetFromJSON(json['asset']),\n contractPolicy: UiPolicyFromJSON(json['contractPolicy']),\n transferProcesses: (json['transferProcesses'] as Array<any>).map(\n ContractAgreementTransferProcessFromJSON,\n ),\n };\n}\n\nexport function ContractAgreementCardToJSON(\n value?: ContractAgreementCard | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n contractAgreementId: value.contractAgreementId,\n contractNegotiationId: value.contractNegotiationId,\n direction: ContractAgreementDirectionToJSON(value.direction),\n counterPartyAddress: value.counterPartyAddress,\n counterPartyId: value.counterPartyId,\n contractSigningDate: value.contractSigningDate.toISOString(),\n asset: UiAssetToJSON(value.asset),\n contractPolicy: UiPolicyToJSON(value.contractPolicy),\n transferProcesses: (value.transferProcesses as Array<any>).map(\n ContractAgreementTransferProcessToJSON,\n ),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {ContractAgreementCard} from './ContractAgreementCard';\nimport {\n ContractAgreementCardFromJSON,\n ContractAgreementCardFromJSONTyped,\n ContractAgreementCardToJSON,\n} from './ContractAgreementCard';\n\n/**\n *\n * @export\n * @interface ContractAgreementPage\n */\nexport interface ContractAgreementPage {\n /**\n * Contract Agreement Cards\n * @type {Array<ContractAgreementCard>}\n * @memberof ContractAgreementPage\n */\n contractAgreements: Array<ContractAgreementCard>;\n}\n\n/**\n * Check if a given object implements the ContractAgreementPage interface.\n */\nexport function instanceOfContractAgreementPage(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'contractAgreements' in value;\n\n return isInstance;\n}\n\nexport function ContractAgreementPageFromJSON(\n json: any,\n): ContractAgreementPage {\n return ContractAgreementPageFromJSONTyped(json, false);\n}\n\nexport function ContractAgreementPageFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): ContractAgreementPage {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n contractAgreements: (json['contractAgreements'] as Array<any>).map(\n ContractAgreementCardFromJSON,\n ),\n };\n}\n\nexport function ContractAgreementPageToJSON(\n value?: ContractAgreementPage | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n contractAgreements: (value.contractAgreements as Array<any>).map(\n ContractAgreementCardToJSON,\n ),\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * Value type of an asset selector criterion right expression value\n * @export\n */\nexport const UiCriterionLiteralType = {\n Value: 'VALUE',\n ValueList: 'VALUE_LIST',\n} as const;\nexport type UiCriterionLiteralType =\n (typeof UiCriterionLiteralType)[keyof typeof UiCriterionLiteralType];\n\nexport function UiCriterionLiteralTypeFromJSON(\n json: any,\n): UiCriterionLiteralType {\n return UiCriterionLiteralTypeFromJSONTyped(json, false);\n}\n\nexport function UiCriterionLiteralTypeFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiCriterionLiteralType {\n return json as UiCriterionLiteralType;\n}\n\nexport function UiCriterionLiteralTypeToJSON(\n value?: UiCriterionLiteralType | null,\n): any {\n return value as any;\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {UiCriterionLiteralType} from './UiCriterionLiteralType';\nimport {\n UiCriterionLiteralTypeFromJSON,\n UiCriterionLiteralTypeFromJSONTyped,\n UiCriterionLiteralTypeToJSON,\n} from './UiCriterionLiteralType';\n\n/**\n * Criterion Literal\n * @export\n * @interface UiCriterionLiteral\n */\nexport interface UiCriterionLiteral {\n /**\n *\n * @type {UiCriterionLiteralType}\n * @memberof UiCriterionLiteral\n */\n type?: UiCriterionLiteralType;\n /**\n * Only for type VALUE. The single value representation.\n * @type {string}\n * @memberof UiCriterionLiteral\n */\n value?: string;\n /**\n * Only for type VALUE_LIST. List of values, e.g. for the IN-Operator.\n * @type {Array<string>}\n * @memberof UiCriterionLiteral\n */\n valueList?: Array<string>;\n}\n\n/**\n * Check if a given object implements the UiCriterionLiteral interface.\n */\nexport function instanceOfUiCriterionLiteral(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function UiCriterionLiteralFromJSON(json: any): UiCriterionLiteral {\n return UiCriterionLiteralFromJSONTyped(json, false);\n}\n\nexport function UiCriterionLiteralFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiCriterionLiteral {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n type: !exists(json, 'type')\n ? undefined\n : UiCriterionLiteralTypeFromJSON(json['type']),\n value: !exists(json, 'value') ? undefined : json['value'],\n valueList: !exists(json, 'valueList') ? undefined : json['valueList'],\n };\n}\n\nexport function UiCriterionLiteralToJSON(\n value?: UiCriterionLiteral | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n type: UiCriterionLiteralTypeToJSON(value.type),\n value: value.value,\n valueList: value.valueList,\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * Operator for constraints\n * @export\n */\nexport const UiCriterionOperator = {\n Eq: 'EQ',\n In: 'IN',\n Like: 'LIKE',\n} as const;\nexport type UiCriterionOperator =\n (typeof UiCriterionOperator)[keyof typeof UiCriterionOperator];\n\nexport function UiCriterionOperatorFromJSON(json: any): UiCriterionOperator {\n return UiCriterionOperatorFromJSONTyped(json, false);\n}\n\nexport function UiCriterionOperatorFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiCriterionOperator {\n return json as UiCriterionOperator;\n}\n\nexport function UiCriterionOperatorToJSON(\n value?: UiCriterionOperator | null,\n): any {\n return value as any;\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {UiCriterionLiteral} from './UiCriterionLiteral';\nimport {\n UiCriterionLiteralFromJSON,\n UiCriterionLiteralFromJSONTyped,\n UiCriterionLiteralToJSON,\n} from './UiCriterionLiteral';\nimport type {UiCriterionOperator} from './UiCriterionOperator';\nimport {\n UiCriterionOperatorFromJSON,\n UiCriterionOperatorFromJSONTyped,\n UiCriterionOperatorToJSON,\n} from './UiCriterionOperator';\n\n/**\n * Contract Definition Criterion as supported by the UI\n * @export\n * @interface UiCriterion\n */\nexport interface UiCriterion {\n /**\n * Left Operand\n * @type {string}\n * @memberof UiCriterion\n */\n operandLeft: string;\n /**\n *\n * @type {UiCriterionOperator}\n * @memberof UiCriterion\n */\n operator: UiCriterionOperator;\n /**\n *\n * @type {UiCriterionLiteral}\n * @memberof UiCriterion\n */\n operandRight: UiCriterionLiteral;\n}\n\n/**\n * Check if a given object implements the UiCriterion interface.\n */\nexport function instanceOfUiCriterion(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'operandLeft' in value;\n isInstance = isInstance && 'operator' in value;\n isInstance = isInstance && 'operandRight' in value;\n\n return isInstance;\n}\n\nexport function UiCriterionFromJSON(json: any): UiCriterion {\n return UiCriterionFromJSONTyped(json, false);\n}\n\nexport function UiCriterionFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiCriterion {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n operandLeft: json['operandLeft'],\n operator: UiCriterionOperatorFromJSON(json['operator']),\n operandRight: UiCriterionLiteralFromJSON(json['operandRight']),\n };\n}\n\nexport function UiCriterionToJSON(value?: UiCriterion | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n operandLeft: value.operandLeft,\n operator: UiCriterionOperatorToJSON(value.operator),\n operandRight: UiCriterionLiteralToJSON(value.operandRight),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {UiCriterion} from './UiCriterion';\nimport {\n UiCriterionFromJSON,\n UiCriterionFromJSONTyped,\n UiCriterionToJSON,\n} from './UiCriterion';\n\n/**\n * Contract Definition List Entry for Contract Definition Page\n * @export\n * @interface ContractDefinitionEntry\n */\nexport interface ContractDefinitionEntry {\n /**\n * Contract Definition ID\n * @type {string}\n * @memberof ContractDefinitionEntry\n */\n contractDefinitionId: string;\n /**\n * Access Policy ID\n * @type {string}\n * @memberof ContractDefinitionEntry\n */\n accessPolicyId: string;\n /**\n * Contract Policy ID\n * @type {string}\n * @memberof ContractDefinitionEntry\n */\n contractPolicyId: string;\n /**\n * Criteria for the contract\n * @type {Array<UiCriterion>}\n * @memberof ContractDefinitionEntry\n */\n assetSelector: Array<UiCriterion>;\n}\n\n/**\n * Check if a given object implements the ContractDefinitionEntry interface.\n */\nexport function instanceOfContractDefinitionEntry(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'contractDefinitionId' in value;\n isInstance = isInstance && 'accessPolicyId' in value;\n isInstance = isInstance && 'contractPolicyId' in value;\n isInstance = isInstance && 'assetSelector' in value;\n\n return isInstance;\n}\n\nexport function ContractDefinitionEntryFromJSON(\n json: any,\n): ContractDefinitionEntry {\n return ContractDefinitionEntryFromJSONTyped(json, false);\n}\n\nexport function ContractDefinitionEntryFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): ContractDefinitionEntry {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n contractDefinitionId: json['contractDefinitionId'],\n accessPolicyId: json['accessPolicyId'],\n contractPolicyId: json['contractPolicyId'],\n assetSelector: (json['assetSelector'] as Array<any>).map(\n UiCriterionFromJSON,\n ),\n };\n}\n\nexport function ContractDefinitionEntryToJSON(\n value?: ContractDefinitionEntry | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n contractDefinitionId: value.contractDefinitionId,\n accessPolicyId: value.accessPolicyId,\n contractPolicyId: value.contractPolicyId,\n assetSelector: (value.assetSelector as Array<any>).map(\n UiCriterionToJSON,\n ),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {ContractDefinitionEntry} from './ContractDefinitionEntry';\nimport {\n ContractDefinitionEntryFromJSON,\n ContractDefinitionEntryFromJSONTyped,\n ContractDefinitionEntryToJSON,\n} from './ContractDefinitionEntry';\n\n/**\n * All data for the Contract Definition Page\n * @export\n * @interface ContractDefinitionPage\n */\nexport interface ContractDefinitionPage {\n /**\n * Contract Definition Entries\n * @type {Array<ContractDefinitionEntry>}\n * @memberof ContractDefinitionPage\n */\n contractDefinitions: Array<ContractDefinitionEntry>;\n}\n\n/**\n * Check if a given object implements the ContractDefinitionPage interface.\n */\nexport function instanceOfContractDefinitionPage(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'contractDefinitions' in value;\n\n return isInstance;\n}\n\nexport function ContractDefinitionPageFromJSON(\n json: any,\n): ContractDefinitionPage {\n return ContractDefinitionPageFromJSONTyped(json, false);\n}\n\nexport function ContractDefinitionPageFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): ContractDefinitionPage {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n contractDefinitions: (json['contractDefinitions'] as Array<any>).map(\n ContractDefinitionEntryFromJSON,\n ),\n };\n}\n\nexport function ContractDefinitionPageToJSON(\n value?: ContractDefinitionPage | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n contractDefinitions: (value.contractDefinitions as Array<any>).map(\n ContractDefinitionEntryToJSON,\n ),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {UiCriterion} from './UiCriterion';\nimport {\n UiCriterionFromJSON,\n UiCriterionFromJSONTyped,\n UiCriterionToJSON,\n} from './UiCriterion';\n\n/**\n * Data for creating a Contract Definition\n * @export\n * @interface ContractDefinitionRequest\n */\nexport interface ContractDefinitionRequest {\n /**\n * Contract Definition ID\n * @type {string}\n * @memberof ContractDefinitionRequest\n */\n contractDefinitionId: string;\n /**\n * Contract Policy ID\n * @type {string}\n * @memberof ContractDefinitionRequest\n */\n contractPolicyId: string;\n /**\n * Access Policy ID\n * @type {string}\n * @memberof ContractDefinitionRequest\n */\n accessPolicyId: string;\n /**\n * List of Criteria for the contract\n * @type {Array<UiCriterion>}\n * @memberof ContractDefinitionRequest\n */\n assetSelector: Array<UiCriterion>;\n}\n\n/**\n * Check if a given object implements the ContractDefinitionRequest interface.\n */\nexport function instanceOfContractDefinitionRequest(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'contractDefinitionId' in value;\n isInstance = isInstance && 'contractPolicyId' in value;\n isInstance = isInstance && 'accessPolicyId' in value;\n isInstance = isInstance && 'assetSelector' in value;\n\n return isInstance;\n}\n\nexport function ContractDefinitionRequestFromJSON(\n json: any,\n): ContractDefinitionRequest {\n return ContractDefinitionRequestFromJSONTyped(json, false);\n}\n\nexport function ContractDefinitionRequestFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): ContractDefinitionRequest {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n contractDefinitionId: json['contractDefinitionId'],\n contractPolicyId: json['contractPolicyId'],\n accessPolicyId: json['accessPolicyId'],\n assetSelector: (json['assetSelector'] as Array<any>).map(\n UiCriterionFromJSON,\n ),\n };\n}\n\nexport function ContractDefinitionRequestToJSON(\n value?: ContractDefinitionRequest | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n contractDefinitionId: value.contractDefinitionId,\n contractPolicyId: value.contractPolicyId,\n accessPolicyId: value.accessPolicyId,\n assetSelector: (value.assetSelector as Array<any>).map(\n UiCriterionToJSON,\n ),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\n\n/**\n * Data for initiating a Contract Negotiation\n * @export\n * @interface ContractNegotiationRequest\n */\nexport interface ContractNegotiationRequest {\n /**\n * Counter Party Address\n * @type {string}\n * @memberof ContractNegotiationRequest\n */\n counterPartyAddress: string;\n /**\n * Counter Party Participant ID\n * @type {string}\n * @memberof ContractNegotiationRequest\n */\n counterPartyParticipantId: string;\n /**\n * Contract Offer Dto\n * @type {string}\n * @memberof ContractNegotiationRequest\n */\n contractOfferId: string;\n /**\n * Policy JsonLd\n * @type {string}\n * @memberof ContractNegotiationRequest\n */\n policyJsonLd: string;\n /**\n * Asset ID\n * @type {string}\n * @memberof ContractNegotiationRequest\n */\n assetId: string;\n}\n\n/**\n * Check if a given object implements the ContractNegotiationRequest interface.\n */\nexport function instanceOfContractNegotiationRequest(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'counterPartyAddress' in value;\n isInstance = isInstance && 'counterPartyParticipantId' in value;\n isInstance = isInstance && 'contractOfferId' in value;\n isInstance = isInstance && 'policyJsonLd' in value;\n isInstance = isInstance && 'assetId' in value;\n\n return isInstance;\n}\n\nexport function ContractNegotiationRequestFromJSON(\n json: any,\n): ContractNegotiationRequest {\n return ContractNegotiationRequestFromJSONTyped(json, false);\n}\n\nexport function ContractNegotiationRequestFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): ContractNegotiationRequest {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n counterPartyAddress: json['counterPartyAddress'],\n counterPartyParticipantId: json['counterPartyParticipantId'],\n contractOfferId: json['contractOfferId'],\n policyJsonLd: json['policyJsonLd'],\n assetId: json['assetId'],\n };\n}\n\nexport function ContractNegotiationRequestToJSON(\n value?: ContractNegotiationRequest | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n counterPartyAddress: value.counterPartyAddress,\n counterPartyParticipantId: value.counterPartyParticipantId,\n contractOfferId: value.contractOfferId,\n policyJsonLd: value.policyJsonLd,\n assetId: value.assetId,\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n * Simplified Contract Negotiation State to be used in UI\n * @export\n */\nexport const ContractNegotiationSimplifiedState = {\n InProgress: 'IN_PROGRESS',\n Agreed: 'AGREED',\n Terminated: 'TERMINATED',\n} as const;\nexport type ContractNegotiationSimplifiedState =\n (typeof ContractNegotiationSimplifiedState)[keyof typeof ContractNegotiationSimplifiedState];\n\nexport function ContractNegotiationSimplifiedStateFromJSON(\n json: any,\n): ContractNegotiationSimplifiedState {\n return ContractNegotiationSimplifiedStateFromJSONTyped(json, false);\n}\n\nexport function ContractNegotiationSimplifiedStateFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): ContractNegotiationSimplifiedState {\n return json as ContractNegotiationSimplifiedState;\n}\n\nexport function ContractNegotiationSimplifiedStateToJSON(\n value?: ContractNegotiationSimplifiedState | null,\n): any {\n return value as any;\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {ContractNegotiationSimplifiedState} from './ContractNegotiationSimplifiedState';\nimport {\n ContractNegotiationSimplifiedStateFromJSON,\n ContractNegotiationSimplifiedStateFromJSONTyped,\n ContractNegotiationSimplifiedStateToJSON,\n} from './ContractNegotiationSimplifiedState';\n\n/**\n * Contract Negotiation State interpreted\n * @export\n * @interface ContractNegotiationState\n */\nexport interface ContractNegotiationState {\n /**\n * State name or 'CUSTOM'. State names only exist for original EDC Contract Negotiation States.\n * @type {string}\n * @memberof ContractNegotiationState\n */\n name: string;\n /**\n * State code\n * @type {number}\n * @memberof ContractNegotiationState\n */\n code: number;\n /**\n *\n * @type {ContractNegotiationSimplifiedState}\n * @memberof ContractNegotiationState\n */\n simplifiedState: ContractNegotiationSimplifiedState;\n}\n\n/**\n * Check if a given object implements the ContractNegotiationState interface.\n */\nexport function instanceOfContractNegotiationState(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'name' in value;\n isInstance = isInstance && 'code' in value;\n isInstance = isInstance && 'simplifiedState' in value;\n\n return isInstance;\n}\n\nexport function ContractNegotiationStateFromJSON(\n json: any,\n): ContractNegotiationState {\n return ContractNegotiationStateFromJSONTyped(json, false);\n}\n\nexport function ContractNegotiationStateFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): ContractNegotiationState {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n name: json['name'],\n code: json['code'],\n simplifiedState: ContractNegotiationSimplifiedStateFromJSON(\n json['simplifiedState'],\n ),\n };\n}\n\nexport function ContractNegotiationStateToJSON(\n value?: ContractNegotiationState | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n name: value.name,\n code: value.code,\n simplifiedState: ContractNegotiationSimplifiedStateToJSON(\n value.simplifiedState,\n ),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\n\n/**\n * DAPS Config\n * @export\n * @interface DashboardDapsConfig\n */\nexport interface DashboardDapsConfig {\n /**\n * Your Connector's DAPS Token URL\n * @type {string}\n * @memberof DashboardDapsConfig\n */\n tokenUrl: string;\n /**\n * Your Connector's DAPS JWKS URL\n * @type {string}\n * @memberof DashboardDapsConfig\n */\n jwksUrl: string;\n}\n\n/**\n * Check if a given object implements the DashboardDapsConfig interface.\n */\nexport function instanceOfDashboardDapsConfig(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'tokenUrl' in value;\n isInstance = isInstance && 'jwksUrl' in value;\n\n return isInstance;\n}\n\nexport function DashboardDapsConfigFromJSON(json: any): DashboardDapsConfig {\n return DashboardDapsConfigFromJSONTyped(json, false);\n}\n\nexport function DashboardDapsConfigFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): DashboardDapsConfig {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n tokenUrl: json['tokenUrl'],\n jwksUrl: json['jwksUrl'],\n };\n}\n\nexport function DashboardDapsConfigToJSON(\n value?: DashboardDapsConfig | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n tokenUrl: value.tokenUrl,\n jwksUrl: value.jwksUrl,\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\n\n/**\n * Managed Identity Wallet (MIW) Config\n * @export\n * @interface DashboardMiwConfig\n */\nexport interface DashboardMiwConfig {\n /**\n * Your Connector's MIW's URL\n * @type {string}\n * @memberof DashboardMiwConfig\n */\n url: string;\n /**\n * Your Connector's MIW's Token URL\n * @type {string}\n * @memberof DashboardMiwConfig\n */\n tokenUrl: string;\n /**\n * Your Connector's MIW's Authority ID\n * @type {string}\n * @memberof DashboardMiwConfig\n */\n authorityId: string;\n}\n\n/**\n * Check if a given object implements the DashboardMiwConfig interface.\n */\nexport function instanceOfDashboardMiwConfig(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'url' in value;\n isInstance = isInstance && 'tokenUrl' in value;\n isInstance = isInstance && 'authorityId' in value;\n\n return isInstance;\n}\n\nexport function DashboardMiwConfigFromJSON(json: any): DashboardMiwConfig {\n return DashboardMiwConfigFromJSONTyped(json, false);\n}\n\nexport function DashboardMiwConfigFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): DashboardMiwConfig {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n url: json['url'],\n tokenUrl: json['tokenUrl'],\n authorityId: json['authorityId'],\n };\n}\n\nexport function DashboardMiwConfigToJSON(\n value?: DashboardMiwConfig | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n url: value.url,\n tokenUrl: value.tokenUrl,\n authorityId: value.authorityId,\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\n\n/**\n * Providing Transfer Process Amounts\n * @export\n * @interface DashboardTransferAmounts\n */\nexport interface DashboardTransferAmounts {\n /**\n * Number of Transfer Processes\n * @type {number}\n * @memberof DashboardTransferAmounts\n */\n numTotal: number;\n /**\n * Number of running Transfer Processes\n * @type {number}\n * @memberof DashboardTransferAmounts\n */\n numRunning: number;\n /**\n * Number of successful Transfer Processes\n * @type {number}\n * @memberof DashboardTransferAmounts\n */\n numOk: number;\n /**\n * Number of failed Transfer Processes\n * @type {number}\n * @memberof DashboardTransferAmounts\n */\n numError: number;\n}\n\n/**\n * Check if a given object implements the DashboardTransferAmounts interface.\n */\nexport function instanceOfDashboardTransferAmounts(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'numTotal' in value;\n isInstance = isInstance && 'numRunning' in value;\n isInstance = isInstance && 'numOk' in value;\n isInstance = isInstance && 'numError' in value;\n\n return isInstance;\n}\n\nexport function DashboardTransferAmountsFromJSON(\n json: any,\n): DashboardTransferAmounts {\n return DashboardTransferAmountsFromJSONTyped(json, false);\n}\n\nexport function DashboardTransferAmountsFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): DashboardTransferAmounts {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n numTotal: json['numTotal'],\n numRunning: json['numRunning'],\n numOk: json['numOk'],\n numError: json['numError'],\n };\n}\n\nexport function DashboardTransferAmountsToJSON(\n value?: DashboardTransferAmounts | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n numTotal: value.numTotal,\n numRunning: value.numRunning,\n numOk: value.numOk,\n numError: value.numError,\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {DashboardDapsConfig} from './DashboardDapsConfig';\nimport {\n DashboardDapsConfigFromJSON,\n DashboardDapsConfigFromJSONTyped,\n DashboardDapsConfigToJSON,\n} from './DashboardDapsConfig';\nimport type {DashboardMiwConfig} from './DashboardMiwConfig';\nimport {\n DashboardMiwConfigFromJSON,\n DashboardMiwConfigFromJSONTyped,\n DashboardMiwConfigToJSON,\n} from './DashboardMiwConfig';\nimport type {DashboardTransferAmounts} from './DashboardTransferAmounts';\nimport {\n DashboardTransferAmountsFromJSON,\n DashboardTransferAmountsFromJSONTyped,\n DashboardTransferAmountsToJSON,\n} from './DashboardTransferAmounts';\n\n/**\n *\n * @export\n * @interface DashboardPage\n */\nexport interface DashboardPage {\n /**\n * Number of Assets\n * @type {number}\n * @memberof DashboardPage\n */\n numAssets: number;\n /**\n * Number of Policies\n * @type {number}\n * @memberof DashboardPage\n */\n numPolicies: number;\n /**\n * Number of Contract Definitions\n * @type {number}\n * @memberof DashboardPage\n */\n numContractDefinitions: number;\n /**\n * Number of consuming Contract Agreements\n * @type {number}\n * @memberof DashboardPage\n */\n numContractAgreementsConsuming: number;\n /**\n * Number of providing Contract Agreements\n * @type {number}\n * @memberof DashboardPage\n */\n numContractAgreementsProviding: number;\n /**\n *\n * @type {DashboardTransferAmounts}\n * @memberof DashboardPage\n */\n transferProcessesConsuming: DashboardTransferAmounts;\n /**\n *\n * @type {DashboardTransferAmounts}\n * @memberof DashboardPage\n */\n transferProcessesProviding: DashboardTransferAmounts;\n /**\n * Your Connector's Connector Endpoint\n * @type {string}\n * @memberof DashboardPage\n */\n connectorEndpoint: string;\n /**\n * Your Connector's Participant ID\n * @type {string}\n * @memberof DashboardPage\n */\n connectorParticipantId: string;\n /**\n * Your Connector's Title\n * @type {string}\n * @memberof DashboardPage\n */\n connectorTitle: string;\n /**\n * Your Connector's Description\n * @type {string}\n * @memberof DashboardPage\n */\n connectorDescription: string;\n /**\n * Your Organization Homepage\n * @type {string}\n * @memberof DashboardPage\n */\n connectorCuratorUrl: string;\n /**\n * Your Organization Name\n * @type {string}\n * @memberof DashboardPage\n */\n connectorCuratorName: string;\n /**\n * Your Connector's Maintainer's Organization Homepage\n * @type {string}\n * @memberof DashboardPage\n */\n connectorMaintainerUrl: string;\n /**\n * Your Connector's Maintainer's Organization Name\n * @type {string}\n * @memberof DashboardPage\n */\n connectorMaintainerName: string;\n /**\n *\n * @type {DashboardDapsConfig}\n * @memberof DashboardPage\n */\n connectorDapsConfig?: DashboardDapsConfig;\n /**\n *\n * @type {DashboardMiwConfig}\n * @memberof DashboardPage\n */\n connectorMiwConfig?: DashboardMiwConfig;\n}\n\n/**\n * Check if a given object implements the DashboardPage interface.\n */\nexport function instanceOfDashboardPage(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'numAssets' in value;\n isInstance = isInstance && 'numPolicies' in value;\n isInstance = isInstance && 'numContractDefinitions' in value;\n isInstance = isInstance && 'numContractAgreementsConsuming' in value;\n isInstance = isInstance && 'numContractAgreementsProviding' in value;\n isInstance = isInstance && 'transferProcessesConsuming' in value;\n isInstance = isInstance && 'transferProcessesProviding' in value;\n isInstance = isInstance && 'connectorEndpoint' in value;\n isInstance = isInstance && 'connectorParticipantId' in value;\n isInstance = isInstance && 'connectorTitle' in value;\n isInstance = isInstance && 'connectorDescription' in value;\n isInstance = isInstance && 'connectorCuratorUrl' in value;\n isInstance = isInstance && 'connectorCuratorName' in value;\n isInstance = isInstance && 'connectorMaintainerUrl' in value;\n isInstance = isInstance && 'connectorMaintainerName' in value;\n\n return isInstance;\n}\n\nexport function DashboardPageFromJSON(json: any): DashboardPage {\n return DashboardPageFromJSONTyped(json, false);\n}\n\nexport function DashboardPageFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): DashboardPage {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n numAssets: json['numAssets'],\n numPolicies: json['numPolicies'],\n numContractDefinitions: json['numContractDefinitions'],\n numContractAgreementsConsuming: json['numContractAgreementsConsuming'],\n numContractAgreementsProviding: json['numContractAgreementsProviding'],\n transferProcessesConsuming: DashboardTransferAmountsFromJSON(\n json['transferProcessesConsuming'],\n ),\n transferProcessesProviding: DashboardTransferAmountsFromJSON(\n json['transferProcessesProviding'],\n ),\n connectorEndpoint: json['connectorEndpoint'],\n connectorParticipantId: json['connectorParticipantId'],\n connectorTitle: json['connectorTitle'],\n connectorDescription: json['connectorDescription'],\n connectorCuratorUrl: json['connectorCuratorUrl'],\n connectorCuratorName: json['connectorCuratorName'],\n connectorMaintainerUrl: json['connectorMaintainerUrl'],\n connectorMaintainerName: json['connectorMaintainerName'],\n connectorDapsConfig: !exists(json, 'connectorDapsConfig')\n ? undefined\n : DashboardDapsConfigFromJSON(json['connectorDapsConfig']),\n connectorMiwConfig: !exists(json, 'connectorMiwConfig')\n ? undefined\n : DashboardMiwConfigFromJSON(json['connectorMiwConfig']),\n };\n}\n\nexport function DashboardPageToJSON(value?: DashboardPage | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n numAssets: value.numAssets,\n numPolicies: value.numPolicies,\n numContractDefinitions: value.numContractDefinitions,\n numContractAgreementsConsuming: value.numContractAgreementsConsuming,\n numContractAgreementsProviding: value.numContractAgreementsProviding,\n transferProcessesConsuming: DashboardTransferAmountsToJSON(\n value.transferProcessesConsuming,\n ),\n transferProcessesProviding: DashboardTransferAmountsToJSON(\n value.transferProcessesProviding,\n ),\n connectorEndpoint: value.connectorEndpoint,\n connectorParticipantId: value.connectorParticipantId,\n connectorTitle: value.connectorTitle,\n connectorDescription: value.connectorDescription,\n connectorCuratorUrl: value.connectorCuratorUrl,\n connectorCuratorName: value.connectorCuratorName,\n connectorMaintainerUrl: value.connectorMaintainerUrl,\n connectorMaintainerName: value.connectorMaintainerName,\n connectorDapsConfig: DashboardDapsConfigToJSON(\n value.connectorDapsConfig,\n ),\n connectorMiwConfig: DashboardMiwConfigToJSON(value.connectorMiwConfig),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\n\n/**\n * Marks the operation as successful\n * @export\n * @interface IdResponseDto\n */\nexport interface IdResponseDto {\n /**\n * ID\n * @type {string}\n * @memberof IdResponseDto\n */\n id: string;\n /**\n * Change Date\n * @type {Date}\n * @memberof IdResponseDto\n */\n lastUpdatedDate: Date;\n}\n\n/**\n * Check if a given object implements the IdResponseDto interface.\n */\nexport function instanceOfIdResponseDto(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'id' in value;\n isInstance = isInstance && 'lastUpdatedDate' in value;\n\n return isInstance;\n}\n\nexport function IdResponseDtoFromJSON(json: any): IdResponseDto {\n return IdResponseDtoFromJSONTyped(json, false);\n}\n\nexport function IdResponseDtoFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): IdResponseDto {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n id: json['id'],\n lastUpdatedDate: new Date(json['lastUpdatedDate']),\n };\n}\n\nexport function IdResponseDtoToJSON(value?: IdResponseDto | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n id: value.id,\n lastUpdatedDate: value.lastUpdatedDate.toISOString(),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\n\n/**\n * Required data for starting a Contract Agreement's Transfer Process\n * @export\n * @interface InitiateCustomTransferRequest\n */\nexport interface InitiateCustomTransferRequest {\n /**\n * Contract Agreement ID\n * @type {string}\n * @memberof InitiateCustomTransferRequest\n */\n contractAgreementId: string;\n /**\n * Partial TransferProcessRequestJsonLd JSON-LD. Fields participantId, connectorEndpoint, assetId and contractId can be omitted, they will be overridden with information from the contract.\n * @type {string}\n * @memberof InitiateCustomTransferRequest\n */\n transferProcessRequestJsonLd: string;\n}\n\n/**\n * Check if a given object implements the InitiateCustomTransferRequest interface.\n */\nexport function instanceOfInitiateCustomTransferRequest(\n value: object,\n): boolean {\n let isInstance = true;\n isInstance = isInstance && 'contractAgreementId' in value;\n isInstance = isInstance && 'transferProcessRequestJsonLd' in value;\n\n return isInstance;\n}\n\nexport function InitiateCustomTransferRequestFromJSON(\n json: any,\n): InitiateCustomTransferRequest {\n return InitiateCustomTransferRequestFromJSONTyped(json, false);\n}\n\nexport function InitiateCustomTransferRequestFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): InitiateCustomTransferRequest {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n contractAgreementId: json['contractAgreementId'],\n transferProcessRequestJsonLd: json['transferProcessRequestJsonLd'],\n };\n}\n\nexport function InitiateCustomTransferRequestToJSON(\n value?: InitiateCustomTransferRequest | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n contractAgreementId: value.contractAgreementId,\n transferProcessRequestJsonLd: value.transferProcessRequestJsonLd,\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\n\n/**\n * For type PARAMS_ONLY: Required data for starting a Transfer Process\n * @export\n * @interface InitiateTransferRequest\n */\nexport interface InitiateTransferRequest {\n /**\n * Contract Agreement ID\n * @type {string}\n * @memberof InitiateTransferRequest\n */\n contractAgreementId: string;\n /**\n * Data Sink / Data Address\n * @type {{ [key: string]: string; }}\n * @memberof InitiateTransferRequest\n */\n dataSinkProperties: {[key: string]: string};\n /**\n * Additional transfer process properties. These are not passed to the consumer EDC\n * @type {{ [key: string]: string; }}\n * @memberof InitiateTransferRequest\n */\n transferProcessProperties: {[key: string]: string};\n}\n\n/**\n * Check if a given object implements the InitiateTransferRequest interface.\n */\nexport function instanceOfInitiateTransferRequest(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'contractAgreementId' in value;\n isInstance = isInstance && 'dataSinkProperties' in value;\n isInstance = isInstance && 'transferProcessProperties' in value;\n\n return isInstance;\n}\n\nexport function InitiateTransferRequestFromJSON(\n json: any,\n): InitiateTransferRequest {\n return InitiateTransferRequestFromJSONTyped(json, false);\n}\n\nexport function InitiateTransferRequestFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): InitiateTransferRequest {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n contractAgreementId: json['contractAgreementId'],\n dataSinkProperties: json['dataSinkProperties'],\n transferProcessProperties: json['transferProcessProperties'],\n };\n}\n\nexport function InitiateTransferRequestToJSON(\n value?: InitiateTransferRequest | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n contractAgreementId: value.contractAgreementId,\n dataSinkProperties: value.dataSinkProperties,\n transferProcessProperties: value.transferProcessProperties,\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\n\n/**\n * Counts of incoming and outgoing TransferProcesses and status\n * @export\n * @interface TransferProcessStatesDto\n */\nexport interface TransferProcessStatesDto {\n /**\n * States and count of incoming transferprocess counts\n * @type {{ [key: string]: number; }}\n * @memberof TransferProcessStatesDto\n */\n incomingTransferProcessCounts: {[key: string]: number};\n /**\n * States and counts of outgoing transferprocess counts\n * @type {{ [key: string]: number; }}\n * @memberof TransferProcessStatesDto\n */\n outgoingTransferProcessCounts: {[key: string]: number};\n}\n\n/**\n * Check if a given object implements the TransferProcessStatesDto interface.\n */\nexport function instanceOfTransferProcessStatesDto(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'incomingTransferProcessCounts' in value;\n isInstance = isInstance && 'outgoingTransferProcessCounts' in value;\n\n return isInstance;\n}\n\nexport function TransferProcessStatesDtoFromJSON(\n json: any,\n): TransferProcessStatesDto {\n return TransferProcessStatesDtoFromJSONTyped(json, false);\n}\n\nexport function TransferProcessStatesDtoFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): TransferProcessStatesDto {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n incomingTransferProcessCounts: json['incomingTransferProcessCounts'],\n outgoingTransferProcessCounts: json['outgoingTransferProcessCounts'],\n };\n}\n\nexport function TransferProcessStatesDtoToJSON(\n value?: TransferProcessStatesDto | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n incomingTransferProcessCounts: value.incomingTransferProcessCounts,\n outgoingTransferProcessCounts: value.outgoingTransferProcessCounts,\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {TransferProcessStatesDto} from './TransferProcessStatesDto';\nimport {\n TransferProcessStatesDtoFromJSON,\n TransferProcessStatesDtoFromJSONTyped,\n TransferProcessStatesDtoToJSON,\n} from './TransferProcessStatesDto';\n\n/**\n * EDC-status-defining KPIs\n * @export\n * @interface KpiResult\n */\nexport interface KpiResult {\n /**\n * Counts of assets\n * @type {number}\n * @memberof KpiResult\n */\n assetsCount: number;\n /**\n * Counts of policies\n * @type {number}\n * @memberof KpiResult\n */\n policiesCount: number;\n /**\n * Counts of contract definitions\n * @type {number}\n * @memberof KpiResult\n */\n contractDefinitionsCount: number;\n /**\n * Counts of contract agreements\n * @type {number}\n * @memberof KpiResult\n */\n contractAgreementsCount: number;\n /**\n *\n * @type {TransferProcessStatesDto}\n * @memberof KpiResult\n */\n transferProcessDto: TransferProcessStatesDto;\n}\n\n/**\n * Check if a given object implements the KpiResult interface.\n */\nexport function instanceOfKpiResult(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'assetsCount' in value;\n isInstance = isInstance && 'policiesCount' in value;\n isInstance = isInstance && 'contractDefinitionsCount' in value;\n isInstance = isInstance && 'contractAgreementsCount' in value;\n isInstance = isInstance && 'transferProcessDto' in value;\n\n return isInstance;\n}\n\nexport function KpiResultFromJSON(json: any): KpiResult {\n return KpiResultFromJSONTyped(json, false);\n}\n\nexport function KpiResultFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): KpiResult {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n assetsCount: json['assetsCount'],\n policiesCount: json['policiesCount'],\n contractDefinitionsCount: json['contractDefinitionsCount'],\n contractAgreementsCount: json['contractAgreementsCount'],\n transferProcessDto: TransferProcessStatesDtoFromJSON(\n json['transferProcessDto'],\n ),\n };\n}\n\nexport function KpiResultToJSON(value?: KpiResult | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n assetsCount: value.assetsCount,\n policiesCount: value.policiesCount,\n contractDefinitionsCount: value.contractDefinitionsCount,\n contractAgreementsCount: value.contractAgreementsCount,\n transferProcessDto: TransferProcessStatesDtoToJSON(\n value.transferProcessDto,\n ),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {UiPolicyConstraint} from './UiPolicyConstraint';\nimport {\n UiPolicyConstraintFromJSON,\n UiPolicyConstraintFromJSONTyped,\n UiPolicyConstraintToJSON,\n} from './UiPolicyConstraint';\n\n/**\n * Type-Safe OpenAPI generator friendly Policy Create DTO that supports an opinionated subset of the original EDC Policy Entity.\n * @export\n * @interface UiPolicyCreateRequest\n */\nexport interface UiPolicyCreateRequest {\n /**\n * Conjunction of required expressions for the policy to evaluate to TRUE.\n * @type {Array<UiPolicyConstraint>}\n * @memberof UiPolicyCreateRequest\n */\n constraints?: Array<UiPolicyConstraint>;\n}\n\n/**\n * Check if a given object implements the UiPolicyCreateRequest interface.\n */\nexport function instanceOfUiPolicyCreateRequest(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function UiPolicyCreateRequestFromJSON(\n json: any,\n): UiPolicyCreateRequest {\n return UiPolicyCreateRequestFromJSONTyped(json, false);\n}\n\nexport function UiPolicyCreateRequestFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiPolicyCreateRequest {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n constraints: !exists(json, 'constraints')\n ? undefined\n : (json['constraints'] as Array<any>).map(\n UiPolicyConstraintFromJSON,\n ),\n };\n}\n\nexport function UiPolicyCreateRequestToJSON(\n value?: UiPolicyCreateRequest | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n constraints:\n value.constraints === undefined\n ? undefined\n : (value.constraints as Array<any>).map(\n UiPolicyConstraintToJSON,\n ),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {UiPolicyCreateRequest} from './UiPolicyCreateRequest';\nimport {\n UiPolicyCreateRequestFromJSON,\n UiPolicyCreateRequestFromJSONTyped,\n UiPolicyCreateRequestToJSON,\n} from './UiPolicyCreateRequest';\n\n/**\n * Data for creating a Policy Definition\n * @export\n * @interface PolicyDefinitionCreateRequest\n */\nexport interface PolicyDefinitionCreateRequest {\n /**\n * Policy Definition ID\n * @type {string}\n * @memberof PolicyDefinitionCreateRequest\n */\n policyDefinitionId: string;\n /**\n *\n * @type {UiPolicyCreateRequest}\n * @memberof PolicyDefinitionCreateRequest\n */\n policy: UiPolicyCreateRequest;\n}\n\n/**\n * Check if a given object implements the PolicyDefinitionCreateRequest interface.\n */\nexport function instanceOfPolicyDefinitionCreateRequest(\n value: object,\n): boolean {\n let isInstance = true;\n isInstance = isInstance && 'policyDefinitionId' in value;\n isInstance = isInstance && 'policy' in value;\n\n return isInstance;\n}\n\nexport function PolicyDefinitionCreateRequestFromJSON(\n json: any,\n): PolicyDefinitionCreateRequest {\n return PolicyDefinitionCreateRequestFromJSONTyped(json, false);\n}\n\nexport function PolicyDefinitionCreateRequestFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): PolicyDefinitionCreateRequest {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n policyDefinitionId: json['policyDefinitionId'],\n policy: UiPolicyCreateRequestFromJSON(json['policy']),\n };\n}\n\nexport function PolicyDefinitionCreateRequestToJSON(\n value?: PolicyDefinitionCreateRequest | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n policyDefinitionId: value.policyDefinitionId,\n policy: UiPolicyCreateRequestToJSON(value.policy),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {UiPolicy} from './UiPolicy';\nimport {\n UiPolicyFromJSON,\n UiPolicyFromJSONTyped,\n UiPolicyToJSON,\n} from './UiPolicy';\n\n/**\n * Policy Definition as required for the Policy Definition Page\n * @export\n * @interface PolicyDefinitionDto\n */\nexport interface PolicyDefinitionDto {\n /**\n * Policy Definition ID\n * @type {string}\n * @memberof PolicyDefinitionDto\n */\n policyDefinitionId: string;\n /**\n *\n * @type {UiPolicy}\n * @memberof PolicyDefinitionDto\n */\n policy: UiPolicy;\n}\n\n/**\n * Check if a given object implements the PolicyDefinitionDto interface.\n */\nexport function instanceOfPolicyDefinitionDto(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'policyDefinitionId' in value;\n isInstance = isInstance && 'policy' in value;\n\n return isInstance;\n}\n\nexport function PolicyDefinitionDtoFromJSON(json: any): PolicyDefinitionDto {\n return PolicyDefinitionDtoFromJSONTyped(json, false);\n}\n\nexport function PolicyDefinitionDtoFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): PolicyDefinitionDto {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n policyDefinitionId: json['policyDefinitionId'],\n policy: UiPolicyFromJSON(json['policy']),\n };\n}\n\nexport function PolicyDefinitionDtoToJSON(\n value?: PolicyDefinitionDto | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n policyDefinitionId: value.policyDefinitionId,\n policy: UiPolicyToJSON(value.policy),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {PolicyDefinitionDto} from './PolicyDefinitionDto';\nimport {\n PolicyDefinitionDtoFromJSON,\n PolicyDefinitionDtoFromJSONTyped,\n PolicyDefinitionDtoToJSON,\n} from './PolicyDefinitionDto';\n\n/**\n * All data for the policy definition page as required by the UI\n * @export\n * @interface PolicyDefinitionPage\n */\nexport interface PolicyDefinitionPage {\n /**\n * Policy Definition Entries\n * @type {Array<PolicyDefinitionDto>}\n * @memberof PolicyDefinitionPage\n */\n policies: Array<PolicyDefinitionDto>;\n}\n\n/**\n * Check if a given object implements the PolicyDefinitionPage interface.\n */\nexport function instanceOfPolicyDefinitionPage(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'policies' in value;\n\n return isInstance;\n}\n\nexport function PolicyDefinitionPageFromJSON(json: any): PolicyDefinitionPage {\n return PolicyDefinitionPageFromJSONTyped(json, false);\n}\n\nexport function PolicyDefinitionPageFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): PolicyDefinitionPage {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n policies: (json['policies'] as Array<any>).map(\n PolicyDefinitionDtoFromJSON,\n ),\n };\n}\n\nexport function PolicyDefinitionPageToJSON(\n value?: PolicyDefinitionPage | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n policies: (value.policies as Array<any>).map(PolicyDefinitionDtoToJSON),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {ContractAgreementDirection} from './ContractAgreementDirection';\nimport {\n ContractAgreementDirectionFromJSON,\n ContractAgreementDirectionFromJSONTyped,\n ContractAgreementDirectionToJSON,\n} from './ContractAgreementDirection';\nimport type {TransferProcessState} from './TransferProcessState';\nimport {\n TransferProcessStateFromJSON,\n TransferProcessStateFromJSONTyped,\n TransferProcessStateToJSON,\n} from './TransferProcessState';\n\n/**\n * Transfer History Entry for Transfer History Page\n * @export\n * @interface TransferHistoryEntry\n */\nexport interface TransferHistoryEntry {\n /**\n * Transfer Process ID\n * @type {string}\n * @memberof TransferHistoryEntry\n */\n transferProcessId: string;\n /**\n * Created Date\n * @type {Date}\n * @memberof TransferHistoryEntry\n */\n createdDate: Date;\n /**\n * Last Change Date\n * @type {Date}\n * @memberof TransferHistoryEntry\n */\n lastUpdatedDate: Date;\n /**\n *\n * @type {TransferProcessState}\n * @memberof TransferHistoryEntry\n */\n state: TransferProcessState;\n /**\n * Contract Agreement ID\n * @type {string}\n * @memberof TransferHistoryEntry\n */\n contractAgreementId: string;\n /**\n *\n * @type {ContractAgreementDirection}\n * @memberof TransferHistoryEntry\n */\n direction: ContractAgreementDirection;\n /**\n * Other Connector's Endpoint\n * @type {string}\n * @memberof TransferHistoryEntry\n */\n counterPartyConnectorEndpoint: string;\n /**\n * Other Connector's Participant ID\n * @type {string}\n * @memberof TransferHistoryEntry\n */\n counterPartyParticipantId: string;\n /**\n * Asset Name\n * @type {string}\n * @memberof TransferHistoryEntry\n */\n assetName: string;\n /**\n * Asset ID\n * @type {string}\n * @memberof TransferHistoryEntry\n */\n assetId: string;\n /**\n * Error Message\n * @type {string}\n * @memberof TransferHistoryEntry\n */\n errorMessage?: string;\n}\n\n/**\n * Check if a given object implements the TransferHistoryEntry interface.\n */\nexport function instanceOfTransferHistoryEntry(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'transferProcessId' in value;\n isInstance = isInstance && 'createdDate' in value;\n isInstance = isInstance && 'lastUpdatedDate' in value;\n isInstance = isInstance && 'state' in value;\n isInstance = isInstance && 'contractAgreementId' in value;\n isInstance = isInstance && 'direction' in value;\n isInstance = isInstance && 'counterPartyConnectorEndpoint' in value;\n isInstance = isInstance && 'counterPartyParticipantId' in value;\n isInstance = isInstance && 'assetName' in value;\n isInstance = isInstance && 'assetId' in value;\n\n return isInstance;\n}\n\nexport function TransferHistoryEntryFromJSON(json: any): TransferHistoryEntry {\n return TransferHistoryEntryFromJSONTyped(json, false);\n}\n\nexport function TransferHistoryEntryFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): TransferHistoryEntry {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n transferProcessId: json['transferProcessId'],\n createdDate: new Date(json['createdDate']),\n lastUpdatedDate: new Date(json['lastUpdatedDate']),\n state: TransferProcessStateFromJSON(json['state']),\n contractAgreementId: json['contractAgreementId'],\n direction: ContractAgreementDirectionFromJSON(json['direction']),\n counterPartyConnectorEndpoint: json['counterPartyConnectorEndpoint'],\n counterPartyParticipantId: json['counterPartyParticipantId'],\n assetName: json['assetName'],\n assetId: json['assetId'],\n errorMessage: !exists(json, 'errorMessage')\n ? undefined\n : json['errorMessage'],\n };\n}\n\nexport function TransferHistoryEntryToJSON(\n value?: TransferHistoryEntry | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n transferProcessId: value.transferProcessId,\n createdDate: value.createdDate.toISOString(),\n lastUpdatedDate: value.lastUpdatedDate.toISOString(),\n state: TransferProcessStateToJSON(value.state),\n contractAgreementId: value.contractAgreementId,\n direction: ContractAgreementDirectionToJSON(value.direction),\n counterPartyConnectorEndpoint: value.counterPartyConnectorEndpoint,\n counterPartyParticipantId: value.counterPartyParticipantId,\n assetName: value.assetName,\n assetId: value.assetId,\n errorMessage: value.errorMessage,\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {TransferHistoryEntry} from './TransferHistoryEntry';\nimport {\n TransferHistoryEntryFromJSON,\n TransferHistoryEntryFromJSONTyped,\n TransferHistoryEntryToJSON,\n} from './TransferHistoryEntry';\n\n/**\n *\n * @export\n * @interface TransferHistoryPage\n */\nexport interface TransferHistoryPage {\n /**\n * Transfer History Page Entries\n * @type {Array<TransferHistoryEntry>}\n * @memberof TransferHistoryPage\n */\n transferEntries: Array<TransferHistoryEntry>;\n}\n\n/**\n * Check if a given object implements the TransferHistoryPage interface.\n */\nexport function instanceOfTransferHistoryPage(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'transferEntries' in value;\n\n return isInstance;\n}\n\nexport function TransferHistoryPageFromJSON(json: any): TransferHistoryPage {\n return TransferHistoryPageFromJSONTyped(json, false);\n}\n\nexport function TransferHistoryPageFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): TransferHistoryPage {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n transferEntries: (json['transferEntries'] as Array<any>).map(\n TransferHistoryEntryFromJSON,\n ),\n };\n}\n\nexport function TransferHistoryPageToJSON(\n value?: TransferHistoryPage | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n transferEntries: (value.transferEntries as Array<any>).map(\n TransferHistoryEntryToJSON,\n ),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\n\n/**\n * Type-Safe OpenAPI generator friendly Asset Create DTO that supports an opinionated subset of the original EDC Asset Entity.\n * @export\n * @interface UiAssetCreateRequest\n */\nexport interface UiAssetCreateRequest {\n /**\n * Asset Id\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n id: string;\n /**\n * Asset Title\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n title?: string;\n /**\n * Asset Language\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n language?: string;\n /**\n * Asset Description\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n description?: string;\n /**\n * Asset Homepage\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n publisherHomepage?: string;\n /**\n * License URL\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n licenseUrl?: string;\n /**\n * Version\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n version?: string;\n /**\n * Asset Keywords\n * @type {Array<string>}\n * @memberof UiAssetCreateRequest\n */\n keywords?: Array<string>;\n /**\n * Asset MediaType\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n mediaType?: string;\n /**\n * Landing Page URL\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n landingPageUrl?: string;\n /**\n * Data Category\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n dataCategory?: string;\n /**\n * Data Subcategory\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n dataSubcategory?: string;\n /**\n * Data Model\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n dataModel?: string;\n /**\n * Geo-Reference Method\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n geoReferenceMethod?: string;\n /**\n * Transport Mode\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n transportMode?: string;\n /**\n * The sovereign is distinct from the publisher by being the legal owner of the data.\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n sovereignLegalName?: string;\n /**\n * Geo location\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n geoLocation?: string;\n /**\n * Locations by NUTS standard which divides countries into administrative divisions\n * @type {Array<string>}\n * @memberof UiAssetCreateRequest\n */\n nutsLocations?: Array<string>;\n /**\n * Data sample URLs\n * @type {Array<string>}\n * @memberof UiAssetCreateRequest\n */\n dataSampleUrls?: Array<string>;\n /**\n * Reference file/schema URLs\n * @type {Array<string>}\n * @memberof UiAssetCreateRequest\n */\n referenceFileUrls?: Array<string>;\n /**\n * Additional information on reference files/schemas\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n referenceFilesDescription?: string;\n /**\n * Instructions for use that are not legally relevant e.g. information on how to cite the dataset in papers\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n conditionsForUse?: string;\n /**\n * Data update frequency\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n dataUpdateFrequency?: string;\n /**\n * Temporal coverage start date\n * @type {Date}\n * @memberof UiAssetCreateRequest\n */\n temporalCoverageFrom?: Date;\n /**\n * Temporal coverage end date (inclusive)\n * @type {Date}\n * @memberof UiAssetCreateRequest\n */\n temporalCoverageToInclusive?: Date;\n /**\n * Data Address\n * @type {{ [key: string]: string; }}\n * @memberof UiAssetCreateRequest\n */\n dataAddressProperties: {[key: string]: string};\n /**\n * Contains serialized custom properties in the JSON format.\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n customJsonAsString?: string;\n /**\n * Contains serialized custom properties in the JSON LD format. Contrary to the customJsonAsString field, this string must represent a JSON LD object and will be affected by JSON LD compaction and expansion. Due to a technical limitation, the properties can't be booleans.\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n customJsonLdAsString?: string;\n /**\n * Same as customJsonAsString but the data will be stored in the private properties.\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n privateCustomJsonAsString?: string;\n /**\n * Same as customJsonLdAsString but the data will be stored in the private properties. The same limitations apply.\n * @type {string}\n * @memberof UiAssetCreateRequest\n */\n privateCustomJsonLdAsString?: string;\n}\n\n/**\n * Check if a given object implements the UiAssetCreateRequest interface.\n */\nexport function instanceOfUiAssetCreateRequest(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'id' in value;\n isInstance = isInstance && 'dataAddressProperties' in value;\n\n return isInstance;\n}\n\nexport function UiAssetCreateRequestFromJSON(json: any): UiAssetCreateRequest {\n return UiAssetCreateRequestFromJSONTyped(json, false);\n}\n\nexport function UiAssetCreateRequestFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiAssetCreateRequest {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n id: json['id'],\n title: !exists(json, 'title') ? undefined : json['title'],\n language: !exists(json, 'language') ? undefined : json['language'],\n description: !exists(json, 'description')\n ? undefined\n : json['description'],\n publisherHomepage: !exists(json, 'publisherHomepage')\n ? undefined\n : json['publisherHomepage'],\n licenseUrl: !exists(json, 'licenseUrl')\n ? undefined\n : json['licenseUrl'],\n version: !exists(json, 'version') ? undefined : json['version'],\n keywords: !exists(json, 'keywords') ? undefined : json['keywords'],\n mediaType: !exists(json, 'mediaType') ? undefined : json['mediaType'],\n landingPageUrl: !exists(json, 'landingPageUrl')\n ? undefined\n : json['landingPageUrl'],\n dataCategory: !exists(json, 'dataCategory')\n ? undefined\n : json['dataCategory'],\n dataSubcategory: !exists(json, 'dataSubcategory')\n ? undefined\n : json['dataSubcategory'],\n dataModel: !exists(json, 'dataModel') ? undefined : json['dataModel'],\n geoReferenceMethod: !exists(json, 'geoReferenceMethod')\n ? undefined\n : json['geoReferenceMethod'],\n transportMode: !exists(json, 'transportMode')\n ? undefined\n : json['transportMode'],\n sovereignLegalName: !exists(json, 'sovereignLegalName')\n ? undefined\n : json['sovereignLegalName'],\n geoLocation: !exists(json, 'geoLocation')\n ? undefined\n : json['geoLocation'],\n nutsLocations: !exists(json, 'nutsLocations')\n ? undefined\n : json['nutsLocations'],\n dataSampleUrls: !exists(json, 'dataSampleUrls')\n ? undefined\n : json['dataSampleUrls'],\n referenceFileUrls: !exists(json, 'referenceFileUrls')\n ? undefined\n : json['referenceFileUrls'],\n referenceFilesDescription: !exists(json, 'referenceFilesDescription')\n ? undefined\n : json['referenceFilesDescription'],\n conditionsForUse: !exists(json, 'conditionsForUse')\n ? undefined\n : json['conditionsForUse'],\n dataUpdateFrequency: !exists(json, 'dataUpdateFrequency')\n ? undefined\n : json['dataUpdateFrequency'],\n temporalCoverageFrom: !exists(json, 'temporalCoverageFrom')\n ? undefined\n : new Date(json['temporalCoverageFrom']),\n temporalCoverageToInclusive: !exists(\n json,\n 'temporalCoverageToInclusive',\n )\n ? undefined\n : new Date(json['temporalCoverageToInclusive']),\n dataAddressProperties: json['dataAddressProperties'],\n customJsonAsString: !exists(json, 'customJsonAsString')\n ? undefined\n : json['customJsonAsString'],\n customJsonLdAsString: !exists(json, 'customJsonLdAsString')\n ? undefined\n : json['customJsonLdAsString'],\n privateCustomJsonAsString: !exists(json, 'privateCustomJsonAsString')\n ? undefined\n : json['privateCustomJsonAsString'],\n privateCustomJsonLdAsString: !exists(\n json,\n 'privateCustomJsonLdAsString',\n )\n ? undefined\n : json['privateCustomJsonLdAsString'],\n };\n}\n\nexport function UiAssetCreateRequestToJSON(\n value?: UiAssetCreateRequest | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n id: value.id,\n title: value.title,\n language: value.language,\n description: value.description,\n publisherHomepage: value.publisherHomepage,\n licenseUrl: value.licenseUrl,\n version: value.version,\n keywords: value.keywords,\n mediaType: value.mediaType,\n landingPageUrl: value.landingPageUrl,\n dataCategory: value.dataCategory,\n dataSubcategory: value.dataSubcategory,\n dataModel: value.dataModel,\n geoReferenceMethod: value.geoReferenceMethod,\n transportMode: value.transportMode,\n sovereignLegalName: value.sovereignLegalName,\n geoLocation: value.geoLocation,\n nutsLocations: value.nutsLocations,\n dataSampleUrls: value.dataSampleUrls,\n referenceFileUrls: value.referenceFileUrls,\n referenceFilesDescription: value.referenceFilesDescription,\n conditionsForUse: value.conditionsForUse,\n dataUpdateFrequency: value.dataUpdateFrequency,\n temporalCoverageFrom:\n value.temporalCoverageFrom === undefined\n ? undefined\n : value.temporalCoverageFrom.toISOString().substr(0, 10),\n temporalCoverageToInclusive:\n value.temporalCoverageToInclusive === undefined\n ? undefined\n : value.temporalCoverageToInclusive.toISOString().substr(0, 10),\n dataAddressProperties: value.dataAddressProperties,\n customJsonAsString: value.customJsonAsString,\n customJsonLdAsString: value.customJsonLdAsString,\n privateCustomJsonAsString: value.privateCustomJsonAsString,\n privateCustomJsonLdAsString: value.privateCustomJsonLdAsString,\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\n\n/**\n * Data for editing an asset.\n * @export\n * @interface UiAssetEditMetadataRequest\n */\nexport interface UiAssetEditMetadataRequest {\n /**\n * Asset Title\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n title?: string;\n /**\n * Asset Language\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n language?: string;\n /**\n * Asset Description\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n description?: string;\n /**\n * Asset Homepage\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n publisherHomepage?: string;\n /**\n * License URL\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n licenseUrl?: string;\n /**\n * Version\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n version?: string;\n /**\n * Asset Keywords\n * @type {Array<string>}\n * @memberof UiAssetEditMetadataRequest\n */\n keywords?: Array<string>;\n /**\n * Asset MediaType\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n mediaType?: string;\n /**\n * Landing Page URL\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n landingPageUrl?: string;\n /**\n * Data Category\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n dataCategory?: string;\n /**\n * Data Subcategory\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n dataSubcategory?: string;\n /**\n * Data Model\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n dataModel?: string;\n /**\n * Geo-Reference Method\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n geoReferenceMethod?: string;\n /**\n * Transport Mode\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n transportMode?: string;\n /**\n * The sovereign is distinct from the publisher by being the legal owner of the data.\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n sovereignLegalName?: string;\n /**\n * Geo location\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n geoLocation?: string;\n /**\n * Locations by NUTS standard which divides countries into administrative divisions\n * @type {Array<string>}\n * @memberof UiAssetEditMetadataRequest\n */\n nutsLocations?: Array<string>;\n /**\n * Data sample URLs\n * @type {Array<string>}\n * @memberof UiAssetEditMetadataRequest\n */\n dataSampleUrls?: Array<string>;\n /**\n * Reference file/schema URLs\n * @type {Array<string>}\n * @memberof UiAssetEditMetadataRequest\n */\n referenceFileUrls?: Array<string>;\n /**\n * Additional information on reference files/schemas\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n referenceFilesDescription?: string;\n /**\n * Instructions for use that are not legally relevant e.g. information on how to cite the dataset in papers\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n conditionsForUse?: string;\n /**\n * Data update frequency\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n dataUpdateFrequency?: string;\n /**\n * Temporal coverage start date\n * @type {Date}\n * @memberof UiAssetEditMetadataRequest\n */\n temporalCoverageFrom?: Date;\n /**\n * Temporal coverage end date (inclusive)\n * @type {Date}\n * @memberof UiAssetEditMetadataRequest\n */\n temporalCoverageToInclusive?: Date;\n /**\n * Contains serialized custom properties in the JSON format.\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n customJsonAsString?: string;\n /**\n * Contains serialized custom properties in the JSON LD format. Contrary to the customJsonAsString field, this string must represent a JSON LD object and will be affected by JSON LD compaction and expansion. Due to a technical limitation, the properties can't be booleans.\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n customJsonLdAsString?: string;\n /**\n * Same as customJsonAsString but the data will be stored in the private properties.\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n privateCustomJsonAsString?: string;\n /**\n * Same as customJsonLdAsString but the data will be stored in the private properties. The same limitations apply.\n * @type {string}\n * @memberof UiAssetEditMetadataRequest\n */\n privateCustomJsonLdAsString?: string;\n}\n\n/**\n * Check if a given object implements the UiAssetEditMetadataRequest interface.\n */\nexport function instanceOfUiAssetEditMetadataRequest(value: object): boolean {\n let isInstance = true;\n\n return isInstance;\n}\n\nexport function UiAssetEditMetadataRequestFromJSON(\n json: any,\n): UiAssetEditMetadataRequest {\n return UiAssetEditMetadataRequestFromJSONTyped(json, false);\n}\n\nexport function UiAssetEditMetadataRequestFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiAssetEditMetadataRequest {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n title: !exists(json, 'title') ? undefined : json['title'],\n language: !exists(json, 'language') ? undefined : json['language'],\n description: !exists(json, 'description')\n ? undefined\n : json['description'],\n publisherHomepage: !exists(json, 'publisherHomepage')\n ? undefined\n : json['publisherHomepage'],\n licenseUrl: !exists(json, 'licenseUrl')\n ? undefined\n : json['licenseUrl'],\n version: !exists(json, 'version') ? undefined : json['version'],\n keywords: !exists(json, 'keywords') ? undefined : json['keywords'],\n mediaType: !exists(json, 'mediaType') ? undefined : json['mediaType'],\n landingPageUrl: !exists(json, 'landingPageUrl')\n ? undefined\n : json['landingPageUrl'],\n dataCategory: !exists(json, 'dataCategory')\n ? undefined\n : json['dataCategory'],\n dataSubcategory: !exists(json, 'dataSubcategory')\n ? undefined\n : json['dataSubcategory'],\n dataModel: !exists(json, 'dataModel') ? undefined : json['dataModel'],\n geoReferenceMethod: !exists(json, 'geoReferenceMethod')\n ? undefined\n : json['geoReferenceMethod'],\n transportMode: !exists(json, 'transportMode')\n ? undefined\n : json['transportMode'],\n sovereignLegalName: !exists(json, 'sovereignLegalName')\n ? undefined\n : json['sovereignLegalName'],\n geoLocation: !exists(json, 'geoLocation')\n ? undefined\n : json['geoLocation'],\n nutsLocations: !exists(json, 'nutsLocations')\n ? undefined\n : json['nutsLocations'],\n dataSampleUrls: !exists(json, 'dataSampleUrls')\n ? undefined\n : json['dataSampleUrls'],\n referenceFileUrls: !exists(json, 'referenceFileUrls')\n ? undefined\n : json['referenceFileUrls'],\n referenceFilesDescription: !exists(json, 'referenceFilesDescription')\n ? undefined\n : json['referenceFilesDescription'],\n conditionsForUse: !exists(json, 'conditionsForUse')\n ? undefined\n : json['conditionsForUse'],\n dataUpdateFrequency: !exists(json, 'dataUpdateFrequency')\n ? undefined\n : json['dataUpdateFrequency'],\n temporalCoverageFrom: !exists(json, 'temporalCoverageFrom')\n ? undefined\n : new Date(json['temporalCoverageFrom']),\n temporalCoverageToInclusive: !exists(\n json,\n 'temporalCoverageToInclusive',\n )\n ? undefined\n : new Date(json['temporalCoverageToInclusive']),\n customJsonAsString: !exists(json, 'customJsonAsString')\n ? undefined\n : json['customJsonAsString'],\n customJsonLdAsString: !exists(json, 'customJsonLdAsString')\n ? undefined\n : json['customJsonLdAsString'],\n privateCustomJsonAsString: !exists(json, 'privateCustomJsonAsString')\n ? undefined\n : json['privateCustomJsonAsString'],\n privateCustomJsonLdAsString: !exists(\n json,\n 'privateCustomJsonLdAsString',\n )\n ? undefined\n : json['privateCustomJsonLdAsString'],\n };\n}\n\nexport function UiAssetEditMetadataRequestToJSON(\n value?: UiAssetEditMetadataRequest | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n title: value.title,\n language: value.language,\n description: value.description,\n publisherHomepage: value.publisherHomepage,\n licenseUrl: value.licenseUrl,\n version: value.version,\n keywords: value.keywords,\n mediaType: value.mediaType,\n landingPageUrl: value.landingPageUrl,\n dataCategory: value.dataCategory,\n dataSubcategory: value.dataSubcategory,\n dataModel: value.dataModel,\n geoReferenceMethod: value.geoReferenceMethod,\n transportMode: value.transportMode,\n sovereignLegalName: value.sovereignLegalName,\n geoLocation: value.geoLocation,\n nutsLocations: value.nutsLocations,\n dataSampleUrls: value.dataSampleUrls,\n referenceFileUrls: value.referenceFileUrls,\n referenceFilesDescription: value.referenceFilesDescription,\n conditionsForUse: value.conditionsForUse,\n dataUpdateFrequency: value.dataUpdateFrequency,\n temporalCoverageFrom:\n value.temporalCoverageFrom === undefined\n ? undefined\n : value.temporalCoverageFrom.toISOString().substr(0, 10),\n temporalCoverageToInclusive:\n value.temporalCoverageToInclusive === undefined\n ? undefined\n : value.temporalCoverageToInclusive.toISOString().substr(0, 10),\n customJsonAsString: value.customJsonAsString,\n customJsonLdAsString: value.customJsonLdAsString,\n privateCustomJsonAsString: value.privateCustomJsonAsString,\n privateCustomJsonLdAsString: value.privateCustomJsonLdAsString,\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {ContractNegotiationState} from './ContractNegotiationState';\nimport {\n ContractNegotiationStateFromJSON,\n ContractNegotiationStateFromJSONTyped,\n ContractNegotiationStateToJSON,\n} from './ContractNegotiationState';\n\n/**\n * Contract Negotiation Information\n * @export\n * @interface UiContractNegotiation\n */\nexport interface UiContractNegotiation {\n /**\n * Contract Negotiation Id\n * @type {string}\n * @memberof UiContractNegotiation\n */\n contractNegotiationId: string;\n /**\n * Contract Negotiation Creation Time\n * @type {Date}\n * @memberof UiContractNegotiation\n */\n createdAt: Date;\n /**\n * Contract Agreement Id\n * @type {string}\n * @memberof UiContractNegotiation\n */\n contractAgreementId?: string;\n /**\n *\n * @type {ContractNegotiationState}\n * @memberof UiContractNegotiation\n */\n state: ContractNegotiationState;\n}\n\n/**\n * Check if a given object implements the UiContractNegotiation interface.\n */\nexport function instanceOfUiContractNegotiation(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'contractNegotiationId' in value;\n isInstance = isInstance && 'createdAt' in value;\n isInstance = isInstance && 'state' in value;\n\n return isInstance;\n}\n\nexport function UiContractNegotiationFromJSON(\n json: any,\n): UiContractNegotiation {\n return UiContractNegotiationFromJSONTyped(json, false);\n}\n\nexport function UiContractNegotiationFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiContractNegotiation {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n contractNegotiationId: json['contractNegotiationId'],\n createdAt: new Date(json['createdAt']),\n contractAgreementId: !exists(json, 'contractAgreementId')\n ? undefined\n : json['contractAgreementId'],\n state: ContractNegotiationStateFromJSON(json['state']),\n };\n}\n\nexport function UiContractNegotiationToJSON(\n value?: UiContractNegotiation | null,\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n contractNegotiationId: value.contractNegotiationId,\n createdAt: value.createdAt.toISOString(),\n contractAgreementId: value.contractAgreementId,\n state: ContractNegotiationStateToJSON(value.state),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {UiPolicy} from './UiPolicy';\nimport {\n UiPolicyFromJSON,\n UiPolicyFromJSONTyped,\n UiPolicyToJSON,\n} from './UiPolicy';\n\n/**\n * Catalog Data Offer's Contract Offer as required by the UI\n * @export\n * @interface UiContractOffer\n */\nexport interface UiContractOffer {\n /**\n * Contract Offer ID\n * @type {string}\n * @memberof UiContractOffer\n */\n contractOfferId: string;\n /**\n *\n * @type {UiPolicy}\n * @memberof UiContractOffer\n */\n policy: UiPolicy;\n}\n\n/**\n * Check if a given object implements the UiContractOffer interface.\n */\nexport function instanceOfUiContractOffer(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'contractOfferId' in value;\n isInstance = isInstance && 'policy' in value;\n\n return isInstance;\n}\n\nexport function UiContractOfferFromJSON(json: any): UiContractOffer {\n return UiContractOfferFromJSONTyped(json, false);\n}\n\nexport function UiContractOfferFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiContractOffer {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n contractOfferId: json['contractOfferId'],\n policy: UiPolicyFromJSON(json['policy']),\n };\n}\n\nexport function UiContractOfferToJSON(value?: UiContractOffer | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n contractOfferId: value.contractOfferId,\n policy: UiPolicyToJSON(value.policy),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport {exists, mapValues} from '../runtime';\nimport type {UiAsset} from './UiAsset';\nimport {UiAssetFromJSON, UiAssetFromJSONTyped, UiAssetToJSON} from './UiAsset';\nimport type {UiContractOffer} from './UiContractOffer';\nimport {\n UiContractOfferFromJSON,\n UiContractOfferFromJSONTyped,\n UiContractOfferToJSON,\n} from './UiContractOffer';\n\n/**\n * Catalog Data Offer as required by the UI\n * @export\n * @interface UiDataOffer\n */\nexport interface UiDataOffer {\n /**\n * Connector Endpoint\n * @type {string}\n * @memberof UiDataOffer\n */\n endpoint: string;\n /**\n * Participant ID. Required for initiating transfers.\n * @type {string}\n * @memberof UiDataOffer\n */\n participantId: string;\n /**\n *\n * @type {UiAsset}\n * @memberof UiDataOffer\n */\n asset: UiAsset;\n /**\n * Available Contract Offers\n * @type {Array<UiContractOffer>}\n * @memberof UiDataOffer\n */\n contractOffers: Array<UiContractOffer>;\n}\n\n/**\n * Check if a given object implements the UiDataOffer interface.\n */\nexport function instanceOfUiDataOffer(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && 'endpoint' in value;\n isInstance = isInstance && 'participantId' in value;\n isInstance = isInstance && 'asset' in value;\n isInstance = isInstance && 'contractOffers' in value;\n\n return isInstance;\n}\n\nexport function UiDataOfferFromJSON(json: any): UiDataOffer {\n return UiDataOfferFromJSONTyped(json, false);\n}\n\nexport function UiDataOfferFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean,\n): UiDataOffer {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n endpoint: json['endpoint'],\n participantId: json['participantId'],\n asset: UiAssetFromJSON(json['asset']),\n contractOffers: (json['contractOffers'] as Array<any>).map(\n UiContractOfferFromJSON,\n ),\n };\n}\n\nexport function UiDataOfferToJSON(value?: UiDataOffer | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n endpoint: value.endpoint,\n participantId: value.participantId,\n asset: UiAssetToJSON(value.asset),\n contractOffers: (value.contractOffers as Array<any>).map(\n UiContractOfferToJSON,\n ),\n };\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport type {ConnectorLimits, UiAssetCreateRequest} from '../models';\nimport {\n ConnectorLimitsFromJSON,\n ConnectorLimitsToJSON,\n UiAssetCreateRequestFromJSON,\n UiAssetCreateRequestToJSON,\n} from '../models';\nimport * as runtime from '../runtime';\n\nexport interface FileUploadCreateAssetRequest {\n blobId: string;\n uiAssetCreateRequest: UiAssetCreateRequest;\n}\n\n/**\n *\n */\nexport class EnterpriseEditionApi extends runtime.BaseAPI {\n /**\n * Available and used resources of a connector.\n */\n async connectorLimitsRaw(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<ConnectorLimits>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ee/connector-limits`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n ConnectorLimitsFromJSON(jsonValue),\n );\n }\n\n /**\n * Available and used resources of a connector.\n */\n async connectorLimits(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<ConnectorLimits> {\n const response = await this.connectorLimitsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n * Creates an asset using the uploaded file as data source.\n * Create an asset from an uploaded file.\n */\n async fileUploadCreateAssetRaw(\n requestParameters: FileUploadCreateAssetRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<void>> {\n if (\n requestParameters.blobId === null ||\n requestParameters.blobId === undefined\n ) {\n throw new runtime.RequiredError(\n 'blobId',\n 'Required parameter requestParameters.blobId was null or undefined when calling fileUploadCreateAsset.',\n );\n }\n\n if (\n requestParameters.uiAssetCreateRequest === null ||\n requestParameters.uiAssetCreateRequest === undefined\n ) {\n throw new runtime.RequiredError(\n 'uiAssetCreateRequest',\n 'Required parameter requestParameters.uiAssetCreateRequest was null or undefined when calling fileUploadCreateAsset.',\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request(\n {\n path: `/wrapper/ee/file-upload/blobs/{blobId}/asset`.replace(\n `{${'blobId'}}`,\n encodeURIComponent(String(requestParameters.blobId)),\n ),\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: UiAssetCreateRequestToJSON(\n requestParameters.uiAssetCreateRequest,\n ),\n },\n initOverrides,\n );\n\n return new runtime.VoidApiResponse(response);\n }\n\n /**\n * Creates an asset using the uploaded file as data source.\n * Create an asset from an uploaded file.\n */\n async fileUploadCreateAsset(\n requestParameters: FileUploadCreateAssetRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<void> {\n await this.fileUploadCreateAssetRaw(requestParameters, initOverrides);\n }\n\n /**\n * Requests a Blob URL with a SAS Token so that the UI can directly upload the file to the Azure Blob Storage. Returns the Blob ID / Token.\n * Requests a Blob for file upload.\n */\n async fileUploadRequestSasTokenRaw(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<string>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ee/file-upload/blobs`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n if (this.isJsonMime(response.headers.get('content-type'))) {\n return new runtime.JSONApiResponse<string>(response);\n } else {\n return new runtime.TextApiResponse(response) as any;\n }\n }\n\n /**\n * Requests a Blob URL with a SAS Token so that the UI can directly upload the file to the Azure Blob Storage. Returns the Blob ID / Token.\n * Requests a Blob for file upload.\n */\n async fileUploadRequestSasToken(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<string> {\n const response = await this.fileUploadRequestSasTokenRaw(initOverrides);\n return await response.value();\n }\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport type {\n AssetPage,\n ContractAgreementPage,\n ContractDefinitionPage,\n ContractDefinitionRequest,\n ContractNegotiationRequest,\n DashboardPage,\n IdResponseDto,\n InitiateCustomTransferRequest,\n InitiateTransferRequest,\n PolicyDefinitionCreateRequest,\n PolicyDefinitionPage,\n TransferHistoryPage,\n UiAsset,\n UiAssetCreateRequest,\n UiAssetEditMetadataRequest,\n UiContractNegotiation,\n UiDataOffer,\n} from '../models';\nimport {\n AssetPageFromJSON,\n AssetPageToJSON,\n ContractAgreementPageFromJSON,\n ContractAgreementPageToJSON,\n ContractDefinitionPageFromJSON,\n ContractDefinitionPageToJSON,\n ContractDefinitionRequestFromJSON,\n ContractDefinitionRequestToJSON,\n ContractNegotiationRequestFromJSON,\n ContractNegotiationRequestToJSON,\n DashboardPageFromJSON,\n DashboardPageToJSON,\n IdResponseDtoFromJSON,\n IdResponseDtoToJSON,\n InitiateCustomTransferRequestFromJSON,\n InitiateCustomTransferRequestToJSON,\n InitiateTransferRequestFromJSON,\n InitiateTransferRequestToJSON,\n PolicyDefinitionCreateRequestFromJSON,\n PolicyDefinitionCreateRequestToJSON,\n PolicyDefinitionPageFromJSON,\n PolicyDefinitionPageToJSON,\n TransferHistoryPageFromJSON,\n TransferHistoryPageToJSON,\n UiAssetCreateRequestFromJSON,\n UiAssetCreateRequestToJSON,\n UiAssetEditMetadataRequestFromJSON,\n UiAssetEditMetadataRequestToJSON,\n UiAssetFromJSON,\n UiAssetToJSON,\n UiContractNegotiationFromJSON,\n UiContractNegotiationToJSON,\n UiDataOfferFromJSON,\n UiDataOfferToJSON,\n} from '../models';\nimport * as runtime from '../runtime';\n\nexport interface CreateAssetRequest {\n uiAssetCreateRequest?: UiAssetCreateRequest;\n}\n\nexport interface CreateContractDefinitionRequest {\n contractDefinitionRequest?: ContractDefinitionRequest;\n}\n\nexport interface CreatePolicyDefinitionRequest {\n policyDefinitionCreateRequest?: PolicyDefinitionCreateRequest;\n}\n\nexport interface DeleteAssetRequest {\n assetId: string;\n}\n\nexport interface DeleteContractDefinitionRequest {\n contractDefinitionId: string;\n}\n\nexport interface DeletePolicyDefinitionRequest {\n policyId: string;\n}\n\nexport interface EditAssetMetadataRequest {\n assetId: string;\n uiAssetEditMetadataRequest?: UiAssetEditMetadataRequest;\n}\n\nexport interface GetCatalogPageDataOffersRequest {\n connectorEndpoint?: string;\n}\n\nexport interface GetContractNegotiationRequest {\n contractNegotiationId: string;\n}\n\nexport interface GetTransferProcessAssetRequest {\n transferProcessId: string;\n}\n\nexport interface InitiateContractNegotiationRequest {\n contractNegotiationRequest?: ContractNegotiationRequest;\n}\n\nexport interface InitiateCustomTransferOperationRequest {\n initiateCustomTransferRequest?: InitiateCustomTransferRequest;\n}\n\nexport interface InitiateTransferOperationRequest {\n initiateTransferRequest?: InitiateTransferRequest;\n}\n\n/**\n *\n */\nexport class UIApi extends runtime.BaseAPI {\n /**\n * Create a new Asset\n */\n async createAssetRaw(\n requestParameters: CreateAssetRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<IdResponseDto>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/asset-page/assets`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: UiAssetCreateRequestToJSON(\n requestParameters.uiAssetCreateRequest,\n ),\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n IdResponseDtoFromJSON(jsonValue),\n );\n }\n\n /**\n * Create a new Asset\n */\n async createAsset(\n requestParameters: CreateAssetRequest = {},\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<IdResponseDto> {\n const response = await this.createAssetRaw(\n requestParameters,\n initOverrides,\n );\n return await response.value();\n }\n\n /**\n * Create a new Contract Definition\n */\n async createContractDefinitionRaw(\n requestParameters: CreateContractDefinitionRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<IdResponseDto>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/contract-definition-page/contract-definitions`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContractDefinitionRequestToJSON(\n requestParameters.contractDefinitionRequest,\n ),\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n IdResponseDtoFromJSON(jsonValue),\n );\n }\n\n /**\n * Create a new Contract Definition\n */\n async createContractDefinition(\n requestParameters: CreateContractDefinitionRequest = {},\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<IdResponseDto> {\n const response = await this.createContractDefinitionRaw(\n requestParameters,\n initOverrides,\n );\n return await response.value();\n }\n\n /**\n * Create a new Policy Definition\n */\n async createPolicyDefinitionRaw(\n requestParameters: CreatePolicyDefinitionRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<IdResponseDto>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/policy-page/policy-definitions`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: PolicyDefinitionCreateRequestToJSON(\n requestParameters.policyDefinitionCreateRequest,\n ),\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n IdResponseDtoFromJSON(jsonValue),\n );\n }\n\n /**\n * Create a new Policy Definition\n */\n async createPolicyDefinition(\n requestParameters: CreatePolicyDefinitionRequest = {},\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<IdResponseDto> {\n const response = await this.createPolicyDefinitionRaw(\n requestParameters,\n initOverrides,\n );\n return await response.value();\n }\n\n /**\n * Delete an Asset\n */\n async deleteAssetRaw(\n requestParameters: DeleteAssetRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<IdResponseDto>> {\n if (\n requestParameters.assetId === null ||\n requestParameters.assetId === undefined\n ) {\n throw new runtime.RequiredError(\n 'assetId',\n 'Required parameter requestParameters.assetId was null or undefined when calling deleteAsset.',\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/asset-page/assets/{assetId}`.replace(\n `{${'assetId'}}`,\n encodeURIComponent(String(requestParameters.assetId)),\n ),\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n IdResponseDtoFromJSON(jsonValue),\n );\n }\n\n /**\n * Delete an Asset\n */\n async deleteAsset(\n requestParameters: DeleteAssetRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<IdResponseDto> {\n const response = await this.deleteAssetRaw(\n requestParameters,\n initOverrides,\n );\n return await response.value();\n }\n\n /**\n * Delete a Contract Definition\n */\n async deleteContractDefinitionRaw(\n requestParameters: DeleteContractDefinitionRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<IdResponseDto>> {\n if (\n requestParameters.contractDefinitionId === null ||\n requestParameters.contractDefinitionId === undefined\n ) {\n throw new runtime.RequiredError(\n 'contractDefinitionId',\n 'Required parameter requestParameters.contractDefinitionId was null or undefined when calling deleteContractDefinition.',\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/contract-definition-page/contract-definitions/{contractDefinitionId}`.replace(\n `{${'contractDefinitionId'}}`,\n encodeURIComponent(\n String(requestParameters.contractDefinitionId),\n ),\n ),\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n IdResponseDtoFromJSON(jsonValue),\n );\n }\n\n /**\n * Delete a Contract Definition\n */\n async deleteContractDefinition(\n requestParameters: DeleteContractDefinitionRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<IdResponseDto> {\n const response = await this.deleteContractDefinitionRaw(\n requestParameters,\n initOverrides,\n );\n return await response.value();\n }\n\n /**\n * Delete a Policy Definition\n */\n async deletePolicyDefinitionRaw(\n requestParameters: DeletePolicyDefinitionRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<IdResponseDto>> {\n if (\n requestParameters.policyId === null ||\n requestParameters.policyId === undefined\n ) {\n throw new runtime.RequiredError(\n 'policyId',\n 'Required parameter requestParameters.policyId was null or undefined when calling deletePolicyDefinition.',\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/policy-page/policy-definitions/{policyId}`.replace(\n `{${'policyId'}}`,\n encodeURIComponent(String(requestParameters.policyId)),\n ),\n method: 'DELETE',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n IdResponseDtoFromJSON(jsonValue),\n );\n }\n\n /**\n * Delete a Policy Definition\n */\n async deletePolicyDefinition(\n requestParameters: DeletePolicyDefinitionRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<IdResponseDto> {\n const response = await this.deletePolicyDefinitionRaw(\n requestParameters,\n initOverrides,\n );\n return await response.value();\n }\n\n /**\n * Updates an Asset\\'s metadata\n */\n async editAssetMetadataRaw(\n requestParameters: EditAssetMetadataRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<IdResponseDto>> {\n if (\n requestParameters.assetId === null ||\n requestParameters.assetId === undefined\n ) {\n throw new runtime.RequiredError(\n 'assetId',\n 'Required parameter requestParameters.assetId was null or undefined when calling editAssetMetadata.',\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/asset-page/assets/{assetId}/metadata`.replace(\n `{${'assetId'}}`,\n encodeURIComponent(String(requestParameters.assetId)),\n ),\n method: 'PUT',\n headers: headerParameters,\n query: queryParameters,\n body: UiAssetEditMetadataRequestToJSON(\n requestParameters.uiAssetEditMetadataRequest,\n ),\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n IdResponseDtoFromJSON(jsonValue),\n );\n }\n\n /**\n * Updates an Asset\\'s metadata\n */\n async editAssetMetadata(\n requestParameters: EditAssetMetadataRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<IdResponseDto> {\n const response = await this.editAssetMetadataRaw(\n requestParameters,\n initOverrides,\n );\n return await response.value();\n }\n\n /**\n * Collect all data for Asset Page\n */\n async getAssetPageRaw(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<AssetPage>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/asset-page`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n AssetPageFromJSON(jsonValue),\n );\n }\n\n /**\n * Collect all data for Asset Page\n */\n async getAssetPage(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<AssetPage> {\n const response = await this.getAssetPageRaw(initOverrides);\n return await response.value();\n }\n\n /**\n * Fetch a connector\\'s data offers\n */\n async getCatalogPageDataOffersRaw(\n requestParameters: GetCatalogPageDataOffersRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<Array<UiDataOffer>>> {\n const queryParameters: any = {};\n\n if (requestParameters.connectorEndpoint !== undefined) {\n queryParameters['connectorEndpoint'] =\n requestParameters.connectorEndpoint;\n }\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/catalog-page/data-offers`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n jsonValue.map(UiDataOfferFromJSON),\n );\n }\n\n /**\n * Fetch a connector\\'s data offers\n */\n async getCatalogPageDataOffers(\n requestParameters: GetCatalogPageDataOffersRequest = {},\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<Array<UiDataOffer>> {\n const response = await this.getCatalogPageDataOffersRaw(\n requestParameters,\n initOverrides,\n );\n return await response.value();\n }\n\n /**\n * Collect all data for the Contract Agreement Page\n */\n async getContractAgreementPageRaw(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<ContractAgreementPage>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/contract-agreement-page`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n ContractAgreementPageFromJSON(jsonValue),\n );\n }\n\n /**\n * Collect all data for the Contract Agreement Page\n */\n async getContractAgreementPage(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<ContractAgreementPage> {\n const response = await this.getContractAgreementPageRaw(initOverrides);\n return await response.value();\n }\n\n /**\n * Collect all data for Contract Definition Page\n */\n async getContractDefinitionPageRaw(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<ContractDefinitionPage>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/contract-definition-page`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n ContractDefinitionPageFromJSON(jsonValue),\n );\n }\n\n /**\n * Collect all data for Contract Definition Page\n */\n async getContractDefinitionPage(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<ContractDefinitionPage> {\n const response = await this.getContractDefinitionPageRaw(initOverrides);\n return await response.value();\n }\n\n /**\n * Get Contract Negotiation Information\n */\n async getContractNegotiationRaw(\n requestParameters: GetContractNegotiationRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<UiContractNegotiation>> {\n if (\n requestParameters.contractNegotiationId === null ||\n requestParameters.contractNegotiationId === undefined\n ) {\n throw new runtime.RequiredError(\n 'contractNegotiationId',\n 'Required parameter requestParameters.contractNegotiationId was null or undefined when calling getContractNegotiation.',\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/catalog-page/contract-negotiations/{contractNegotiationId}`.replace(\n `{${'contractNegotiationId'}}`,\n encodeURIComponent(\n String(requestParameters.contractNegotiationId),\n ),\n ),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n UiContractNegotiationFromJSON(jsonValue),\n );\n }\n\n /**\n * Get Contract Negotiation Information\n */\n async getContractNegotiation(\n requestParameters: GetContractNegotiationRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<UiContractNegotiation> {\n const response = await this.getContractNegotiationRaw(\n requestParameters,\n initOverrides,\n );\n return await response.value();\n }\n\n /**\n * Collect all data for the Dashboard Page\n */\n async getDashboardPageRaw(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<DashboardPage>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/dashboard-page`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n DashboardPageFromJSON(jsonValue),\n );\n }\n\n /**\n * Collect all data for the Dashboard Page\n */\n async getDashboardPage(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<DashboardPage> {\n const response = await this.getDashboardPageRaw(initOverrides);\n return await response.value();\n }\n\n /**\n * Collect all data for Policy Definition Page\n */\n async getPolicyDefinitionPageRaw(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<PolicyDefinitionPage>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/policy-page`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n PolicyDefinitionPageFromJSON(jsonValue),\n );\n }\n\n /**\n * Collect all data for Policy Definition Page\n */\n async getPolicyDefinitionPage(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<PolicyDefinitionPage> {\n const response = await this.getPolicyDefinitionPageRaw(initOverrides);\n return await response.value();\n }\n\n /**\n * Collect all data for the Transfer History Page\n */\n async getTransferHistoryPageRaw(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<TransferHistoryPage>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/transfer-history-page`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n TransferHistoryPageFromJSON(jsonValue),\n );\n }\n\n /**\n * Collect all data for the Transfer History Page\n */\n async getTransferHistoryPage(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<TransferHistoryPage> {\n const response = await this.getTransferHistoryPageRaw(initOverrides);\n return await response.value();\n }\n\n /**\n * Queries a transfer process\\' asset\n */\n async getTransferProcessAssetRaw(\n requestParameters: GetTransferProcessAssetRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<UiAsset>> {\n if (\n requestParameters.transferProcessId === null ||\n requestParameters.transferProcessId === undefined\n ) {\n throw new runtime.RequiredError(\n 'transferProcessId',\n 'Required parameter requestParameters.transferProcessId was null or undefined when calling getTransferProcessAsset.',\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/transfer-history-page/transfer-processes/{transferProcessId}/asset`.replace(\n `{${'transferProcessId'}}`,\n encodeURIComponent(\n String(requestParameters.transferProcessId),\n ),\n ),\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n UiAssetFromJSON(jsonValue),\n );\n }\n\n /**\n * Queries a transfer process\\' asset\n */\n async getTransferProcessAsset(\n requestParameters: GetTransferProcessAssetRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<UiAsset> {\n const response = await this.getTransferProcessAssetRaw(\n requestParameters,\n initOverrides,\n );\n return await response.value();\n }\n\n /**\n * Initiate a new Contract Negotiation\n */\n async initiateContractNegotiationRaw(\n requestParameters: InitiateContractNegotiationRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<UiContractNegotiation>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/catalog-page/contract-negotiations`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: ContractNegotiationRequestToJSON(\n requestParameters.contractNegotiationRequest,\n ),\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n UiContractNegotiationFromJSON(jsonValue),\n );\n }\n\n /**\n * Initiate a new Contract Negotiation\n */\n async initiateContractNegotiation(\n requestParameters: InitiateContractNegotiationRequest = {},\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<UiContractNegotiation> {\n const response = await this.initiateContractNegotiationRaw(\n requestParameters,\n initOverrides,\n );\n return await response.value();\n }\n\n /**\n * Initiate a Transfer Process via a custom Transfer Process JSON-LD. Fields such as connectorId, assetId, providerConnectorId, providerConnectorAddress will be set automatically.\n */\n async initiateCustomTransferRaw(\n requestParameters: InitiateCustomTransferOperationRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<IdResponseDto>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/contract-agreement-page/transfers/custom`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: InitiateCustomTransferRequestToJSON(\n requestParameters.initiateCustomTransferRequest,\n ),\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n IdResponseDtoFromJSON(jsonValue),\n );\n }\n\n /**\n * Initiate a Transfer Process via a custom Transfer Process JSON-LD. Fields such as connectorId, assetId, providerConnectorId, providerConnectorAddress will be set automatically.\n */\n async initiateCustomTransfer(\n requestParameters: InitiateCustomTransferOperationRequest = {},\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<IdResponseDto> {\n const response = await this.initiateCustomTransferRaw(\n requestParameters,\n initOverrides,\n );\n return await response.value();\n }\n\n /**\n * Initiate a Transfer Process\n */\n async initiateTransferRaw(\n requestParameters: InitiateTransferOperationRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<IdResponseDto>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request(\n {\n path: `/wrapper/ui/pages/contract-agreement-page/transfers`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: InitiateTransferRequestToJSON(\n requestParameters.initiateTransferRequest,\n ),\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n IdResponseDtoFromJSON(jsonValue),\n );\n }\n\n /**\n * Initiate a Transfer Process\n */\n async initiateTransfer(\n requestParameters: InitiateTransferOperationRequest = {},\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<IdResponseDto> {\n const response = await this.initiateTransferRaw(\n requestParameters,\n initOverrides,\n );\n return await response.value();\n }\n}\n","/* tslint:disable */\n\n/* eslint-disable */\n\n/**\n * sovity EDC API Wrapper\n * sovity\\'s EDC API Wrapper contains a selection of APIs for multiple consumers, e.g. our EDC UI API, our generic Use Case API, our Commercial APIs, etc. We bundled these APIs, so we can have an easier time generating our API Client Libraries.\n *\n * The version of the OpenAPI document: 0.0.0\n * Contact: contact@sovity.de\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport type {CatalogQuery, KpiResult, UiDataOffer} from '../models';\nimport {\n CatalogQueryFromJSON,\n CatalogQueryToJSON,\n KpiResultFromJSON,\n KpiResultToJSON,\n UiDataOfferFromJSON,\n UiDataOfferToJSON,\n} from '../models';\nimport * as runtime from '../runtime';\n\nexport interface QueryCatalogRequest {\n catalogQuery: CatalogQuery;\n}\n\n/**\n *\n */\nexport class UseCaseApi extends runtime.BaseAPI {\n /**\n * Basic KPIs about the running EDC Connector.\n */\n async getKpisRaw(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<KpiResult>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/use-case-api/kpis`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n KpiResultFromJSON(jsonValue),\n );\n }\n\n /**\n * Basic KPIs about the running EDC Connector.\n */\n async getKpis(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<KpiResult> {\n const response = await this.getKpisRaw(initOverrides);\n return await response.value();\n }\n\n /**\n * List available functions in policies, prohibitions and obligations.\n */\n async getSupportedFunctionsRaw(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<Array<string>>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n const response = await this.request(\n {\n path: `/wrapper/use-case-api/supported-policy-functions`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse<any>(response);\n }\n\n /**\n * List available functions in policies, prohibitions and obligations.\n */\n async getSupportedFunctions(\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<Array<string>> {\n const response = await this.getSupportedFunctionsRaw(initOverrides);\n return await response.value();\n }\n\n /**\n * Fetch a connector\\'s data offers\n */\n async queryCatalogRaw(\n requestParameters: QueryCatalogRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<runtime.ApiResponse<Array<UiDataOffer>>> {\n if (\n requestParameters.catalogQuery === null ||\n requestParameters.catalogQuery === undefined\n ) {\n throw new runtime.RequiredError(\n 'catalogQuery',\n 'Required parameter requestParameters.catalogQuery was null or undefined when calling queryCatalog.',\n );\n }\n\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request(\n {\n path: `/wrapper/use-case-api/catalog`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: CatalogQueryToJSON(requestParameters.catalogQuery),\n },\n initOverrides,\n );\n\n return new runtime.JSONApiResponse(response, (jsonValue) =>\n jsonValue.map(UiDataOfferFromJSON),\n );\n }\n\n /**\n * Fetch a connector\\'s data offers\n */\n async queryCatalog(\n requestParameters: QueryCatalogRequest,\n initOverrides?: RequestInit | runtime.InitOverrideFunction,\n ): Promise<Array<UiDataOffer>> {\n const response = await this.queryCatalogRaw(\n requestParameters,\n initOverrides,\n );\n return await response.value();\n }\n}\n","var util;\n(function (util) {\n util.assertEqual = (val) => val;\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array\n .map((val) => (typeof val === \"string\" ? `'${val}'` : val))\n .join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nvar objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nconst ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nconst getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then &&\n typeof data.then === \"function\" &&\n data.catch &&\n typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n\nconst ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nconst quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nclass ZodError extends Error {\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n get errors() {\n return this.issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `smaller than or equal to`\n : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\n\nlet overrideErrorMap = errorMap;\nfunction setErrorMap(map) {\n overrideErrorMap = map;\n}\nfunction getErrorMap() {\n return overrideErrorMap;\n}\n\nconst makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message || errorMessage,\n };\n};\nconst EMPTY_PATH = [];\nfunction addIssueToContext(ctx, issueData) {\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nclass ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n syncPairs.push({\n key: await pair.key,\n value: await pair.value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" &&\n (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nconst INVALID = Object.freeze({\n status: \"aborted\",\n});\nconst DIRTY = (value) => ({ status: \"dirty\", value });\nconst OK = (value) => ({ status: \"valid\", value });\nconst isAborted = (x) => x.status === \"aborted\";\nconst isDirty = (x) => x.status === \"dirty\";\nconst isValid = (x) => x.status === \"valid\";\nconst isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n\nvar errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message === null || message === void 0 ? void 0 : message.message;\n})(errorUtil || (errorUtil = {}));\n\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (this._key instanceof Array) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n if (typeof ctx.data === \"undefined\") {\n return { message: required_error !== null && required_error !== void 0 ? required_error : ctx.defaultError };\n }\n return { message: invalid_type_error !== null && invalid_type_error !== void 0 ? invalid_type_error : ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nclass ZodType {\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n }\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n var _a;\n const ctx = {\n common: {\n issues: [],\n async: (_a = params === null || params === void 0 ? void 0 : params.async) !== null && _a !== void 0 ? _a : false,\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n async: true,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult)\n ? maybeAsyncResult\n : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\"\n ? refinementData(val, ctx)\n : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this, this._def);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[a-z][a-z0-9]*$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_+-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\nconst ipv4Regex = /^(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))$/;\nconst ipv6Regex = /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\n// Adapted from https://stackoverflow.com/a/3143231\nconst datetimeRegex = (args) => {\n if (args.precision) {\n if (args.offset) {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}\\\\.\\\\d{${args.precision}}(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$`);\n }\n else {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}\\\\.\\\\d{${args.precision}}Z$`);\n }\n }\n else if (args.precision === 0) {\n if (args.offset) {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$`);\n }\n else {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}Z$`);\n }\n }\n else {\n if (args.offset) {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d+)?(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$`);\n }\n else {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d+)?Z$`);\n }\n }\n};\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nclass ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n }\n //\n );\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch (_a) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n var _a;\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === \"undefined\" ? null : options === null || options === void 0 ? void 0 : options.precision,\n offset: (_a = options === null || options === void 0 ? void 0 : options.offset) !== null && _a !== void 0 ? _a : false,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options === null || options === void 0 ? void 0 : options.position,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * @deprecated Use z.string().min(1) instead.\n * @see {@link ZodString.min}\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n var _a;\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / Math.pow(10, decCount);\n}\nclass ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" ||\n (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null, min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" ||\n ch.kind === \"int\" ||\n ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = BigInt(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n var _a;\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\nclass ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nclass ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nclass ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nclass ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nclass ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nclass ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nclass ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nclass ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nclass ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nclass ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<T, Augmentation>,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n return (this._cached = { shape, keys });\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever &&\n this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") ;\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n syncPairs.push({\n key,\n value: await pair.value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n var _a, _b, _c, _d;\n const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: (_d = errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n util.objectKeys(mask).forEach((key) => {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nclass ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return Object.keys(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else {\n return null;\n }\n};\nclass ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util\n .objectKeys(a)\n .filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date &&\n bType === ZodParsedType.date &&\n +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nclass ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\nclass ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nclass ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nclass ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nclass ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nclass ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args\n .parseAsync(args, params)\n .catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args\n ? args\n : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nclass ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nclass ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nclass ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (this._def.values.indexOf(input.data) === -1) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values) {\n return ZodEnum.create(values);\n }\n exclude(values) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)));\n }\n}\nZodEnum.create = createZodEnum;\nclass ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string &&\n ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (nativeEnumValues.indexOf(input.data) === -1) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nclass ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise &&\n ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise\n ? ctx.data\n : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nclass ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.issues.length) {\n return {\n status: \"dirty\",\n value: ctx.data,\n };\n }\n if (ctx.common.async) {\n return Promise.resolve(processed).then((processed) => {\n return this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n });\n }\n else {\n return this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc\n // effect: RefinementEffect<any>\n ) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return base;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((base) => {\n if (!isValid(base))\n return base;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nclass ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nclass ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nclass ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\"\n ? params.default\n : () => params.default,\n ...processCreateParams(params),\n });\n};\nclass ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nclass ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nconst BRAND = Symbol(\"zod_brand\");\nclass ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nclass ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nclass ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n if (isValid(result)) {\n result.value = Object.freeze(result.value);\n }\n return result;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\nconst custom = (check, params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) => {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n var _a, _b;\n if (!check(data)) {\n const p = typeof params === \"function\"\n ? params(data)\n : typeof params === \"string\"\n ? { message: params }\n : params;\n const _fatal = (_b = (_a = p.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n ctx.addIssue({ code: \"custom\", ...p2, fatal: _fatal });\n }\n });\n return ZodAny.create();\n};\nconst late = {\n object: ZodObject.lazycreate,\n};\nvar ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\nconst instanceOfType = (\n// const instanceOfType = <T extends new (...args: any[]) => any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nconst coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nconst NEVER = INVALID;\n\nvar z = /*#__PURE__*/Object.freeze({\n __proto__: null,\n defaultErrorMap: errorMap,\n setErrorMap: setErrorMap,\n getErrorMap: getErrorMap,\n makeIssue: makeIssue,\n EMPTY_PATH: EMPTY_PATH,\n addIssueToContext: addIssueToContext,\n ParseStatus: ParseStatus,\n INVALID: INVALID,\n DIRTY: DIRTY,\n OK: OK,\n isAborted: isAborted,\n isDirty: isDirty,\n isValid: isValid,\n isAsync: isAsync,\n get util () { return util; },\n get objectUtil () { return objectUtil; },\n ZodParsedType: ZodParsedType,\n getParsedType: getParsedType,\n ZodType: ZodType,\n ZodString: ZodString,\n ZodNumber: ZodNumber,\n ZodBigInt: ZodBigInt,\n ZodBoolean: ZodBoolean,\n ZodDate: ZodDate,\n ZodSymbol: ZodSymbol,\n ZodUndefined: ZodUndefined,\n ZodNull: ZodNull,\n ZodAny: ZodAny,\n ZodUnknown: ZodUnknown,\n ZodNever: ZodNever,\n ZodVoid: ZodVoid,\n ZodArray: ZodArray,\n ZodObject: ZodObject,\n ZodUnion: ZodUnion,\n ZodDiscriminatedUnion: ZodDiscriminatedUnion,\n ZodIntersection: ZodIntersection,\n ZodTuple: ZodTuple,\n ZodRecord: ZodRecord,\n ZodMap: ZodMap,\n ZodSet: ZodSet,\n ZodFunction: ZodFunction,\n ZodLazy: ZodLazy,\n ZodLiteral: ZodLiteral,\n ZodEnum: ZodEnum,\n ZodNativeEnum: ZodNativeEnum,\n ZodPromise: ZodPromise,\n ZodEffects: ZodEffects,\n ZodTransformer: ZodEffects,\n ZodOptional: ZodOptional,\n ZodNullable: ZodNullable,\n ZodDefault: ZodDefault,\n ZodCatch: ZodCatch,\n ZodNaN: ZodNaN,\n BRAND: BRAND,\n ZodBranded: ZodBranded,\n ZodPipeline: ZodPipeline,\n ZodReadonly: ZodReadonly,\n custom: custom,\n Schema: ZodType,\n ZodSchema: ZodType,\n late: late,\n get ZodFirstPartyTypeKind () { return ZodFirstPartyTypeKind; },\n coerce: coerce,\n any: anyType,\n array: arrayType,\n bigint: bigIntType,\n boolean: booleanType,\n date: dateType,\n discriminatedUnion: discriminatedUnionType,\n effect: effectsType,\n 'enum': enumType,\n 'function': functionType,\n 'instanceof': instanceOfType,\n intersection: intersectionType,\n lazy: lazyType,\n literal: literalType,\n map: mapType,\n nan: nanType,\n nativeEnum: nativeEnumType,\n never: neverType,\n 'null': nullType,\n nullable: nullableType,\n number: numberType,\n object: objectType,\n oboolean: oboolean,\n onumber: onumber,\n optional: optionalType,\n ostring: ostring,\n pipeline: pipelineType,\n preprocess: preprocessType,\n promise: promiseType,\n record: recordType,\n set: setType,\n strictObject: strictObjectType,\n string: stringType,\n symbol: symbolType,\n transformer: effectsType,\n tuple: tupleType,\n 'undefined': undefinedType,\n union: unionType,\n unknown: unknownType,\n 'void': voidType,\n NEVER: NEVER,\n ZodIssueCode: ZodIssueCode,\n quotelessJson: quotelessJson,\n ZodError: ZodError\n});\n\nexport { BRAND, DIRTY, EMPTY_PATH, INVALID, NEVER, OK, ParseStatus, ZodType as Schema, ZodAny, ZodArray, ZodBigInt, ZodBoolean, ZodBranded, ZodCatch, ZodDate, ZodDefault, ZodDiscriminatedUnion, ZodEffects, ZodEnum, ZodError, ZodFirstPartyTypeKind, ZodFunction, ZodIntersection, ZodIssueCode, ZodLazy, ZodLiteral, ZodMap, ZodNaN, ZodNativeEnum, ZodNever, ZodNull, ZodNullable, ZodNumber, ZodObject, ZodOptional, ZodParsedType, ZodPipeline, ZodPromise, ZodReadonly, ZodRecord, ZodType as ZodSchema, ZodSet, ZodString, ZodSymbol, ZodEffects as ZodTransformer, ZodTuple, ZodType, ZodUndefined, ZodUnion, ZodUnknown, ZodVoid, addIssueToContext, anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, coerce, custom, dateType as date, z as default, errorMap as defaultErrorMap, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, getErrorMap, getParsedType, instanceOfType as instanceof, intersectionType as intersection, isAborted, isAsync, isDirty, isValid, late, lazyType as lazy, literalType as literal, makeIssue, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, objectUtil, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, quotelessJson, recordType as record, setType as set, setErrorMap, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, util, voidType as void, z };\n","/**\n * Checks if the given HTTP status code is either 401 (Unauthorized) or 403 (Forbidden).\n * @param httpStatus\n */\nexport function needsAuthentication(httpStatus: number) {\n return httpStatus === 401 || httpStatus === 403;\n}\n\nexport function createUrlEncodedParamsString(obj: Record<string, string>) {\n return Object.entries(obj)\n .map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`)\n .join('&');\n}\n","import {z} from 'zod';\nimport {ClientCredentials} from '../model/ClientCredentials';\nimport {createUrlEncodedParamsString} from './HttpUtils';\n\nconst ClientCredentialsResponseSchema = z.object({\n access_token: z.string().min(1),\n token_type: z.string(),\n expires_in: z.number(),\n scope: z.string(),\n});\nexport type ClientCredentialsResponse = z.infer<\n typeof ClientCredentialsResponseSchema\n>;\n\nexport async function fetchClientCredentials(\n clientCredentials: ClientCredentials,\n): Promise<ClientCredentialsResponse> {\n let response = await fetch(clientCredentials.tokenUrl, {\n method: 'POST',\n body: createUrlEncodedParamsString({\n grant_type: 'client_credentials',\n client_id: clientCredentials.clientId,\n client_secret: clientCredentials.clientSecret,\n }),\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n });\n let json: unknown = await response.json();\n return parseTokenResponse(json);\n}\n\nfunction parseTokenResponse(json: unknown): ClientCredentialsResponse {\n const tokenResponseParsed = ClientCredentialsResponseSchema.safeParse(json);\n if (!tokenResponseParsed.success) {\n throw new Error('Bad access token response');\n }\n return tokenResponseParsed.data;\n}\n","import {ClientCredentials} from './model/ClientCredentials';\nimport {\n ClientCredentialsResponse,\n fetchClientCredentials,\n} from './utils/FetchUtils';\n\nexport class AccessTokenService {\n private activeRequest: Promise<ClientCredentialsResponse> | null = null;\n private refreshTimeout?: NodeJS.Timeout;\n private accessToken: string | null = null;\n\n constructor(private clientCredentials: ClientCredentials) {}\n\n async getAccessToken(): Promise<string> {\n if (!this.accessToken) {\n return await this.refreshAccessToken();\n }\n return this.accessToken;\n }\n\n /**\n * Synchronized refreshing of the access token\n */\n async refreshAccessToken(): Promise<string> {\n if (this.activeRequest) {\n await this.activeRequest;\n return this.accessToken!;\n }\n\n this.accessToken = null;\n this.activeRequest = fetchClientCredentials(this.clientCredentials);\n const response = await this.activeRequest;\n this.scheduleNextRefresh(response);\n this.accessToken = response.access_token;\n this.activeRequest = null;\n\n return this.accessToken;\n }\n\n private scheduleNextRefresh(response: ClientCredentialsResponse) {\n clearTimeout(this.refreshTimeout);\n const ms = (response.expires_in - 2) * 1000;\n this.refreshTimeout = setTimeout(() => {\n this.accessToken = null;\n }, ms);\n }\n}\n","export function injectAccessTokenHeader(init: RequestInit, token: string) {\n init.headers = withHeader('Authorization', `Bearer ${token}`, init.headers);\n}\n\nfunction withHeader(\n headerName: string,\n headerValue: string,\n headers?: HeadersInit,\n): HeadersInit {\n if (!headers) {\n headers = {};\n headers[headerName] = headerValue;\n return headers;\n }\n\n if (Array.isArray(headers)) {\n return headers.map(([a, b]) =>\n a !== headerName ? [a, b] : [headerName, headerValue],\n );\n }\n\n if (isHeaders(headers)) {\n if (headers.has(headerName)) {\n headers.set(headerName, headerValue);\n } else {\n headers.append(headerName, headerValue);\n }\n return headers;\n }\n\n headers[headerName] = headerValue;\n return headers;\n}\n\nfunction isHeaders(object: any): object is Headers {\n return (\n 'append' in object &&\n 'delete' in object &&\n 'get' in object &&\n 'has' in object &&\n 'set' in object &&\n 'forEach' in object\n );\n}\n","import {Middleware, RequestContext, ResponseContext} from '../generated';\nimport {AccessTokenService} from './AccessTokenService';\nimport {ClientCredentials} from './model/ClientCredentials';\nimport {needsAuthentication} from './utils/HttpUtils';\nimport {injectAccessTokenHeader} from './utils/RequestUtils';\n\nexport function buildOAuthMiddleware(\n clientCredentials: ClientCredentials,\n): Middleware {\n const accessTokenService = new AccessTokenService(clientCredentials);\n\n return {\n pre: async (ctx: RequestContext) => {\n const accessToken = await accessTokenService.getAccessToken();\n injectAccessTokenHeader(ctx.init, accessToken);\n\n return Promise.resolve({\n url: ctx.url,\n init: ctx.init,\n });\n },\n post: async (ctx: ResponseContext): Promise<Response> => {\n if (needsAuthentication(ctx.response.status)) {\n const accessToken =\n await accessTokenService.refreshAccessToken();\n injectAccessTokenHeader(ctx.init, accessToken);\n // Use normal fetch to not trigger middleware on retry\n return await fetch(ctx.url, ctx.init);\n }\n\n return Promise.resolve(ctx.response);\n },\n };\n}\n","import {\n Configuration,\n ConfigurationParameters,\n EnterpriseEditionApi,\n Middleware,\n UIApi,\n UseCaseApi,\n} from './generated';\nimport {buildOAuthMiddleware} from './oauth2/Middleware';\nimport {ClientCredentials} from './oauth2/model/ClientCredentials';\n\n/**\n * API Client for our sovity EDC\n */\nexport interface EdcClient {\n uiApi: UIApi;\n useCaseApi: UseCaseApi;\n enterpriseEditionApi: EnterpriseEditionApi;\n}\n\n/**\n * Configure & Build new EDC Client\n * @param opts opts\n */\nexport function buildEdcClient(opts: EdcClientOptions): EdcClient {\n let middleware: Middleware[] = [];\n let headers: Record<string, string> = {};\n\n if (opts.clientCredentials) {\n middleware.push(buildOAuthMiddleware(opts.clientCredentials));\n }\n if (opts.managementApiKey) {\n headers = buildApiKeyHeader(opts.managementApiKey);\n }\n\n const config = new Configuration({\n basePath: opts.managementApiUrl,\n headers,\n credentials: 'same-origin',\n middleware,\n ...opts.configOverrides,\n });\n\n return {\n uiApi: new UIApi(config),\n useCaseApi: new UseCaseApi(config),\n enterpriseEditionApi: new EnterpriseEditionApi(config),\n };\n}\n\nfunction buildApiKeyHeader(key: string) {\n return {\n 'X-Api-Key': key,\n };\n}\n\n/**\n * Options for instantiating an EDC API Client\n */\nexport interface EdcClientOptions {\n managementApiUrl: string;\n managementApiKey?: string;\n clientCredentials?: ClientCredentials;\n configOverrides?: Partial<ConfigurationParameters>;\n}\n"],"names":["BASE_PATH","Configuration","configuration","querystring","apiKey","accessToken","DefaultConfig","_BaseAPI","__publicField","url","init","fetchParams","middleware","response","e","FetchError","middlewares","next","preMiddlewares","pre","postMiddlewares","post","mime","context","initOverrides","ResponseError","headers","key","initOverrideFn","initParams","overriddenInit","isFormData","isBlob","constructor","BaseAPI","value","msg","cause","RequiredError","field","COLLECTION_FORMATS","exists","json","params","prefix","querystringSingleKey","part","keyPrefix","fullKey","multiValue","singleValue","valueAsArray","mapValues","data","fn","acc","canConsumeForm","consumes","consume","JSONApiResponse","raw","transformer","jsonValue","VoidApiResponse","BlobApiResponse","TextApiResponse","instanceOfUiAsset","isInstance","UiAssetFromJSON","UiAssetFromJSONTyped","ignoreDiscriminator","UiAssetToJSON","instanceOfAssetPage","AssetPageFromJSON","AssetPageFromJSONTyped","AssetPageToJSON","CatalogFilterExpressionLiteralType","CatalogFilterExpressionLiteralTypeFromJSON","CatalogFilterExpressionLiteralTypeFromJSONTyped","CatalogFilterExpressionLiteralTypeToJSON","instanceOfCatalogFilterExpressionLiteral","CatalogFilterExpressionLiteralFromJSON","CatalogFilterExpressionLiteralFromJSONTyped","CatalogFilterExpressionLiteralToJSON","CatalogFilterExpressionOperator","CatalogFilterExpressionOperatorFromJSON","CatalogFilterExpressionOperatorFromJSONTyped","CatalogFilterExpressionOperatorToJSON","instanceOfCatalogFilterExpression","CatalogFilterExpressionFromJSON","CatalogFilterExpressionFromJSONTyped","CatalogFilterExpressionToJSON","instanceOfCatalogQuery","CatalogQueryFromJSON","CatalogQueryFromJSONTyped","CatalogQueryToJSON","instanceOfConnectorLimits","ConnectorLimitsFromJSON","ConnectorLimitsFromJSONTyped","ConnectorLimitsToJSON","ContractAgreementDirection","ContractAgreementDirectionFromJSON","ContractAgreementDirectionFromJSONTyped","ContractAgreementDirectionToJSON","TransferProcessSimplifiedState","TransferProcessSimplifiedStateFromJSON","TransferProcessSimplifiedStateFromJSONTyped","TransferProcessSimplifiedStateToJSON","instanceOfTransferProcessState","TransferProcessStateFromJSON","TransferProcessStateFromJSONTyped","TransferProcessStateToJSON","instanceOfContractAgreementTransferProcess","ContractAgreementTransferProcessFromJSON","ContractAgreementTransferProcessFromJSONTyped","ContractAgreementTransferProcessToJSON","OperatorDto","OperatorDtoFromJSON","OperatorDtoFromJSONTyped","OperatorDtoToJSON","UiPolicyLiteralType","UiPolicyLiteralTypeFromJSON","UiPolicyLiteralTypeFromJSONTyped","UiPolicyLiteralTypeToJSON","instanceOfUiPolicyLiteral","UiPolicyLiteralFromJSON","UiPolicyLiteralFromJSONTyped","UiPolicyLiteralToJSON","instanceOfUiPolicyConstraint","UiPolicyConstraintFromJSON","UiPolicyConstraintFromJSONTyped","UiPolicyConstraintToJSON","instanceOfUiPolicy","UiPolicyFromJSON","UiPolicyFromJSONTyped","UiPolicyToJSON","instanceOfContractAgreementCard","ContractAgreementCardFromJSON","ContractAgreementCardFromJSONTyped","ContractAgreementCardToJSON","instanceOfContractAgreementPage","ContractAgreementPageFromJSON","ContractAgreementPageFromJSONTyped","ContractAgreementPageToJSON","UiCriterionLiteralType","UiCriterionLiteralTypeFromJSON","UiCriterionLiteralTypeFromJSONTyped","UiCriterionLiteralTypeToJSON","instanceOfUiCriterionLiteral","UiCriterionLiteralFromJSON","UiCriterionLiteralFromJSONTyped","UiCriterionLiteralToJSON","UiCriterionOperator","UiCriterionOperatorFromJSON","UiCriterionOperatorFromJSONTyped","UiCriterionOperatorToJSON","instanceOfUiCriterion","UiCriterionFromJSON","UiCriterionFromJSONTyped","UiCriterionToJSON","instanceOfContractDefinitionEntry","ContractDefinitionEntryFromJSON","ContractDefinitionEntryFromJSONTyped","ContractDefinitionEntryToJSON","instanceOfContractDefinitionPage","ContractDefinitionPageFromJSON","ContractDefinitionPageFromJSONTyped","ContractDefinitionPageToJSON","instanceOfContractDefinitionRequest","ContractDefinitionRequestFromJSON","ContractDefinitionRequestFromJSONTyped","ContractDefinitionRequestToJSON","instanceOfContractNegotiationRequest","ContractNegotiationRequestFromJSON","ContractNegotiationRequestFromJSONTyped","ContractNegotiationRequestToJSON","ContractNegotiationSimplifiedState","ContractNegotiationSimplifiedStateFromJSON","ContractNegotiationSimplifiedStateFromJSONTyped","ContractNegotiationSimplifiedStateToJSON","instanceOfContractNegotiationState","ContractNegotiationStateFromJSON","ContractNegotiationStateFromJSONTyped","ContractNegotiationStateToJSON","instanceOfDashboardDapsConfig","DashboardDapsConfigFromJSON","DashboardDapsConfigFromJSONTyped","DashboardDapsConfigToJSON","instanceOfDashboardMiwConfig","DashboardMiwConfigFromJSON","DashboardMiwConfigFromJSONTyped","DashboardMiwConfigToJSON","instanceOfDashboardTransferAmounts","DashboardTransferAmountsFromJSON","DashboardTransferAmountsFromJSONTyped","DashboardTransferAmountsToJSON","instanceOfDashboardPage","DashboardPageFromJSON","DashboardPageFromJSONTyped","DashboardPageToJSON","instanceOfIdResponseDto","IdResponseDtoFromJSON","IdResponseDtoFromJSONTyped","IdResponseDtoToJSON","instanceOfInitiateCustomTransferRequest","InitiateCustomTransferRequestFromJSON","InitiateCustomTransferRequestFromJSONTyped","InitiateCustomTransferRequestToJSON","instanceOfInitiateTransferRequest","InitiateTransferRequestFromJSON","InitiateTransferRequestFromJSONTyped","InitiateTransferRequestToJSON","instanceOfTransferProcessStatesDto","TransferProcessStatesDtoFromJSON","TransferProcessStatesDtoFromJSONTyped","TransferProcessStatesDtoToJSON","instanceOfKpiResult","KpiResultFromJSON","KpiResultFromJSONTyped","KpiResultToJSON","instanceOfUiPolicyCreateRequest","UiPolicyCreateRequestFromJSON","UiPolicyCreateRequestFromJSONTyped","UiPolicyCreateRequestToJSON","instanceOfPolicyDefinitionCreateRequest","PolicyDefinitionCreateRequestFromJSON","PolicyDefinitionCreateRequestFromJSONTyped","PolicyDefinitionCreateRequestToJSON","instanceOfPolicyDefinitionDto","PolicyDefinitionDtoFromJSON","PolicyDefinitionDtoFromJSONTyped","PolicyDefinitionDtoToJSON","instanceOfPolicyDefinitionPage","PolicyDefinitionPageFromJSON","PolicyDefinitionPageFromJSONTyped","PolicyDefinitionPageToJSON","instanceOfTransferHistoryEntry","TransferHistoryEntryFromJSON","TransferHistoryEntryFromJSONTyped","TransferHistoryEntryToJSON","instanceOfTransferHistoryPage","TransferHistoryPageFromJSON","TransferHistoryPageFromJSONTyped","TransferHistoryPageToJSON","instanceOfUiAssetCreateRequest","UiAssetCreateRequestFromJSON","UiAssetCreateRequestFromJSONTyped","UiAssetCreateRequestToJSON","instanceOfUiAssetEditMetadataRequest","UiAssetEditMetadataRequestFromJSON","UiAssetEditMetadataRequestFromJSONTyped","UiAssetEditMetadataRequestToJSON","instanceOfUiContractNegotiation","UiContractNegotiationFromJSON","UiContractNegotiationFromJSONTyped","UiContractNegotiationToJSON","instanceOfUiContractOffer","UiContractOfferFromJSON","UiContractOfferFromJSONTyped","UiContractOfferToJSON","instanceOfUiDataOffer","UiDataOfferFromJSON","UiDataOfferFromJSONTyped","UiDataOfferToJSON","EnterpriseEditionApi","runtime.BaseAPI","queryParameters","headerParameters","runtime.JSONApiResponse","requestParameters","runtime.RequiredError","runtime.VoidApiResponse","runtime.TextApiResponse","UIApi","UseCaseApi","util","val","assertIs","_arg","assertNever","_x","items","obj","item","validKeys","k","filtered","object","keys","arr","checker","joinValues","array","separator","_","objectUtil","first","second","ZodParsedType","getParsedType","ZodIssueCode","quotelessJson","ZodError","issues","sub","subs","actualProto","_mapper","mapper","issue","fieldErrors","processError","error","curr","i","el","formErrors","errorMap","_ctx","message","overrideErrorMap","setErrorMap","map","getErrorMap","makeIssue","path","errorMaps","issueData","fullPath","fullIssue","errorMessage","maps","m","EMPTY_PATH","addIssueToContext","ctx","x","ParseStatus","status","results","arrayValue","s","INVALID","pairs","syncPairs","pair","finalObject","DIRTY","OK","isAborted","isDirty","isValid","isAsync","errorUtil","ParseInputLazyPath","parent","handleResult","result","processCreateParams","invalid_type_error","required_error","description","iss","ZodType","def","input","_a","maybeAsyncResult","check","getIssueProperties","setError","refinementData","refinement","ZodEffects","ZodFirstPartyTypeKind","ZodOptional","ZodNullable","ZodArray","ZodPromise","option","ZodUnion","incoming","ZodIntersection","transform","defaultValueFunc","ZodDefault","ZodBranded","catchValueFunc","ZodCatch","This","target","ZodPipeline","ZodReadonly","cuidRegex","cuid2Regex","ulidRegex","uuidRegex","emailRegex","_emojiRegex","emojiRegex","ipv4Regex","ipv6Regex","datetimeRegex","args","isValidIP","ip","version","ZodString","tooBig","tooSmall","regex","validation","options","minLength","maxLength","len","ch","min","max","floatSafeRemainder","step","valDecCount","stepDecCount","decCount","valInt","stepInt","ZodNumber","kind","inclusive","ZodBigInt","ZodBoolean","ZodDate","minDate","maxDate","ZodSymbol","ZodUndefined","ZodNull","ZodAny","ZodUnknown","ZodNever","ZodVoid","schema","deepPartialify","ZodObject","newShape","fieldSchema","ZodTuple","shape","shapeKeys","extraKeys","keyValidator","unknownKeys","catchall","_b","_c","_d","defaultError","augmentation","merging","index","mask","newField","createZodEnum","handleResults","unionErrors","childCtx","dirty","types","getDiscriminator","type","ZodLazy","ZodLiteral","ZodEnum","ZodNativeEnum","ZodDiscriminatedUnion","discriminator","discriminatorValue","optionsMap","discriminatorValues","mergeValues","a","b","aType","bType","bKeys","sharedKeys","newObj","sharedValue","newArray","itemA","itemB","handleParsed","parsedLeft","parsedRight","merged","left","right","itemIndex","rest","schemas","ZodRecord","keyType","valueType","third","ZodMap","finalMap","ZodSet","finalizeSet","elements","parsedSet","element","minSize","maxSize","size","ZodFunction","makeArgsIssue","makeReturnsIssue","returns","me","parsedArgs","parsedReturns","returnType","func","getter","values","expectedValues","enumValues","opt","nativeEnumValues","promisified","effect","checkCtx","arg","processed","executeRefinement","inner","base","preprocess","newCtx","ZodNaN","BRAND","inResult","custom","fatal","p","_fatal","p2","late","instanceOfType","cls","stringType","numberType","nanType","bigIntType","booleanType","dateType","symbolType","undefinedType","nullType","anyType","unknownType","neverType","voidType","arrayType","objectType","strictObjectType","unionType","discriminatedUnionType","intersectionType","tupleType","recordType","mapType","setType","functionType","lazyType","literalType","enumType","nativeEnumType","promiseType","effectsType","optionalType","nullableType","preprocessType","pipelineType","ostring","onumber","oboolean","coerce","NEVER","z","needsAuthentication","httpStatus","createUrlEncodedParamsString","v","ClientCredentialsResponseSchema","fetchClientCredentials","clientCredentials","parseTokenResponse","tokenResponseParsed","AccessTokenService","ms","injectAccessTokenHeader","token","withHeader","headerName","headerValue","isHeaders","buildOAuthMiddleware","accessTokenService","buildEdcClient","opts","buildApiKeyHeader","config"],"mappings":"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","x_google_ignoreList":[53]}