open-index/open-npm huggingface dataset:
npm package: @martince/countries
Description: Canonical country data - ISO 3166-1 codes, names, regions, and domains
Latest version: 0.1.1

# @martince/countries

> Canonical country data - ISO 3166-1 codes, names, regions, and domains

## Installation

```bash
npm install @martince/countries
```

## Usage

### Lookup Functions

```typescript
import {
  getByISO2,
  getByISO3,
  getByNumeric,
  getByName,
  searchByName,
  getAllCountries,
} from '@martince/countries';

// Get by ISO 3166-1 Alpha-2 (case-insensitive)
const usa = getByISO2('US');
const uk = getByISO2('gb');

// Get by ISO 3166-1 Alpha-3
const germany = getByISO3('DEU');

// Get by numeric code
const japan = getByNumeric('392');

// Search by name
const results = searchByName('united');
// Returns: [United Arab Emirates, United Kingdom, United States, ...]
```

### Individual Country Imports (Tree-Shakable)

```typescript
// Maximum tree-shaking - only includes US and DE data
import { US, DE } from '@martince/countries/countries';

console.log(US.name); // "United States of America"
console.log(DE.callingCode); // "+49"
```

### Region Queries

```typescript
import {
  getCountriesByRegion,
  getCountriesBySubregion,
  EU_MEMBERS,
  NATO_MEMBERS,
  SCHENGEN_AREA,
  isEUMember,
  isNATOMember,
} from '@martince/countries/regions';

// Get countries by region
const europeanCountries = getCountriesByRegion('Europe');
const westernEurope = getCountriesBySubregion('Western Europe');

// Check membership
isEUMember('DE'); // true
isEUMember('GB'); // false

// Use grouping arrays directly
console.log(EU_MEMBERS.length); // 27
```

### Validation

```typescript
import {
  isValidISO2,
  isValidISO3,
  isValidNumeric,
} from '@martince/countries';

isValidISO2('US'); // true
isValidISO2('XX'); // false
```

## Country Object

```typescript
interface Country {
  iso2: string;        // "US"
  iso3: string;        // "USA"
  isoNumeric: string;  // "840"
  name: string;        // "United States of America"
  region: Region;      // "Americas"
  subregion: Subregion; // "Northern America"
  tld: string[];       // [".us"]
  callingCode: string; // "+1"
  independent: boolean; // true
  unMember: boolean;   // true
}
```

## Data Sources

