open-index/open-npm huggingface dataset:
npm package: @skbkontur/global-object
Description: Кросс-платформенный [глобальный объект](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis#search_for_the_global_across_environments) с безопасной типизацией и возможностью подмены window.
Author: Kontur
Latest version: 0.4.5

### @skbkontur/global-object

Кросс-платформенный [глобальный объект](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis#search_for_the_global_across_environments) с безопасной типизацией и возможностью подмены window. 

Полезен в коде, который может выполнятся как в браузере, так и в nodejs, вместо использования window, global или их полей как глобальных сущностей напрямую. В отличии от `globalThis` более безопасно типизирован. Все поля `globalObject` соответствуют полям `globalThis`, но имеют в типе `undefined` и требуют явной проверки перед использованием.

```js static
import { globalObject, isBrowser, isInstanceOf } from '@skbkontur/global-object';

// было
requestAnamtionFrame();
// стало
globalObject.requestAnimationFrame?.();

// было
clearTimeout();
// стало
globalObject.clearTimeout();

// было
typeof HTMLElement !== 'undefined' && node instanceof HTMLElement
// стало
isInstanceOf(node, globalObject.HTMLElement)

// было
typeof window !== 'undefined' && window.location.host
// стало
globalObject.location?.host

// было
document.addEventListener('load', () => console.log(window.clientHeight));
// стало
if (isBrowser(globalObject)) {
  globalObject.document.addEventListener('load', () => console.log(globalObject.clientHeight));
}
```

Хелпер `isBrowser(globalObject)` позволяет убедиться, что код выполняется в браузере и избавляет от необходимости проверять на существование в `globalObject` полей интерфейса `Window`. 

```js static
import { globalObject, isBrowser } from '@skbkontur/global-object';

// было
globalObject.addEventListener?.('load', () => console.log((globalObject.clientHeight || 0) + 1));
// стало
if (isBrowser(globalObject)) {
  globalObject.document.addEventListener('load', () => console.log(globalObject.clientHeight));
}
```

Также имеется возможность переопределить `window`. Может быть полезно при разработке [изолированных виджетов](https://github.com/skbkontur/retail-ui/pull/3259).

```js static
import { setWindow } from '@skbkontur/global-object';

setWindow(window.parent);
```

Подмена window должна осуществляться один раз и как можно раньше в приложении, до загрузки всех модулей, которые используют `@skbkontur/global-object`. Подмена в рантайме, в произвольный момент времени не подразумевается. Иначе результат может отличаться от ожидаемого.
npm package: @skbkontur/hidden-links
Description: Kontur UI Hidden Links
Author: Kontur
Latest version: 0.2.0

# HiddenLinks

NPM-пакет с компонентом скрытой ссылки `<HiddenLinks />`. Ссылка скрыта для глаз и появляется только при фокусе c клавиатуры через `Tab` или скринридер.

Скрытых ссылок может быть несколько:

- Ссылка, которая ведёт на другую страницу. Например, ссылка на форму обратной связи. Если адрес ссылки вне продукта, ссылку нужно открывать в новой вкладке
- Якорная ссылка, которая ведёт к основному содержимому страницы и пропускает навигационные элементы

## Установка

```bash
npm i @skbkontur/hidden-links
```

## Использование

<br />

#### React компонент

```jsx
<HiddenLinks>
    <HiddenLinks.Item use="feedback" />
    <HiddenLinks.Item href="#main">
        Перейти к основному содержимому
    </HiddenLink.Item>
</HiddenLinks>
```

## Разработка

- `npm run build` — сборка пакета