open-index/open-npm huggingface dataset:
npm package: @redegade/feem-xml
Description: Validate, parse, and build XML files that follow the FEEM Standard.
Author: Red Kurti
Latest version: 0.0.4

# Feem-xml

Feem-xml is a simple XML parser, validator, and builder for XML files that follow the FEEM Standard. The FEEM Standard is a simple XML schema that is used to define the structure of XML files that are used to electronically exchange track and trace data. More information about the FEEM Standard can be found at [http://feem-europe.org](http://feem-europe.org).

## Installation

```bash
npm install @redegade/feem-xml
```

## Usage

### Loading an XML file

Load the XML file into a string and then use the `FeemXml` class to parse the XML file.

```javascript
const {FeemXml} = require('@redegade/feem-xml');

const xmlString = `
<?xml version="1.0" encoding="utf-8"?>
<Shipment xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" FileVersion="1.0" FileType="FEEM-Std" FileCreator="FileCreator" Hash="MD5HashValue" />
`;

const feemXml = new FeemXml();
feemXml.fromXml(xmlString);

// Get items from the XML file
const explosiveItems = feemXml.getItemsFlat();
```

### Building an XML file

Use the `FeemXmlBuilder` class to add information to the XML file.

```javascript
const {FeemXmlBuilder} = require('@redegade/feem-xml');

const feemXmlBuilder = new FeemXmlBuilder();
feemXmlBuilder.setFileCreator('FileCreator');
feemXmlBuilder.setMessageId('MessageId');
feemXmlBuilder.setSender({
  code: 'Sender Code',
  name: 'Sender Name',
});
feemXmlBuilder.setReceiver({
  code: 'Receiver Code',
  name: 'Receiver Name',
});

feemXmlBuilder.addItem(
  {
    uid: 'UID_1',
    psn: 'US001',
    parentLine: [],
  },
  'Product Code',
  'Product Name'
);

// Build the Feem Xml File representation in memory
const feemXml = feemXmlBuilder.build();

// Get the XML string representation to save to a file, send to a server, etc.
const xmlString = feemXml.toXml();
```
npm package: @redenv/core
Description: Core cryptographic and utility functions for the Redenv ecosystem.
Author: PRAS
Latest version: 1.2.0

# @redenv/core

This package provides the core cryptographic functions and shared utilities for the Redenv secret management system.

## Internal Package

This is an internal helper package designed to be used by other official Redenv packages (`@redenv/cli`, `@redenv/client`). It is not intended for direct public consumption. Its API may change without notice in accordance with the needs of the Redenv ecosystem.
npm package: @redenv/e2ee
Description: Zero-knowledge End-to-End Encryption (E2EE) library based on Universal Web Crypto.
Author: PRAS
Latest version: 1.0.0

# @redenv/e2ee

A Zero-Knowledge, End-to-End Encryption (E2EE) library based purely on the Universal Web Crypto API.

Perfect for applications where the frontend encrypts sensitive user data (like passwords, notes, or secrets) and the backend simply stores the encrypted blobs and metadata without actually knowing the plaintext.

It implements the classical **Envelope Encryption Pattern**.

## Installation

```bash
bun add @redenv/e2ee

npm install @redenv/e2ee
```

## Features

- **Zero dependencies** (uses native Web Crypto).
- **Universal**: Works across browsers, Node.js, Deno, and Bun.
- **Secure Default Standards**: `AES-256-GCM` and `PBKDF2` with 310,000 iterations.

## Usage

### 1. User Setup

When a user sets up their account and provides a master password.

```typescript
import { Vault } from "@redenv/e2ee";

// Create a new vault from the master password
const vault = await Vault.create("my-secure-master-password");

// Export the metadata to save to your database
// Provide this back to the user when they need to log in
const metadata = vault.exportMetadata();
/*
  {
    salt: '...',
    encryptedMasterKey: '...'
  }
*/
```

### 2. User Login & Decryption

When a user logs in, retrieve their metadata from the DB.

```typescript
import { Vault } from "@redenv/e2ee";

// Unlock the vault using their password and the DB metadata
const vault = await Vault.unlock("my-secure-master-password", metadata);

// Encrypt some data in the browser BEFORE sending it to the DB
const encryptedBlob = await vault.encrypt("My highly sensitive document text");

// ... later ...

// Decrypt data that came from the DB
const plaintext = await vault.decrypt(encryptedBlob);
```

### 3. Encrypting Binary Files (Images, PDFs, etc.)

Because converting large files to strings is slow, there are dedicated methods for `Uint8Array` binary buffers.

```typescript
// E.g., handling a file upload in the browser
const fileInput = document.getElementById("filePicker").files[0];
const arrayBuffer = await fileInput.arrayBuffer();
const binaryData = new Uint8Array(arrayBuffer);

// Encrypt the file as a buffer
const encryptedBuffer = await vault.encryptBuffer(binaryData);

// Save `encryptedBuffer` to your DB as a Blob/Binary type
```
npm package: @rederly/heic-img
Description: Webcomponent heic-img following open-wc recommendations
Author: Gibryon Bhojraj
Latest version: 0.0.0

# \<heic-img>

This webcomponent follows the [open-wc](https://github.com/open-wc/open-wc) recommendation.

## Installation
```bash
npm i heic-img
```

## Usage
```html
<script type="module">
  import 'heic-img/heic-img.js';
</script>

<heic-img></heic-img>
```

## Linting with ESLint, Prettier, and Types
To scan the project for linting errors, run
```bash
npm run lint
```

You can lint with ESLint and Prettier individually as well
```bash
npm run lint:eslint
```
```bash
npm run lint:prettier
```

To automatically fix many linting errors, run
```bash
npm run format
```

You can format using ESLint and Prettier individually as well
```bash
npm run format:eslint
```
```bash
npm run format:prettier
```

## Demoing with Storybook
To run a local instance of Storybook for your component, run
```bash
npm run storybook
```

To build a production version of Storybook, run
```bash
npm run storybook:build
```


## Tooling configs

For most of the tools, the configuration is in the `package.json` to reduce the amount of files in your project.

If you customize the configuration a lot, you can consider moving them to individual files.

## Local Demo with `web-dev-server`
```bash
npm start
```
To run a local development server that serves the basic demo located in `demo/index.html`