open-index/open-npm huggingface dataset:
npm package: @finn-no/browserslist-config
Description: FINN's browserslist config
Latest version: 3.0.0

# FINN's browserslist config

A shared FINN [browserslist](https://github.com/browserslist/browserslist) config.

### Installation

```
npm install @finn-no/browserslist-config
```

### Usage

Either add the following to your `package.json`:

```json
"browserslist": [
  "extends @finn-no/browserslist-config"
]
```

or add this to your `.browserslistrc`:

```
extends @finn-no/browserslist-config
```

## What browsers do we support?

Modern browsers that [supports ES modules](https://caniuse.com/es6-module).

## Additional reading

[Browserslist integration with @babel/preset-env](https://babeljs.io/docs/en/babel-preset-env#browserslist-integration)
npm package: @finn-no/dom-focus-lock-fixed
Description: It is a trap! (for a focus)
Author: theKashey
Latest version: 1.0.6

# dom-focus-lock

It is a trap! We got your focus and will not let him out!

[![NPM](https://nodei.co/npm/dom-focus-lock.png?downloads=true&stars=true)](https://nodei.co/npm/dom-focus-lock/)

This is a small, but very useful for:

 - Modal dialogs. You can not leave it with "Tab", ie tab-out.
 - Focused tasks. It will aways brings you back.
 
You have to use it in _every_ modal dialog, or you accessibility will be shitty.
 
# How to use

Just include script

```html
<script src="http://unpkg.com/dom-focus-lock"></script>
```
Or require it from JS

```js
import focusLock from 'dom-focus-lock'
```
Then, activate the lock on desired node

```js
focusLock.on(domNode);
//.....
focusLock.off(domNode);
```

# Why?

From [MDN Article about accessible dialogs](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_dialog_role):

 - The dialog must be properly labeled
 - Keyboard __focus must be managed__ correctly
 
This one is about managing the focus.

I'v got a good [article about focus management, dialogs and  WAI-ARIA](https://medium.com/@antonkorzunov/its-a-focus-trap-699a04d66fb5).    

# Behavior

0. It will always keep focus inside Lock.
1. It will cycle forward then you press Tab.
2. It will cycle in reverse direction on Shift+Tab.
3. It will do it using _browser_ tools, not emulation.
4. It will handle positive tabIndex inside form.
5. It will prevent any jump outside, returning focus to the last element.

You can use nested Locks or have more than one Lock on the page.
Only `last`, or `deepest` one will work. No fighting.

# API

FocusLock has only 3 props, 2 of them you will never use (I hope):

 - `disabled`, to disable(enable) behavior without altering the tree.
     
# How it works

Everything is simple - dom-focus-lock just dont left focus left boundaries of component, and
do something only if escape attempt was succeeded.
 
It is not altering tabbing behavior at all. We are good citizens.

# Not using a vanilla JS?

Try [react-focus-lock](https://github.com/theKashey/react-focus-lock) or [vue-focus-lock](https://github.com/theKashey/vue-focus-lock)

# Licence

MIT
npm package: @finn-no/fabric-css
Description: Fabric CSS core components and utilities
Latest version: 0.7.36

# Fabric CSS

This is the core package for Fabric CSS, FINNs design system.

The package includes resets, core components and [Tailwind](https://tailwindcss.com/) utility classes tuned
for FINN.

## Usage (preferred)

The CSS should be used directly from Eik. This is because we can alias releases by major versions.

```html
<link href="https://assets.finn.no/pkg/@finn-no/fabric-css/v0/fabric.min.css" rel="stylesheet" />
```

## Usage (npm)

```sh
npm install @finn-no/fabric-css
```
npm package: @finn-no/fabric-icons
Description: Fabric's icon set
Latest version: 0.3.7
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Fabric Icons

The icon set for Fabric, imported from the [Figma project](https://www.figma.com/file/pY4zC5fnUv7CPjwSrJV9nT/).

**Note that the icons in the "raw" folder in this repository should never be used directly, as they aren't optimized.**

## Updating the icons

Icons should never be added or edited manually in this repository, as the source of truth is in [Figma](https://www.figma.com/file/pY4zC5fnUv7CPjwSrJV9nT/).

### Figma access token

If you are running the import script for the first time, it will prompt your for a [Figma access token](https://www.figma.com/developers/api#access-tokens). The token is is required to access Figma's API. It can be generated on your Figma account settings page.

The import script may store the token to a local file, so you won't have to supply the token again on subsequent runs.

### Import script

To update the icons, run the following script. If it has a valid Figma access token (see above), it will proceed to download all the icons as SVG files.

```sh
./scripts/figma-import.js
```

### Local preview

You can open a local preview of the icons. Use this to verify that the icons looks as they should. Run the following command.

```sh
npm run start
```

### Publishing

If everything looks correct, publish the changes.

```sh
npm publish
```

```sh
git push --follow-tags
```

## Troubleshooting

### Auth

If the scripts authentication issues, you could try to create a new access token and delete the local file `.FIGMA_TOKEN` before running the script again.

### Figma project structure

The script is probably not resilient to changes in the structure of the Figma project. Changes there will probably require an update of the import script.
npm package: @finn-no/fabric-tailwind-config
Description: Fabric's Tailwind configuration
Latest version: 0.5.19

# Fabric Tailwind config

Fabric's [Tailwind](https://tailwindcss.com/) configuration.

You can use this as a base if you want to customize the generated Tailwind classes. See the
[Tailwind presets documentation](https://tailwindcss.com/docs/presets) for more information.

**Note that for FINN pages, utilities should never be removed from this preset. Components and podlets may
assume that the utilities defined here are available. You can however, include further utilities if you
like.**

## Install

```sh
npm install @finn-no/fabric-tailwind-config
```

## Usage

```js
// tailwind.config.js
module.exports = {
    presets: [require('@finn-no/fabric-tailwind-config')],
    // ...
};
```
npm package: @finn-no/finance-lib
Description: frontend finance utils
Author: Dave Honneffer
Latest version: 2.0.2

# finance-lib

#### standards for variables

1. `rate` is always a value between 0 and 1, never a percentage - conversely a perentage is `rate * 100`
2. `period` is always expressed in years

#### terms

- purchasePrice: kjøpesum
- downPayment: egenkapital
- loanAmount _or_ principal: lånesum
  - principal is avoided since loanAmount is sufficiently correct and is a direct translation
- term _or_ period: nedbetalingstid
  - term is avoided so termingebyr can easily be searched for
- LTVratio (loan to value): belåningsgrad
- collateral: securityValue
npm package: @finn-no/focus-lock-fixed
Description: DOM trap for a focus
Author: theKashey
Latest version: 0.9.2

# focus-lock

It is a trap! We got your focus and will not let him out!

[![NPM](https://nodei.co/npm/focus-lock.png?downloads=true&stars=true)](https://nodei.co/npm/react-focus-lock/)

# Consumers

This is a base package for:

- [react-focus-lock](https://github.com/theKashey/react-focus-lock)
  [![downloads](https://badgen.net/npm/dm/react-focus-lock)](https://www.npmtrends.com/react-focus-lock)
- [vue-focus-lock](https://github.com/theKashey/vue-focus-lock)
  [![downloads](https://badgen.net/npm/dm/vue-focus-lock)](https://www.npmtrends.com/vue-focus-lock)
- [dom-focus-lock](https://github.com/theKashey/dom-focus-lock)
  [![downloads](https://badgen.net/npm/dm/dom-focus-lock)](https://www.npmtrends.com/dom-focus-lock)

Provides a low level API, to be used by final realization.
Usually everything can be solved in 3 lines

```js
import moveFocusInside, { focusInside } from 'focus-lock';

if (topNode && !focusInside(topNode)) {
  moveFocusInside(topNode, lastActiveFocus);
}
```

## Additional API

### Programmatic focus management

```ts
import { focusNextElement, focusPrevElement } from 'focus-lock';
focusNextElement(sourceElement, {
  scope: theBoundingDOMNode,
}); // -> next tabbable element
```

# WHY?

From [MDN Article about accessible dialogs](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_dialog_role):

- The dialog must be properly labeled
- Keyboard **focus must be managed** correctly

This one is about managing the focus.

I'v got a good [article about focus management, dialogs and WAI-ARIA](https://medium.com/@antonkorzunov/its-a-focus-trap-699a04d66fb5).

# Focus fighting

It is possible, that more that one "focus management system" is present on the site.
For example, you are using FocusLock for your content, and also using some
Modal dialog, with FocusTrap inside.

Both system will try to do their best, and move focus into their managed areas.
Stack overflow. Both are dead.

Focus Lock(React-Focus-Lock, Vue-Focus-Lock and so on) implements anti-fighting
protection - once the battle is detected focus-lock will surrender(as long there is no way to win this fight).

You may also land a peace by special data attribute - `data-no-focus-lock`(constants.FOCUS_ALLOW). It will
remove focus management from all nested elements, letting you open modals, forms, or
use any third party component safely. Focus lock will just do nothing, while focus is on the marked elements.

# API

`default(topNode, lastNode)` (aka setFocus), moves focus inside topNode, keeping in mind that last focus inside was - lastNode

# Licence

MIT
npm package: @finn-no/node-brakes-prometheus
Description: Expose Brakes metrics as Prometheus data
Author: Simen Bekkhus
Latest version: 2.0.1

# brakes-prometheus

> Expose Brakes metrics as Prometheus data

[![NPM Version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url]

## Usage

Add event listeners to a [`brakes`][brakes-url] instance, using `prom-client`.
This module has a peer dependency on [`prom-client`][prom-client-url].

```js
import Brake from 'brakes';
import addEventListeners from '@finn-no/brakes-prometheus';
import { register as prometheusRegister } from 'prom-client';

const myBrake = new Brake(() => Promise.resolve(), { name: 'some name' });

addEventListeners(myBrake);

setInterval(() => {
    console.log(prometheusRegister.metrics());
}, 500);
```

## Naming metrics

You can supply an additional options object to set a prefix for the metric
names.

```js
addEventListeners(myBrake, { prefix: 'my_application_prefix_' });

// provides "my_application_prefix_breaker_execute_total" and so on
```

## Metrics exposed

This module exposes 9 metrics, all using the name of the `Brake` as the label:

1.  `breaker_execute_total`, 'Resolver circuit breaker execute count'
    (`Counter`)
2.  `breaker_success_total`, 'Resolver circuit breaker success count'
    (`Counter`)
3.  `breaker_failure_total`, 'Resolver circuit breaker failure count'
    (`Counter`)
4.  `breaker_timeout_total`, 'Resolver circuit breaker timeout count'
    (`Counter`)
5.  `breaker_reject_total`, 'Resolver circuit breaker reject count' (`Counter`)
6.  `breaker_circuit_closed_total`, 'Resolver circuit breaker circuit closed
    count' (`Counter`)
7.  `breaker_circuit_opened_total`, 'Resolver circuit breaker circuit opened
    count' (`Counter`)
8.  `breaker_duration_seconds`: 'Resolver circuit breaker duration summary'
    (`Summary`)
9.  `breaker_duration_buckets_seconds`: 'Resolver circuit breaker duration
    buckets' (`Histogram`)
npm package: @finn-no/stoppable
Description: > This is a fork of https://github.com/hunterloftis/stoppable until https://github.com/hunterloftis/stoppable/pull/7 is merged
Latest version: 1.1.1

# Stoppable

> This is a fork of https://github.com/hunterloftis/stoppable until https://github.com/hunterloftis/stoppable/pull/7 is merged

Node's `server.close()` the way you probably
[expected it to work by default](https://github.com/nodejs/node/issues/2642).

```js
const server = stoppable(http.createServer(handler))
server.stop()
```

Stoppable stops accepting new connections and closes existing, idle connections (including keep-alives)
without killing requests that are in-flight.

[![Build Status](https://travis-ci.org/hunterloftis/stoppable.svg?branch=master)](https://travis-ci.org/hunterloftis/stoppable)

## Installation

```
yarn add stoppable
```

(or use npm)

## Usage

**constructor**

```js
stoppable(server, grace)
```

Decorates the server instance with a `stop` method.
Returns the server instance, so can be chained, or can be run as a standalone statement.

- server: Any HTTP or HTTPS Server instance
- grace: Milliseconds to wait before force-closing connections

`grace` defaults to Infinity (don't force-close).
If you want to immediately kill all sockets you can use a grace of 0.

**stop()**

```js
server.stop(callback)
```

Closes the server.

- callback: passed along to the existing `server.close` function to auto-register a 'close' event

## Design decisions

- Monkey patching generally sucks, but in this case it's the nicest API. Let's call it "decorating."
- `grace` could be specified on `stop`, but it's better to match the existing `server.close` API.
- Clients should be handled respectfully, so we aren't just destroying sockets, we're sending `FIN` packets first.
- Any solution to this problem requires bookkeeping on every connection and request/response.
We're doing a minimum of work on these "hot" code paths and delaying as much as possible to the actual `stop` method.

## Performance

There's no way to provide this functionality without bookkeeping on connection, disconnection, request, and response.
However, Stoppable strives to do minimal work in hot code paths and to use optimal data structures.

I'd be interested to see real-world performance benchmarks;
the simple loopback artillery benchmark included in the lib shows very little overhead from using a stoppable server:

### Without Stoppable

```
  Scenarios launched:  10000
  Scenarios completed: 10000
  Requests completed:  10000
  RPS sent: 939.85
  Request latency:
    min: 0.5
    max: 51.3
    median: 2.1
    p95: 3.7
    p99: 15.3
  Scenario duration:
    min: 1
    max: 60.7
    median: 3.6
    p95: 7.6
    p99: 19
  Scenario counts:
    0: 10000 (100%)
  Codes:
    200: 10000
```

### With Stoppable

```
  Scenarios launched:  10000
  Scenarios completed: 10000
  Requests completed:  10000
  RPS sent: 940.73
  Request latency:
    min: 0.5
    max: 43.4
    median: 2.1
    p95: 3.8
    p99: 15.5
  Scenario duration:
    min: 1.1
    max: 57
    median: 3.7
    p95: 8
    p99: 19.4
  Scenario counts:
    0: 10000 (100%)
  Codes:
    200: 10000
```
npm package: @finn-vgtl/romanize
Description: Validate and convert roman numbers to and from arabic.
Author: Finn Voigtländer
Latest version: 1.0.2

# Romanize
![Test and Release](https://github.com/finn-vgtl/romanize/actions/workflows/main.yml/badge.svg)
![NPM Version](https://img.shields.io/npm/v/@finn-vgtl/romanize)
[![MIT License](https://img.shields.io/apm/l/atomic-design-ui.svg?)](https://github.com/tterb/atomic-design-ui/blob/master/LICENSEs)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)

Validate and convert roman numbers to and from arabic.
## Install via npm
```bash
npm i @finn-vgtl/romanize
```

## Usage
```js
import { isRoman, romanize, deromanize } from '@finn-vgtl/romanize'
// or
const romanize = require('@finn-vgtl/romanize')

// validate roman numbers
isRoman('MMXXI') // true
isRoman('ABC')   // false

// romanize arabic numbers
romanize(123) // "CXXIII"

// deromanize roman numbers
deromanize("CXXIII") // 123
```
npm package: @finn-vgtl/svelte-transitions
Description: ![Test and Release](https://github.com/finn-vgtl/svelte-transitions/actions/workflows/main.yml/badge.svg) [![MIT License](https://img.shields.io/apm/l/atomic-design-ui.svg?)](https://github.com/tterb/atomic-design-ui/blob/master/LICENSEs) ![NPM Version](h
Author: Finn Voigtländer
Latest version: 1.6.1

# svelte-transitions
![Test and Release](https://github.com/finn-vgtl/svelte-transitions/actions/workflows/main.yml/badge.svg)
[![MIT License](https://img.shields.io/apm/l/atomic-design-ui.svg?)](https://github.com/tterb/atomic-design-ui/blob/master/LICENSEs)
![NPM Version](https://img.shields.io/npm/v/@finn-vgtl/svelte-transitions)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)

Transitions for Fricke/UI currently only consisting of our main one.

## Install via npm
```bash
npm i @finn-vgtl/svelte-transitions
```
npm package: @finn107/my-module
Description: My new Nuxt module
Latest version: 1.2.0

<!--
Get your module up and running quickly.

Find and replace all on all files (CMD+SHIFT+F):
- Name: My Module
- Package name: my-module
- Description: My new Nuxt module
-->

# My Module

[![npm version][npm-version-src]][npm-version-href]
[![npm downloads][npm-downloads-src]][npm-downloads-href]
[![License][license-src]][license-href]
[![Nuxt][nuxt-src]][nuxt-href]

My new Nuxt module for doing amazing things.

- [✨ &nbsp;Release Notes](/CHANGELOG.md)
<!-- - [🏀 Online playground](https://stackblitz.com/github/your-org/my-module?file=playground%2Fapp.vue) -->
<!-- - [📖 &nbsp;Documentation](https://example.com) -->

## Features

<!-- Highlight some of the features your module provide here -->
- ⛰ &nbsp;Foo
- 🚠 &nbsp;Bar
- 🌲 &nbsp;Baz

## Quick Setup

1. Add `my-module` dependency to your project

```bash
# Using pnpm
pnpm add -D my-module

# Using yarn
yarn add --dev my-module

# Using npm
npm install --save-dev my-module
```

2. Add `my-module` to the `modules` section of `nuxt.config.ts`

```js
export default defineNuxtConfig({
  modules: [
    'my-module'
  ]
})
```

That's it! You can now use My Module in your Nuxt app ✨

## Development

```bash
# Install dependencies
npm install

# Generate type stubs
npm run dev:prepare

# Develop with the playground
npm run dev

# Build the playground
npm run dev:build

# Run ESLint
npm run lint

# Run Vitest
npm run test
npm run test:watch

# Release new version
npm run release
```

<!-- Badges -->
[npm-version-src]: https://img.shields.io/npm/v/my-module/latest.svg?style=flat&colorA=18181B&colorB=28CF8D
[npm-version-href]: https://npmjs.com/package/my-module

[npm-downloads-src]: https://img.shields.io/npm/dm/my-module.svg?style=flat&colorA=18181B&colorB=28CF8D
[npm-downloads-href]: https://npmjs.com/package/my-module

[license-src]: https://img.shields.io/npm/l/my-module.svg?style=flat&colorA=18181B&colorB=28CF8D
[license-href]: https://npmjs.com/package/my-module

[nuxt-src]: https://img.shields.io/badge/Nuxt-18181B?logo=nuxt.js
[nuxt-href]: https://nuxt.com
npm package: @finn_ryu/tech-debt
Description: AI-powered technical debt analyzer for Git diffs
Author: anonymous
Latest version: 0.3.0

# my_midway_project

## 快速入门

<!-- 在此次添加使用文档 -->

如需进一步了解，参见 [midway 文档][midway]。

### 本地开发

```bash
$ npm i
$ npm run dev
$ open http://localhost:7001/
```

### 部署

```bash
$ npm start
```

### 内置指令

- 使用 `npm run lint` 来做代码风格检查。
- 使用 `npm test` 来执行单元测试。


[midway]: https://midwayjs.org
npm package: @finnair/v-validation-core
Description: V-validation core package
Latest version: 0.4.0
Deprecated: Renamed to @finnair/v-validation

# v-validation-core

[![npm version](https://badge.fury.io/js/%40finnair%2Fv-validation-core.svg)](https://badge.fury.io/js/%40finnair%2Fv-validation-core)

V stands for Validation.

`V` rules define how input is to be converted, normalized and validated to
conform to the expected model.

[Documentation for `v-validation`](https://github.com/finnair/v-validation).

## Getting Started

Install v-validation using [`yarn`](https://yarnpkg.com/en/package/jest):

```bash
yarn add @finnair/v-validation-core
```

Or [`npm`](https://www.npmjs.com/):

```bash
npm install @finnair/v-validation-core
```
npm package: @finnext/eslint-config-typescript
Description: ## Installation
Author: yandongxu
Latest version: 0.0.1

# @finnext/eslint-config-typescript

## Installation

```sh
pnpm i -D @finnext/eslint-config-typescript @rushstack/eslint-patch
```

## Usage

```js
/* eslint-env node */
require('@rushstack/eslint-patch/modern-module-resolution');

module.exports = {
  extends: [
    'plugin:vue/vue3-essential',
    'eslint:recommended',
    '@finnext/eslint-config-typescript/vue',
    '@finnext/eslint-config-prettier',
  ],
};
```
npm package: @finnn/type
Description: Check out object real type
Author: Finn
Latest version: 0.0.3

# @Finnn/type

### Check out object real type

## Installation

```bash
npm install @finnn/type
```
## Usage

```javascript

const typeOf = require('@finnn/type') //with nodejs

or

import typeOf from '@finnn/type' //with webpack
```

### Example:

```javascript
typeOf(null),               // null
typeOf(()=>{}),             // function
typeOf(undefined),          // undefined
typeOf(new Set()),          // set
typeOf(new Map()),          // map
typeOf(new Date()),         // date
typeOf(new Array()),        // array
typeOf(new Error()),        // error
typeOf(new RegExp()),       // regexp
typeOf(new WeakMap()),      // weakmap
typeOf(new WeakSet()),      // weakset
typeOf(new Promise(() => {})),  // promise
typeOf(new ArrayBuffer()),      // arraybuffer
typeOf(new Int8Array()),        // int8array
typeOf(new Uint8Array()),       // uint8array
...
```
npm package: @finnoconsult/strapi-provider-upload-sftp
Description: SFTP provider for Strapi CMS file upload.
Author: FInnoConsult
Latest version: 1.0.0

# strapi-provider-upload-sftp

SFTP provider for Strapi CMS file upload.

## Installation

```
yarn add @finnoconsult/strapi-provider-upload-sftp
```

## Config

`./extensions/upload/config/settings.json`

```json
{
  "provider": "SFTP",
  "providerOptions": {
    "host": "<host>",
    "port": "<port>",
    "user": "<sftp-username>",
    "password": "<password>",
    "basePath": "<base-path>",
    "baseUrl": "<base-url>"
  }
}
```

## Base URL
`Base URL` is used to generate the URLs for the files. The file name will be appended to it.

Obs: the value should include a / at the end

### Example
```
Base URL: http://example.com/
File name: image.jpg

File URL: http://example.com/image.jpg
```

## Base PATH
`Base PATH` is used to define where, inside FTP, files should be saved.

## Duplicate names
When uploading a file, this provider will check if there is already a file with the same name on the server. If the file name already exists it will append a counter to the file name that will be incremented until the name is available.

### Example
```
Files in the server:
  - file.jpg
  - file(1).jpg

File you are trying to upload:
  - file.jpg

The file will be uploaded as file(2).jpg
```

## License

MIT License

Copyright (c) 2019 Marcelo Mattos