open-index/open-npm huggingface dataset:
npm package: @openenergytools/function-editor
Description: A Web Component for editing IEC 61850-90-30 functions
Author: Jakob Vogelsang
Latest version: 0.0.5

This is a prototype of an editor type plugin for OpenSCD. 
The code is not tested and should not be relied on. It is a playground for new elements defined by the `IEC 61850-7-6` and `IEC 61850-90-30`.
npm package: @openenergytools/function-editor-90-30
Description: A Web Component for editing IEC 61850-90-30 functions
Author: Jakob Vogelsang
Latest version: 0.0.18

This is a prototype of an editor type plugin for OpenSCD. 
The code is not tested and should not be relied on. It is a playground for new elements defined by the `IEC 61850-7-6` and `IEC 61850-90-30`.
npm package: @openenergytools/open-scd-core
Description: The core component of OpenSCD
Author: OMICRON Electronics GmbH, Jakob Vogelsang
Latest version: 0.0.5

# OpenSCD Core
## \<open-scd>

## Installation

```sh
npm i open-scd
```

## Usage

```html
<script type="module">
  import 'open-scd/open-scd.js';
</script>

<open-scd></open-scd>
```

## Linting and formatting

To scan the project for linting and formatting errors, run

```sh
npm run lint
```

To automatically fix linting and formatting errors, run

```sh
npm run format
```

We use ESLint and Prettier for linting and formatting. Plugins for automatic
formatting and linting during editing are available for vim, emacs, VSCode,
and all popular IDEs.

## Testing with Web Test Runner

To execute a single test run:

```sh
npm test
```

To run the tests in interactive watch mode run:

```sh
npm run test:watch
```

## Tooling configs

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

## Local Demo with `web-dev-server`

```sh
npm start
```

To run a local development server that serves the basic demo located in `demo/index.html`

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

## License

This project is licensed under the [Apache License 2.0](LICENSE).

&copy; 2022 OMICRON electronics GmbH
npm package: @openenergytools/oscd-action-icon
Description: Material web type action icon
Author: Jakob Vogelsang
Latest version: 1.0.1

# \<oscd-action-icon>

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

## Installation

```bash
npm i @openscd/oscd-action-icon
```

## Usage

```html
<script type="module">
  import '@openscd/oscd-action-icon';
</script>

<oscd-action-icon></oscd-action-icon>
```

## Linting and formatting

To scan the project for linting and formatting errors, run

```bash
npm run lint
```

To automatically fix linting and formatting errors, run

```bash
npm run format
```

## Testing with Web Test Runner

To execute a single test run:

```bash
npm run test
```

To run the tests in interactive watch mode run:

```bash
npm run test:watch
```

## 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.

### Icon font

Material Icons are being used for the icons. This font needs to be added in the html first.
You can add it like so:

```html
<link
  href="https://fonts.googleapis.com/css?family=Material+Icons&display=block"
  rel="stylesheet"
/>
```

## 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`




&copy; 2023 Alliander N.V.
npm package: @openenergytools/oscd-action-pane
Description: Material web type action pane
Author: Jakob Vogelsang
Latest version: 1.0.1

# \<oscd-action-pane>

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

## Installation

```bash
npm i @openscd/oscd-action-pane
```

## Usage

```html
<script type="module">
  import '@openscd/oscd-action-pane';
</script>

<oscd-action-pane></oscd-action-pane>
```

## Linting and formatting

To scan the project for linting and formatting errors, run

```bash
npm run lint
```

To automatically fix linting and formatting errors, run

```bash
npm run format
```

## Testing with Web Test Runner

To execute a single test run:

```bash
npm run test
```

To run the tests in interactive watch mode run:

```bash
npm run test:watch
```

## 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.

### Icon font

Material Icons are being used for the icons. This font needs to be added in the html first.
You can add it like so:

```html
<link
  href="https://fonts.googleapis.com/css?family=Material+Icons&display=block"
  rel="stylesheet"
/>
```

## 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`





&copy; 2023 Alliander N.V.
npm package: @openenergytools/scl-diff
Description: Function library supporting SCL diffing
Author: Jakob Vogelsang
Latest version: 0.1.0

# scl-diff

