open-index/open-npm huggingface dataset:
npm package: @pieter.piret/dkv-angular
Description: This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.6.6.
Latest version: 0.1.7

# DkvAngular

This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.6.6.

## Development server

Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.

## Code scaffolding

Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.

## Build

Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build.

## Running unit tests

Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).

## Running end-to-end tests

Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).

## Further help

To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
npm package: @pieter.piret/dynamicy
Description: This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.6.6.
Author: Pieter Piret
Latest version: 1.1.118

# Dynamicy

This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.6.6.

## Development server

Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.

## Code scaffolding

Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.

## Build

Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build.

## Running unit tests

Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).

## Running end-to-end tests

Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).

## Further help

To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
npm package: @pieterprovoost/wkx
Description: This is a repackaging of the wkx package originally by <https://github.com/cschwarz> and forked by <https://github.com/Rich-Harris>.
Latest version: 0.0.1

# @pieterprovoost/wkx

This is a repackaging of the wkx package originally by <https://github.com/cschwarz> and forked by <https://github.com/Rich-Harris>.
npm package: @pietert/jira-cli
Description: CLI tool that interacts with the JIRA REST API
Author: PieterT2000
Latest version: 1.0.0

## Jira CLI

- [Setup](#setup)
  - [Install](#install)
  - [Configure](#configure)
- [Commands](#commands)
  - [Worklogs (i.e. timetracking)](#worklogs--ie-timetracking-)
  - [List issues](#list-issues)
  - [Lookup issue information](#lookup-issue-information)
  - [Adding comments](#adding-comments)
  - [Help](#help)

### Setup

#### Install (Unix & Windows compatible)

```bash
npm i -g @pietert/jira-api
```

#### Configure

Now run

```node
jira setup
```

You will be asked for:

- endpoint: this should be in the form of `https://company_name.atlassian.net`
- username: your email that you use to login to Jira
- apiToken: you can create your token [here](https://id.atlassian.com/manage-profile/security/api-tokens).
- boardId: this is the id of the sprint board. You can find it by going to the backlog or sprint board. The integer after `/boards/` is the _boardId_.
  ![](/assets/images//boardId.png)

### Commands

#### Worklogs (i.e. timetracking)

_To start the timer_. If no `ISSUE_KEY`is provided and you're currently in a git branch, the name of that branch will be used as issue key. Otherwise an error will be thrown. This is what issue keys look like ![](/assets//images//issueKeys.png)

```node
jira start [ISSUE_KEY]
```

_To stop the timer and save the worklog._ If you don't provide the `issueKey`, your current git branch name will be used. (very handy if git branches are linked to Jira issues). Otherwise, an error will be thrown.

```node
jira stop [COMMENT] [ISSUE_KEY]
```

_Logging recurring activities_.

```node
jira log ACTIVITY
```

You can define _recurring activities_ in the `cli-config.js` file. For example:

```js
export default {
  standup: {
    issueKey: "PROJECTNAME-XXXX",
    comment: "Standup",
    timeSpent: 900,
    startTime: "08:30",
  },
};
```

Note that `timeSpent` must be in _seconds_. `startTime` can be in _any time format_. (e.g. 12, 3 pm, 15:49, 11:49:34 a.m., etc)
After defining `standup` as a recurring activity, you can run `jira log standup`. Look for more examples in [cli-config.js](./cli-config.js).
**TIP**: use cron-jobs to automate the logging of recurring events.

#### List issues

To get a table displaying the current issues in the sprint, run

```node
jira issue|is list|ls [STATUS_CATEGORY]
```

#### Lookup issue information

To view information about a specific Jira issue

```node
jira info|i [ISSUE_KEY]
```

#### Adding comments

```node
jira comment|cm add ISSUE_KEY COMMENT [MENTION]
```

You can also include a `mention` (first name of person you want to mention). This will add a mention block at the front of your comment in Jira.
**Note**: the `COMMENT` argument must be a quoted string.

#### Help

Whenever stuck or when you trying to find info or aliases for a command, run

```node
jira [COMMAND ...] - h
```
npm package: @pietile-native-kit/expandable-view
Description: View that changes its height with nice animation
Latest version: 1.2.0

# ExpandableView

[![npm version](https://badgen.net/npm/v/@pietile-native-kit/expandable-view?color=56C838)](https://www.npmjs.com/package/@pietile-native-kit/expandable-view)
[![install size](https://badgen.net/packagephobia/install/@pietile-native-kit/expandable-view)](https://packagephobia.now.sh/result?p=@pietile-native-kit/expandable-view)

Manages content height gracefully allowing to alternate between two states: expanded and collapsed.
ExpandableView doesn't require setting content height explicitly and measures it automatically.
Useful for building accordion-like components.

<img src="https://media.giphy.com/media/ejxlyN0ZkRTbgA8g81/giphy.gif" />

## Installation

Using yarn

```sh
yarn add @pietile-native-kit/expandable-view
```

or using npm

```sh
npm install -S @pietile-native-kit/expandable-view
```

## Usage

Usage is quite simple: put content in `ExpandableView` and control `show` property.

## Example

```jsx
import React, { useState } from 'react';

import { ExpandableView } from '@pietile-native-kit/expandable-view';
import { Text, TouchableHighlight, View } from 'react-native';

function ExpandableViewExample({ style }) {
  const [show, setShow] = useState(true);

  function onPress() {
    setShow(!show);
  }

  return (
    <View>
      <TouchableHighlight onPress={onPress}>
        <Text style={{ padding: 8 }}>Toggle</Text>
      </TouchableHighlight>

      <ExpandableView show={show}>
        <Text style={{ fontSize: 86 }}>Expandable content</Text>
      </ExpandableView>
    </View>
  );
}
```

## API

### Properties

| name         | description                                                                   |    type | default |
| :----------- | :---------------------------------------------------------------------------- | ------: | :------ |
| children     | Content                                                                       |    Node | -       |
| contentStyle | Style of container that wraps children and used to measure content dimensions |   style | -       |
| show         | Show or hide content                                                          | boolean | false   |
| style        | Style of component itself                                                     |   style | -       |

## License

Pietile ExpandableView is MIT License.
npm package: @pietile-native-kit/fade-view
Description: View that changes content gracefully
Latest version: 2.1.0

# FadeView

[![npm version](https://badgen.net/npm/v/@pietile-native-kit/fade-view?color=56C838)](https://www.npmjs.com/package/@pietile-native-kit/fade-view)
[![install size](https://badgen.net/packagephobia/install/@pietile-native-kit/fade-view)](https://packagephobia.now.sh/result?p=@pietile-native-kit/fade-view)

Changes content with _FadeOut-FadeIn_ animation. `FadeView` uses `data` prop to know when start
the transition. Useful in situations when you want to change content smoothly, implementing tabs
content for example.

<img src="https://media.giphy.com/media/UowUvUvitH7sWZVjSY/giphy.gif" />

## Installation

Using yarn

```sh
yarn add @pietile-native-kit/fade-view
```

or using npm

```sh
npm install -S @pietile-native-kit/fade-view
```

## Usage

Wrap the content in `FadeView` and set `data` to value that controls content. Every time data
changes `FadeView` will remember children, play _FadeOut_ animation and then _FadeIn_ with current children
already. So it's important to notice that `FadeView` passthrough children all the time except when
playing _FadeOut_.

## Code example

```jsx
import React, { Component } from 'react';

import { StyleSheet, Text, TouchableOpacity } from 'react-native';
import { FadeView } from '@pietile-native-kit/fade-view';

class FadeViewExample extends Component {
  state = { isCat: true };

  onPress = () => this.setState(({ isCat }) => ({ isCat: !isCat }));

  render() {
    const { isCat } = this.state;

    return (
      <FadeView style={styles.container} data={isCat}>
        <TouchableOpacity
          style={[styles.touchable, { backgroundColor: isCat ? '#c4c' : '#bfb' }]}
          onPress={this.onPress}
        >
          <Text style={styles.text}>{isCat ? '🐱' : '🐶'}</Text>
        </TouchableOpacity>
      </FadeView>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    ...StyleSheet.absoluteFillObject,
    justifyContent: 'center',
    alignItems: 'center',
  },
  touchable: {
    borderRadius: 16,
    padding: 16,
  },
  text: {
    fontSize: 86,
  },
});

export default FadeViewExample;
```

## API

### Properties

| name     | description                                                     |   type | default |
| :------- | :-------------------------------------------------------------- | -----: | :------ |
| children | Content                                                         |   Node | -       |
| data     | Marker property for telling the FadeView to do _FadeOut-FadeIn_ |    any | -       |
| duration | Hide and show animations duration                               | number | 150     |
| style    | Style of component                                              |  style | -       |

## License

Pietile FadeView is MIT License.
npm package: @pietile-native-kit/keyboard-aware-srollview
Description: ScrollView that moves child input just above the keyboard when later gets focus
Latest version: 1.3.3
Deprecated: Renamed to @pietile-native-kit/keyboard-aware-scrollview (Note "c" was missing in word scroll)

# KeyboardAwareSrollView

There is a typo in the package name (KeyboardAware**Sr**ollView). 😅
Moved in [KeyboardAwareS**c**rollView](https://github.com/pietile/pietile-native-kit/tree/master/packages/keyboard-aware-scrollview)
npm package: @pietrobassi/environment
Description: Extremely simple environment module (config loader) for your NestJS application
Author: Vlad Krokhin
Latest version: 0.1.1

<h1 align="center">Environment</h1>
Extremely simple environment module (config loader) for your NestJS application

## Installation
```bash
npm install @nestjs-steroids/environment
```
## Usage
First of all, let's define our application environment
### AppEnvironment
```typescript
import { IsEnum, IsNumber, Max, Min } from 'class-validator';
import { Transform } from 'class-transformer';
import { Env } from '@nestjs-steroids/environment';

enum NodeEnv {
  Development = 'development',
  Production = 'production'
}

export class AppEnvironment {
  /**
   * Env decorator mark environment variable that we want to assign
   * (Tip) Without name env Env decorator makes auto UPPER_SNAKE_CASE conversion (e.g. isTest -> IS_TEST)
   */
  @Env('PORT')
  /**
   * Transform is useful for all sorts of transformations or parsing complex values
   * For example: @Transform(value => value.toLowerCase() === 'true')
   */
  @Transform(parseInt)
  /**
   * Also, you could use class-validator operators for validation of the correctness of environment variables
   */
  @IsNumber()
  @Min(0)
  @Max(65535)
  port: number;

  @Env('NODE_ENV')
  @IsEnum(NodeEnv)
  nodeEnvironment: NodeEnv
}
```
### AppModule
Then, register `EnvironmentModule` in your application 
```typescript
import { Module } from '@nestjs/common';
import { EnvironmentModule } from '@nestjs-steroids/environment';
import { AppEnvironment } from './app-environment';

@Module({
  imports: [
    EnvironmentModule.forRoot({
      isGlobal: true,
      loadEnvFile: true,
      useClass: AppEnvironment,
    }),
  ],
})
export class AppModule {}
```

### AppService
Let's use our application environment in services
```typescript
import { Injectable } from '@nestjs/common';
import { AppEnvironment } from './app-environment';

@Injectable()
export class AppService {
  constructor(private readonly appEnvironment: AppEnvironment) {}

  getNodeEnvironment(): string {
    return `Application environment is: ${this.appEnvironment.nodeEnvironment}`;
  }
}
```

## Advanced usage
Sometimes we need access to our environments without creation NestJS application (e.g. ORM config, etc.).
So we can create an `AppEnvironment` using `getEnvironment` factory method and use it like class with static properties.
```typescript
import { getEnvironment } from '@nestjs-steroids/environment';
export const appEnv = getEnvironment<AppEnvironment>(AppEnvironment)

// Usage
appEnv.nodeEnvironment
```
Also, we can reuse this instance in `EnvironmentModule`
```typescript
import { Module } from '@nestjs/common';
import { EnvironmentModule } from '@nestjs-steroids/environment';
import { appEnv, AppEnvironment } from './app-environment';

@Module({
  imports: [
    EnvironmentModule.forRoot({
      isGlobal: true,
      loadEnvFile: true,
      useClass: AppEnvironment, // Class that we want to provide
      useValue: appEnv, // Class than we want to provide
    }),
  ],
})
export class AppModule {}

```

## License
[MIT](LICENSE.md)
npm package: @pietrobassi/kysely-codegen
Description: `kysely-codegen` generates Kysely type definitions from your database. That's it.
Author: Robin Blomberg
Latest version: 0.1.0

# ![kysely-codegen](./assets/kysely-codegen-logo.svg) <!-- omit from toc -->

`kysely-codegen` generates Kysely type definitions from your database. That's it.

## Table of contents <!-- omit from toc -->

- [Installation](#installation)
- [Generating type definitions](#generating-type-definitions)
- [Using the type definitions](#using-the-type-definitions)

## Installation

```
npm install --save-dev kysely-codegen

# You will also need to install Kysely with your driver of choice:
npm install kysely pg
npm install kysely mysql2
npm install kysely better-sqlite3
npm install @libsql/kysely-libsql
```

## Generating type definitions

The most convenient way to get started is to create an `.env` file with your database connection string:

```
# PostgreSQL
DATABASE_URL=postgres://username:password@yourdomain.com/database

# MySQL
DATABASE_URL=mysql://username:password@yourdomain.com/database

# SQLite
DATABASE_URL=C:/Program Files/sqlite3/db

# LibSQL
DATABASE_URL=libsql://token@host:port/database
```

> If your URL contains a password with special characters, those characters may need to be [percent-encoded](https://en.wikipedia.org/wiki/Percent-encoding#Reserved_characters).
>
> If you are using _PlanetScale_, make sure your URL contains this SSL query string parameter: `ssl={"rejectUnauthorized":true}`

Then run:

```
kysely-codegen
```

This command will generate a `.d.ts` file from your database, for example:

```ts
import { ColumnType } from 'kysely';

export type Generated<T> = T extends ColumnType<infer S, infer I, infer U>
  ? ColumnType<S, I | undefined, U>
  : ColumnType<T, T | undefined, T>;

export type Timestamp = ColumnType<Date, Date | string, Date | string>;

export interface Company {
  id: Generated<number>;
  name: string;
}

export interface User {
  company_id: number | null;
  created_at: Generated<Timestamp>;
  email: string;
  id: Generated<number>;
  is_active: boolean;
  name: string;
  updated_at: Timestamp;
}

export interface DB {
  company: Company;
  user: User;
}
```

For more options, run `kysely-codegen --help`.

## Using the type definitions

Import `DB` into `new Kysely<DB>`, and you're done!

```ts
import { Kysely, PostgresDialect } from 'kysely';
import { DB } from 'kysely-codegen';
import { Pool } from 'pg';

const db = new Kysely<DB>({
  dialect: new PostgresDialect({
    pool: new Pool({
      connectionString: process.env.DATABASE_URL,
    }),
  }),
});

const rows = await db.selectFrom('user').selectAll().execute();
//    ^ { company_id: number | null; created_at: Date; email: string; id: number; ... }[]
```
npm package: @pietrobondioli/blip-ds
Description: Blip Design System
Latest version: 0.0.0-development

![Built With Stencil](https://img.shields.io/badge/-Built%20With%20Stencil-16161d.svg?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjIuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTEyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI%2BCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI%2BCgkuc3Qwe2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU%2BCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MjQuNywzNzMuOWMwLDM3LjYtNTUuMSw2OC42LTkyLjcsNjguNkgxODAuNGMtMzcuOSwwLTkyLjctMzAuNy05Mi43LTY4LjZ2LTMuNmgzMzYuOVYzNzMuOXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTQyNC43LDI5Mi4xSDE4MC40Yy0zNy42LDAtOTIuNy0zMS05Mi43LTY4LjZ2LTMuNkgzMzJjMzcuNiwwLDkyLjcsMzEsOTIuNyw2OC42VjI5Mi4xeiIvPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNDI0LjcsMTQxLjdIODcuN3YtMy42YzAtMzcuNiw1NC44LTY4LjYsOTIuNy02OC42SDMzMmMzNy45LDAsOTIuNywzMC43LDkyLjcsNjguNlYxNDEuN3oiLz4KPC9zdmc%2BCg%3D%3D&colorA=16161d&style=flat-square) ![npm version](https://img.shields.io/npm/v/blip-ds) ![npm bundle size min](https://img.shields.io/bundlephobia/min/blip-ds) ![npm bundle size mingzip](https://img.shields.io/bundlephobia/minzip/blip-ds)

** Attention: This project is just a fork of (blip-ds)[https://github.com/takenet/blip-ds], the only difference is that this project addressed the compatibility issues with Vite-base consumer projects. **

# BliP DS

This project was born based out of the need to create a Design System for Blip. Components are written in Web Components using the StencilJS library created by the Ionic team.

Components. Guides. Brands. It's all here, no riddles. [UAI is all yours](https://design.take.net/240287753/p/9953dc-take-blip-ds-elementar).

![thumbnail-components](./src/assets/svg/thumbnail-github.svg).

## Installation

The UAI installation is available through the [Design Portal](https://design.take.net/240287753/p/216ef2-instalao/b/8176c4).

## License

`blip-ds` is under the [ISC license](https://opensource.org/licenses/ISC).
npm package: @pietroiu/fp
Description: Simple functional programing javascript library.
Author: Alexandru Pietroiu
Latest version: 1.1.4

# fp
[![Build Status](https://travis-ci.org/Pietroiu/fp.svg?branch=master)](https://travis-ci.org/Pietroiu/fp) ![GitHub file size in bytes](https://img.shields.io/github/size/pietroiu/fp/index.js.svg) ![GitHub last commit](https://img.shields.io/github/last-commit/pietroiu/fp.svg) ![GitHub top language](https://img.shields.io/github/languages/top/pietroiu/fp.svg) [![License: MIT](https://img.shields.io/github/license/Pietroiu/fp.svg)](https://opensource.org/licenses/MIT) [![Depfu](https://badges.depfu.com/badges/23d6c35858d2c06949a9ed85bd51ffc0/overview.svg)](https://depfu.com/github/Pietroiu/fp?project_id=7426) ![Maintenance](https://img.shields.io/maintenance/yes/2020.svg)

Simple functional programming collection of [functions](https://github.com/Pietroiu/fp/tree/master/modules). Library contains pure functions to help you make the code more easy to manage. Most methods are curried and they use a function first, value last approach.
npm package: @pietrop/aes31-adl-composer
Description: A node module to convert a json sequence into an AES31 ADL (audio decision list) compatible with SADiE audio editing software.
Latest version: 1.0.1

# AES31 ADL Composer

_Work in progress_ 

A node module to convert a json sequence into an AES31 ADL (audio decision list) compatible with SADiE audio editing software. 

Originally from [BBC R&D Chris Baume python version, as part of BBC Dialogger/Discourse text based video editing project](https://github.com/bbc/edl-convert/blob/master/edl2aes31.py)

## Setup
<!-- _stack - optional_
_How to build and run the code/app_ -->

<!-- git clone  -->

cd, npm install

## Usage - development 
<!-- TBC publish to npm -->
<!-- requrie module and -->
see example usage for example

## Usage - production

```
npm install @pietrop/aes31-adl-composer
```

require or import in your code and see example usage for more details

## System Architecture
<!-- _High level overview of system architecture_ -->

Originally converted from Chris Baume python code, see [`python-version/edl2aes31.py`](./ython-version/edl2aes31.py)

## Development env
 <!-- _How to run the development environment_
_Coding style convention ref optional, eg which linter to use_
_Linting, github pre-push hook - optional_ -->

- [ ] npm > `6.1.0`
- [ ] node v 10 - [lts/dubnium](https://scotch.io/tutorials/whats-new-in-node-10-dubnium)
- [ ] see [`.eslintrc`](./.eslintrc) in the various packages for linting rules

Node version is set in node version manager [`.nvmrc`](https://github.com/creationix/nvm#nvmrc)

## Build
<!-- _How to run build_ -->

<!-- TBC might not need transpiling -->

_TBC_

## Tests
<!-- _How to carry out tests_ -->

<!-- TBC using jest -->
<!-- npm run test -->

_TBC_

## Deployment
<!-- _How to deploy the code/app into test/staging/production_ -->

<!-- TBC onto NPM -->
<!-- npm run publish  -->

To publish to npm 
```
npm run publish:public
```
npm package: @pietrop/assemblyai-to-dpe
Description: <!-- _One liner + link to confluence page_ _Screenshot of UI - optional_ -->
Author: Pietro Passarelli
Latest version: 1.0.0

## `assemblyai-to-dpe`

<!-- _One liner + link to confluence page_
_Screenshot of UI - optional_ -->

Node module to convert from assemblyAI STT json to [DPE json format](https://github.com/bbc/digital-paper-edit).
It can convert AssemblyAI results, with or without speaker `utterances`.
If speaker `utterances` are not present, it uses punctuation to create the paragraphs.

## Setup

<!-- _stack - optional_
_How to build and run the code/app_ -->

```
git clone git@github.com:pietrop/assemblyai-to-dpe.git
```

```
cd assemblyai-to-dpe
```

```
npm install
```

## Usage

```
npm install @pietrop/assemblyai-to-dpe
```

```js
const convert = require('@pietrop/assemblyai-to-dpe');
const sampleJson = require('./sample/assemblyai-speakers-sample.json');

const json = convert(sampleJson);

console.log(json);
```

<details>
  <summary>Example of output in DPE format</summary>
 
 ```json
{
  "words": [
    {
      "id": 0,
      "text": "Good",
      "start": 0,
      "end": 0.44
    },
    {
      "id": 1,
      "text": "day,",
      "start": 0.4,
      "end": 0.54
    },
    ...
  ],
  "paragraphs": [
    {
      "end": 101.18,
      "start": 0,
      "speaker": "SPEAKER_A"
    },
    ...
  ]
}
```
</details>

<!-- ## System Architecture -->

<!-- _High level overview of system architecture_ -->

<!-- ## Documentation

There's a [docs](./docs) folder in this repository.

[docs/notes](./docs/notes) contains dev draft notes on various aspects of the project. This would generally be converted either into ADRs or guides when ready.

[docs/adr](./docs/adr) contains [Architecture Decision Record](https://github.com/joelparkerhenderson/architecture_decision_record).

> An architectural decision record (ADR) is a document that captures an important architectural decision made along with its context and consequences.

We are using [this template for ADR](https://gist.github.com/iaincollins/92923cc2c309c2751aea6f1b34b31d95) -->

## Development env

 <!-- _How to run the development environment_ -->

- npm > `6.1.0`
- [Node 10 - dubnium](https://scotch.io/tutorials/whats-new-in-node-10-dubnium)

Node version is set in node version manager [`.nvmrc`](https://github.com/creationix/nvm#nvmrc)

<!-- _Coding style convention ref optional, eg which linter to use_ -->

<!-- _Linting, github pre-push hook - optional_ -->

## Build

<!-- _How to run build_ -->

_NA_

## Tests

<!-- _How to carry out tests_ -->

_NA_

## Deployment

<!-- _How to deploy the code/app into test/staging/production_ -->

```
npm run publish:public
```
npm package: @pietrop/edl-composer
Description: ELD composer can be used to create Edit Decision List. EDL, Edit Decision List, is a plain text format that describes a video sequence. It can be opened in a video editing software to reconnect media to assemble a video sequence
Author: Pietro Passarelli
Latest version: 2.0.1

## Edl Composer

The EDL composer node module can be used to create Edit Decision List. 
EDL, Edit Decision List, is a plain text format that describes a video sequence. It can be opened in a video editing software to reconnect media to assemble a video sequence. Originally extracted from autoEdit.io


## Setup

### Setup for Contributing 

Clone the repo
 
```
git clone git@github.com:pietrop/edl_composer.git
```

Install dependencies 
```
npm install
```

And if you want to try it out 

```
node example-usage.js
```

### Setup for usage

To use in your project, the module can be found on [npm as `@pietrop/edl-composer`](https://www.npmjs.com/package/@pietrop/edl-composer)
so just run the following to add to your project. 

```
npm install @pietrop/edl-composer
```

## Usage


The EDL sequence should have the following attributes

```javascript
var edlSq = {
    "title": "Demo Title of project",
    "events":  [
      { "id":1,
        "startTime": 10, // in seconds 
        "endTime": 20,
        "reelName":"SomeReelName",
        "clipName":"Something.mov",
        "offset": "00:00:28:08", //offset is optional default is "00:00:00:00"
        "fps": 25
      },
      { "id":2,
        "startTime": 45,
        "endTime": 55,
        "reelName":"SomeOtherReelName",
        "clipName":"SomethingElse.mov",
        "offset": "00:00:28:08",
        "fps": 29.97
      },
        { "id":2,
        "startTime": 45,
        "endTime": 55,
        "reelName":"NA",
        "clipName":"SomethingElse.mov",
        "offset": "00:00:28:08",
        "fps": 24
      }
    ]
}
```

And it can be parsed and composed into an EDL as following. 

```javascript

var edl = new EDL(edlSq);
console.log(edl.compose());
```

This returns a string that you can write to file or else.

```
TITLE: Demo Title of project
FCM: NON-DROP FRAME

001   SOMEREE  AA/V  C  00:00:00:00 00:00:00:00 00:00:00:00 00:00:10:00
* FROM CLIP NAME: Something.mov
FINAL CUT PRO REEL: SomeReelName REPLACED BY: SOMEREE

002   SOMEOTH  AA/V  C  00:00:00:00 00:00:00:00 00:00:10:00 00:00:20:00
* FROM CLIP NAME: SomethingElse.mov
FINAL CUT PRO REEL: SomeOtherReelName REPLACED BY: SOMEOTH

002    AX  AA/V  C  00:00:00:00 00:00:00:00 00:00:20:00 00:00:30:00
* FROM CLIP NAME: SomethingElse.mov

```

## System Architecture
_High level overview of system architecture_

See docs guides [understanding edl specs](./docs/guides/understanding-edl-specs.md)

## Development env
 _How to run the development environment_
_Coding style convention ref optional, eg which linter to use_
_Linting, github pre-push hook - optional_

- node
- npm 

## Build
_How to run build_

No build step 
 

## Tests
_How to carry out tests_

Minimal test using jest

```
npm test
```
 

## Deployment
_How to deploy the code/app into test/staging/production_

No deployment just a node module