> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mastermindcms.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Utils

> Unified Calls und allgemeine Helper, die msm-components exportiert

`Utils` stellt kleine Helper-Funktionen bereit, die von vielen Components und Services genutzt werden.

## Unified WebSocket Calls

Diese Helper verwenden die Built-in Client-Instanz (exportiert als `MSM2App`), um die Unified WebSocket JSON API aufzurufen:

* `callService(beanId, scope, functionName, args, eventType?, endpoint?)`
* `callRepository(repositoryId, query, eventType?, endpoint?)`
* `updateBean(beanId, scope, payload, eventType?, endpoint?)`

### Backend-Service aufrufen

`callService` gibt ein `Promise` mit der vollständigen Antwort zurück. Das Ergebnis steht in `response.result`:

```js theme={null}
import { callService } from "msm-components/dist/services.js";

const response = await callService(
  "sellerRegistrationServiceImpl", "PROTOTYPE", "getLoggedProfile", []
);
const profile = response.result;
```

Argumente werden in derselben Reihenfolge wie in der Backend-Methode übergeben. Für Suchanfragen kann ein Query-Objekt verwendet werden:

```js theme={null}
const response = await callService(
  "searchManagerServiceImpl", "PROTOTYPE", "search",
  [{ query: { isPublishedForSale: true }, offset: 0, limit: 10 }]
);
const items = response.result?.data?.content ?? [];
```

Wenn die Methode einen String erwartet, serialisiere das Objekt mit `JSON.stringify`. `scope` ist normalerweise `PROTOTYPE`, `eventType` kann `USER`, `SHARED` oder `GLOBAL` sein.

### Repository und Bean

`updateBean` aktualisiert Werte einer Bean, die mit `@Component` oder `@Service` registriert wurde.

```js theme={null}
import { callRepository, updateBean } from "msm-components/dist/services.js";

const response = await callRepository("blogCategoryRepository", {
  query: { _id: categoryId }, skip: 0, limit: 1
});

await updateBean("dummyBean", "PROTOTYPE", {
  description: "Updated description",
});
```

Alle Helper verwenden die gemeinsame Built-in-Instanz `MSM2App`.

## Context- und Settings-Helper

* `getLangCode()`
* `getActiveLanguages()`
* `getLanguageDetection()`
* `getWebSiteSettings()`
* `getCdnFolder()`
* `getSecuredFolder()`
* `getSeoUrl(entityId, repositoryName)`
* `getSuperUserLogin()`
* `getAttributeTypes()`
* `getAttributeAreaTypes()`
* `getFormattedDate(date, pattern)`
* `isLogged()`
* `getLoggedProfile()`
* `isOpenAiActive()`

## Cookies- und URL-Helper

* `getCookie(name)`
* `setCookie(name, value, expires?, domain?, path?)`
* `deleteAllCookies(ignore)`
* `getDomainName()`
* `languageAwareUrl(url)`
* `setPlatformInfo()`
* `escapeRegExp(string)`
* `getPayloadOfForm(element)`