This repository - SclDiff - is a collection of TypeScript functions, that describes SCL elements through an representative object. This object can be used to better get information's from SCL elements. They can also be used to compare to SCL elements with each other.
npm package: @openenergytools/scl-lib
Description: Function library supporting SCL editing
Author: Jakob Vogelsang
Latest version: 1.8.0

# scl-lib

This repository - SclLib - is a collection of TypeScript functions, that allow to faster develop modules for SCL editing.

## Content

SclLib is primarily exporting functions, that allow to manipulate SCL elements.
There are various types of functions you can find in this library grouped into:

- <u>element creation</u>: Those functions are triggered by the wish to create a valid SCL element. Those functions do check primarily whether limitation to create such an element are met.

  - The input is the parent/ancestor element and and an options object defining a user-defined configuration of the element to be created.
  - The output is a delta compared to the current SCL

- <u>edit checks</u>: Those function are triggered by the wish to edit a specific SCL element, e.g. `GSEControl`.

  - The input is a delta to the actual SCL formulated as `Update`, `Insert` or `Remove`.
  - The output is a corrected delta formulated as an array of `Update`, `Insert` or `Remove`. The difference between the input and output contains expertise related to IEC 61850-6.

- <u>generators</u>: Generator functions that allow to dynamically create unique value such as MAC-addresses, APPID and others
npm package: @openenergytools/scl-template-validator
Description: A NSD based validator for data type templates in the SCL
Author: Jakob Vogelsang
Latest version: 0.0.3

# scl-template-validator

This repository checks the `DataTypeTemplates` section of an System Configuration Language (SCL) file for issues that are not specified in the XSD. The validation is done with the help of NameSpaceDescription (NSD) files. As such the validation can only be performed for Edition 2.1 and higher as only for those version NSD files exist.

The validator is returning issues asynchronously in chunks grouped to the elements in the data type templates section and does so though a generator. You can use the `validate` generator like so:

```ts
for await (const issueGroup of validate(this.doc)) {
  // DO something with the Issue[]
}
```

## Validation per element group

The template validation is at the moment very rudimentary:

- LNodeType

  - missing `lnClass` attribute
  - missing mandatory child data object (e.g. `Beh` in `LLN0`)

- DOType

  - missing `cdc` attribute
  - incorrect `cdc` (e.g. DO.Beh is referencing a DOType with cdc="APC")
  - missing mandatory child data attributes (e.g. `Open` with `ctlModel` anything else than `status-only`)

- DAType

  - missing mandatory child data attributes (e.g. `ctlVal` in `Oper`)

- DO or SDO

  - missing `type` attribute
  - invalid reference to `DOType`

- DA or BDA
  - missing `type` attribute for `Struct` and `Enum` type data attributes
  - invalid reference to `DAType`
npm package: @openenergytools/scl-wizarding
Description: Intermediate Wizarding API for the SCL editor in OpenEnergyTools
Author: scl-wizarding
Latest version: 0.0.1

# \<oscd-publisher>

## What is this?