- **Country codes**: [ISO 3166-1](https://www.iso.org/iso-3166-country-codes.html)
- **Regions/Subregions**: [UN M49](https://unstats.un.org/unsd/methodology/m49/)
- **Domains**: [IANA](https://www.iana.org/domains/root/db)
- **Phone prefixes**: [ITU E.164](https://www.itu.int/rec/T-REC-E.164)

## License

MIT
npm package: @martindev237/file-size-formatter
Description: A utility for manipulating files: formatting sizes, calculating hashes, compressing images
Author: Martin dev
Latest version: 1.2.4
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# @martindev237/file-size-formatter

A JavaScript utility for manipulating files: formatting sizes,compressing images.

## Installation

```bash
npm install @martindev237/file-size-formatter
```

## Dépendances

- `sharp` for image compression ([voir documentation](https://sharp.pixelplumbing.com/install)).

## Fonctions

### formatFileSize(bytes, decimals = 2)

Formats a size in bytes into a readable string.

```Typescript
const { formatFileSize } = require('@martindev237/file-size-formatter');
console.log(formatFileSize(123456789, 1)); // "117.7 MB"
```



### compressImage(input, options)

Compresses an image by adjusting its resolution and quality.

- `input` : File path or Buffer (required).
- `options` :
  - `maxWidth` : Maximum width (default: 1920).
  - `maxHeight` : Max height (default: 1080).
  - `quality` : Quality (0 to 1, default: 0.8).
  - `maxSizeMB` : Maximum size in MB (default: 2).
  - `outputFormat` : Format ('jpeg', 'png', 'webp', défaut : 'jpeg').

```javascript
import { formatFileSize, compressImage, CompressionOptions } from '@martindev237/file-size-formatter';
import fs from 'fs';

async function main() {
  const options: CompressionOptions = { maxWidth: 800, quality: 0.7 };
  const buffer = await compressImage('./image.jpg', options);
  fs.writeFileSync('./output.jpg', buffer);
  console.log(`Taille : ${formatFileSize(buffer.length)}`);
}

main();
```

### compressMultipleImages(inputs, options)

Compresses multiple images.

```javascript
const { compressMultipleImages, formatFileSize } = require('@martindev237/file-size-formatter');
const fs = require('fs');

async function compressMultiple() {
  const buffers = await compressMultipleImages(['./image1.jpg', './image2.jpg'], { maxWidth: 800 });
  buffers.forEach((buffer, i) => {
    fs.writeFileSync(`./compressed-image${i + 1}.jpg`, buffer);
    console.log(`Taille image ${i + 1} : ${formatFileSize(buffer.length)}`);
  });
}
compressMultiple();
```

## Tests

Run `npm test` with Jest to validate.

## Contribute

Open an issue or pull request on [GitHub](https://github.com/Level237/file-size-formatter).

## Licence

MIT
npm package: @martindoyle/eslint-config
Description: Martin's eslint (flat) config
Author: Martin Doyle
Latest version: 1.1.0

# Martin's ESLint config

## Installation

To install the configs:

`npm i -D @martindoyle/eslint-config`

## Usage

Extend your eslint (flat) config using this:

```js
// eslint.config.js
import config from '@martindoyle/eslint-config';

export default [
  ...config,
];
```
npm package: @martindoyle/tsconfig
Description: Common TSConfig files
Author: Martin Doyle
Latest version: 1.2.0

# Martin's TSConfig

## Installation

To install the configs:

`npm i -D @martindoyle/tsconfig`

## Usage

Extend one of the available configs, either `node` or `web`, for example:

```json
// tsconfig.json
{
  "$schema": "https://json.schemastore.org/tsconfig",
  "extends": "@martindoyle/tsconfig/node",
  "compilerOptions": {
    "outDir": "dist",
  },
}
```
npm package: @martinezmanoloa/capacitor-startio-ads
Description: Capacitor plugin for SDK start.io
Author: Manolo Martinez
Latest version: 0.0.4

# @martinezmanoloa/capacitor-startio-ads

Capacitor plugin for SDK start.io (only android)

## Install

```bash
npm install @martinezmanoloa/capacitor-startio-ads
npx cap sync
```

...

## Methods

```typescript
// You can use AdViewOptions NativeAdData
import { StartioAds } from '@martinezmanoloa/capacitor-startio-ads';

initParams(); // Init sdk start.io with your appId from account, test with 205489527, in prod use enableTest: false
loadInterstitialAd(); // Loading your InterstitialAd before use showInterstitialAd()
showInterstitialAd(); // Show fullscreen ad
showBannerAd(); // Show banner ad in TOP|BOTTOM with param options: AdViewOptions = {}
hideBannerAd(); // Hide your banner ad
loadRewardedVideoAd(); // Loading video reward ad before use showRewardedVideoAd()
showRewardedVideoAd(); // Show video ad
showMrec(); // Show ad (Medium Rectangle 300px x 250px)
hideMrec(); // Hide your Mrec ad
// autoInterstitialAd(); // In Capacitor Single Activity Application not working
// interstitialTimeFrequencyAd(); // In Capacitor Single Activity Application not working
loadNativeAd(); // returns the raw data of the ad (Title, Description, Image URL, etc.) in a JSON object. You are responsible for rendering this data in your application's HTML/CSS.
```

**Important:** Currently, this plugin **does not automatically handle click registration or impression tracking** for Native Ads. The Start.io SDK requires a native Android View to bind interactions (`registerViewForInteraction`), which is not directly accessible from the HTML layer.

**Use Case:** Use this format if you need to display promoted content visually to match your app's design, but be aware that standard click-through attribution metrics may not be tracked by the SDK in this specific implementation.

...

## 📘 Documentation

The documentation for the underlying Start.io Android SDK integration (which this plugin uses) can be found here: **https://support.start.io/hc/en-us/articles/360014774799-Integration-via-Maven**

...

## ⚠️ Licensing & Attribution ⚠️

This plugin is licensed under the **MIT License** (Copyright 2025 Manolo Martínez).

The underlying Android SDK (Start.io) is distributed under the **Apache License, Version 2.0**. You must comply with the terms of the Apache License, Version 2.0, when using the plugin's native Android component.

A copy of the Apache License 2.0 is provided in the NOTICE file and/or LICENSE-APACHE.md.
npm package: @martinezrafael/git-to-linkedin
Description: Gere posts técnicos automaticamente a partir de git diff e publique no LinkedIn usando IA
Author: Rafael Molina Martinez
Latest version: 1.0.0

# 🚀 git-to-linkedin

- 🤖 Geração por IA: Analisa o git diff para escrever posts técnicos precisos.
- 📸 Suporte a Imagens: Anexa automaticamente o último print de código da sua pasta.
- 🐶 Integração com Husky: Dispara o menu de publicação milissegundos antes do seu push.
- 🛠️ Configuração Dinâmica: Controle tom de voz, idioma, hashtags e nível de detalhes via JSON.
- 🔄 Sistema de Retry: Lógica robusta para garantir a publicação mesmo com instabilidades na API.

---

## 🛠️ Instalação

Instale globalmente ou como dependência de desenvolvimento no seu projeto:

`npm install @martinezrafael/git-to-linkedin --save-dev`

### Inicialização

Na raiz do seu projeto, execute o comando abaixo para configurar o Husky, as pastas de imagens e o arquivo de configuração:

`npx git-to-linkedin --init`

---

## ⚙️ Configuração

**1. Variáveis de Ambiente**
Crie um arquivo .env na raiz do projeto com suas credenciais:

```
LINKEDIN_ACCESS_TOKEN=LINKEDIN_ACCESS_TOKEN
LINKEDIN_CLIENT_ID=LINKEDIN_CLIENT_ID
LINKEDIN_CLIENT_SECRET=LINKEDIN_CLIENT_SECRET
LINKEDIN_MEMBER_URN=LINKEDIN_MEMBER_URN
IA_API_KEY=IA_API_KEY
```

**2. Personalização (git-to-linkedin.config.json)**
O arquivo gerado permite ajustar como a IA deve se comportar:

```
{
  "tone": "profissional e técnico",
  "language": "pt-BR",
  "technicalDepth": "intermediário",
  "hashtags": {
    "mode": "mixed",
    "fixed": ["#NodeJS", "#Git"],
    "max": 6
  }
}
```

---

## 🚀 Como usar

1. Faça suas alterações no código e dê um `git commit`.
2. Tire um print da parte interessante e salve na pasta `images-to-linkedin-post/`.
3. Execute `git push`.
4. O menu interativo surgirá no seu terminal:

- `1`: Publica no LinkedIn e segue com o Push.
- `2`: Publica apenas no LinkedIn.
- `3`: Apenas faz o Push (ignora postagem).
- `0`: Cancela tudo.

---

## 🤝 Contribuição

Contribuições são bem-vindas! Sinta-se à vontade para abrir uma issue ou enviar um pull request.

---

📝 Licença

Distribuído sob a licença MIT. Veja `LICENSE` para mais informações.