This is a intermediate wizarding API for OpenSCD core plugins. It is exclusively designed to work with [SCL editor on OpenEnergyTools](https://openenergytools.github.io/scl-editor). Please use with care as it is prone to changes!

&copy; Jakob Vogelsang
npm package: @openenergytools/xml-lib
Description: Function library for basic XML manipulations
Author: Jakob Vogelsang
Latest version: 1.3.0

This repository hold the XML editing engine inspired by the [OpenSCD core](https://github.com/openscd/open-scd-core) and is following the newest agreed [OpenSCD Core API](https://github.com/OpenEnergyTools/open-scd-core/blob/main/API.md)


## Usage

You can either load and use the `handleEdit` function through npm or other content delivery networks. This function does manipulate a XMLDocument as per user intent through the edit as its input:

```ts
const removeNode: Remove = {node: toBeRemovedNode}
handleEdit(removeNode)
```


You can also use the exported `Editor` class that inherits form `LitElement` that listens on the edit as specified in [OpenSCD Core API](https://github.com/OpenEnergyTools/open-scd-core/blob/main/API.md). 


## Linting and formatting

To scan the project for linting and formatting errors, run

>npm run lint

To automatically fix linting and formatting errors, run

>npm run format

We use ESLint and Prettier for linting and formatting. Plugins for automatic formatting and linting during editing are available for vim, emacs, VSCode, and all popular IDEs.

## Testing with Web Test Runner

To execute a single test run:

>npm test

To run the tests in interactive watch mode run:

>npm run test:watch


# License

This project is licensed under the Apache License 2.0.

© 2024 Jakob Vogelsang
npm package: @openenergytools/xml-schema-validator
Description: Wrapper around OpenSCD's xmlvalidate.js
Author: Jakob Vogelsang
Latest version: 0.0.1

# xml-schema-validator

This repository is a wrapper for https://github.com/openscd/xmlvalidate.js which is using libxml2 under the hood. It si running the worker, so your browser must support this feature.

Although this function can theoretically validate any XML it has been test with SCL files as defined by the IEC 61850-6. I would love to have additional test contributed to proof that other XML schemas are supported as well.
npm package: @openeo/js-commons
Description: Common JS functionalities for openEO.
Author: openEO Consortium
Latest version: 1.5.0

# @openeo/js-commons

A set of common JavaScript functionalities for [openEO](http://openeo.org).

The [master branch](https://github.com/Open-EO/openeo-api/tree/master) is the 'stable' version of library, which is currently version **1.5.0**.
The [draft branch](https://github.com/Open-EO/openeo-api/tree/draft) is where active development takes place.

![Dependencies](https://img.shields.io/librariesio/release/npm/@openeo/js-commons)
![Minified Size](https://img.shields.io/bundlephobia/min/@openeo/js-commons/1.5.0)
![Minzipped Size](https://img.shields.io/bundlephobia/minzip/@openeo/js-commons/1.5.0)
![Supported API Versions](https://img.shields.io/github/package-json/apiVersions/Open-Eo/openeo-js-commons/master)
![JS Commons Tests](https://github.com/Open-EO/openeo-js-commons/workflows/JS%20Commons%20Tests/badge.svg)

## Features

- Converting responses from API version 0.4 to the latest API version is supported for:
  - Capabilities
  - Collections
  - Processes
  - Output Formats
  - Service Types
  - UDF Runtimes
- Back-end feature detection
- Validate, compare and prioritize version numbers (e.g. for well-known discovery)
- Process specification parsing utilities
- Other Utils

## Usage

To use it in a node environment use: `npm install @openeo/js-commons`

You can then require the parts of the library you want to use. For example: `const { MigrateProcesses } = require('@openeo/js-commons');`

In a web environment you can include the library as follows:

```html
<script src="https://cdn.jsdelivr.net/npm/@openeo/js-commons@1/dist/main.min.js"></script>
```

More information can be found in the [**JS commons documentation**](https://open-eo.github.io/openeo-js-commons/1.5.0/).
npm package: @openeo/js-processgraphs
Description: JavaScript library to parse, validate and execute openEO process graphs.
Author: openEO Consortium
Latest version: 1.4.2

# openeo-js-processgraphs

[openEO](http://openeo.org) process graph parser for JavaScript.

[![Build Status](https://travis-ci.org/Open-EO/openeo-js-processgraphs.svg?branch=master)](https://travis-ci.org/Open-EO/openeo-js-processgraphs)

This library's version is **1.4.2** and supports **openEO API version 1.x**.

This repository was split apart from [openeo-js-commons](https://github.com/Open-EO/openeo-js-commons). Old releases can be found there.

## Features

- Parsing a process graph
- Validation based on the JSON Schemas
- Framework to implement process graph execution
- JSON Schema validation for Process parameters and return values

## Usage

To use it in a node environment use: `npm install @openeo/js-processgraphs`

You can then require the parts of the library you want to use. For example: `const { ErrorList } = require('@openeo/js-processgraphs');`

In a web environment you can include the library as follows:

```html
<script src="https://cdn.jsdelivr.net/npm/ajv@6/dist/ajv.bundle.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@openeo/js-processgraphs@1/dist/main.min.js"></script>
```

More information can be found in the [**documentation**](https://open-eo.github.io/openeo-js-processgraphs/1.4.2/).
npm package: @openeo/processes-docgen
Description: Library to generate a user Interface for documents following the specification for openEO processes.
Author: openEO Consortium
Latest version: 1.5.1

# openEO Processes DocGen
Library to generate a human-readable version of documents following the [specification for openEO processes](https://github.com/open-eo/openeo-api), either in version 0.4.x or 1.x.x.

* [Demo](https://open-eo.github.io/openeo-processes-docgen/demo/).

## Getting Started

You can simply create an HTML file and change the `document` and `apiVersion` (see below) prop to your needs:
```
<!DOCTYPE html>
<html>

	<head>
		<title>openEO Processes</title>
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width, initial-scale=1">
		<script src="https://cdn.jsdelivr.net/npm/vue"></script>
		<script src="https://cdn.jsdelivr.net/npm/@openeo/processes-docgen@1/dist/DocGen.umd.min.js"></script>
		<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@openeo/processes-docgen@1/dist/DocGen.css">
		<style>html, body { height: 100%; margin: 0; }</style>
	</head>

	<body>
		<div id="app"></div>
		<script>
		new Vue({
			el: '#app',
			render: h => h(DocGen, { 
				props: {
					// Either (1) a URL to the document as string
					// or (2) an array or object containing the processes.
					document: 'processes.json',
					// The version of the openEO API
					apiVersion: "1.2.0",
					// Title for the table of contents
					// title: "My processes",
					// Sorts the processes by id if set to true, otherwise keeps order of the document
					// sortProcessesById: true,
					// Categorize the processes in the menu if set to true, otherwise show a plain list
					// categorize: true,
					// Show/Hide table of contents, links and search box
					// showTableOfContents: true,
					// A message that is shown to users
					// notice: ''
					// Show or hide experimental and/or deprecated entites by default (e.g. processes, collections)
					// showExperimentalByDefault: false,
					// showDeprecatedByDefault: false,
				}
			})
		});
		</script>
		<noscript>Sorry, the documentation generator requires JavaScript to be enabled!</noscript>
	</body>

</html>
```

## Development

To build the files follow these steps:

1. Install [Node.js](https://nodejs.org/)
2. Clone or download this repository.
3. Open a command line window and go to the directory which contains the cloned/downloaded web editor files.
4. Optionally: Configure the generator by editing `vue.config.js` and `src/config.js` to suit your needs.
5. Install the dependencies by executing `npm install` on the command line
6. 
	* Development: Run the development server by executing `npm start`.
	* Deployment:
		* Standalone: Build the project by executing `npm run build_standalone`. Afterwards upload the content of the `dist` folder to your server.
		* Library: Build the project by executing `npm run build`. Afterwards you can publish the library to npm or so.

## License

This project is licensed under the Apache 2.0 license - see the [LICENSE](LICENSE) file for details.
npm package: @openeo/processes-lint
Description: Validates and lints openEO processes.
Author: openEO Consortium
Latest version: 0.1.6

# Linter for openEO process specifications

NPM: [@openeo/processes-lint](https://www.npmjs.com/package/@openeo/processes-lint)

1. Install [node and npm](https://nodejs.org) - should run with any recent version
2. Place a config file into your working directory that looks like the [`testConfig.json`](./testConfig.json). The options work as follows:
   * `folder`: Path to a folder with non-experimental process specifications in .json files.
   * `proposalsFolder`: Path to a folder with experimantal process specifications in .json files (optional)
   * `anyOfRequired`: Processes where any of the parameters is required (deprecated)
   * `ignoedWords`: A list of words the spell checker should ignore. Can also be a path to a file with a word on each line.
   * `subtypeSchemas`: Path or URL to a file that includes the subtype schemas, defaults to `https://processes.openeo.org/meta/subtype-schemas.json`
   * `checkSubtypeSchemas`: Enable or disable running checks against the subtype schemas. Defaults to `false` (disabled).
   * `forbidDeprecatedTypes`: Set to `true` to disallow deprecated subtypes such as `raster-cube` and `vector-cube`. Defaults to `false` (disabled).
   * `checkProcessLinks`: Set to `true` to validate whether the links to processes in descriptions are valid (i.e. the files exist). Defaults to `false` (disabled).
   * `verbose`: Verbose output for tests. Defaults to `false` (disabled).
2. Run `npx @openeo/processes-lint testConfig.json`