open-index/open-npm huggingface dataset:
npm package: @microsoft/atlas-js
Description: Scripts backing the Atlas Design System used by Microsoft's Developer Relations.
Author: Microsoft Corporation
Latest version: 1.15.0

# Atlas JS

Welcome to TypeScript/JavaScript code backing the Atlas Design system. While Atlas endeavors to find CSS-only strategies for creating modern UI patterns, there are times when writing behavior code is necessary. These cases tend to fall into a one of several categories.

- A component's markup / attributes require changing upon interaction for compatibility with screen readers or other assistive technology.
- A particular pattern is a good candidate for a re-usable web component. That is, its behavior is relatively straightforward and lightweight.

## Installing this package

Install the `@microsoft/atlas-js` package in your project's dependencies.

```
npm i @microsoft/atlas-js;
```

## Accesssing its Typescript through the `src` folder

Include the index file directly to add behaviors to your scripts.

```ts
import '@microsoft/atlas-js/src/index';
```

## Accessing the built JS through the `dist` folder

```js
import '@microsoft/atlas-js/dist/index';
```

Or include a script tag to pull the built JavaScript from UNPKG.

```html
<script src="https://unpkg.com/@microsoft/atlas-js@0.0.1/dist/index.js" type="module" defer>
```
npm package: @microsoft/azure-data-factory-utilities
Description: Azure Data Factory utilities library
Latest version: 1.0.3

# Azure Data Factory utilities

This library provides basic functionality to validate and generate an ARM template given a set of Data Factory resources.

Note: Users should only use [Active LTS or Maintenance LTS releases of node version](https://nodejs.org/about/previous-releases) to avoid failures while running the below commands.

## Export ARM template

Run `npm run start export <rootFolder> <factoryId> [outputFolder]` to export the ARM template using the resources of a given folder.

- rootFolder is a mandatory field that represents where the Data Factory resources are located.
- factoryId is a mandatory field that represents the Data factory resource id in the format: `/subscriptions/<subId>/resourceGroups/<rgName>/providers/Microsoft.DataFactory/factories/<dfName>`
- outputFolder is an optional parameter that specifies the relative path to save the generated ARM template.

Example(s):  
`npm run start export C:\DataFactories\DevDataFactory /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testResourceGroup/providers/Microsoft.DataFactory/factories/DevDataFactory ArmTemplateOutput`

`npm run start-preview export C:\DataFactories\DevDataFactory /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testResourceGroup/providers/Microsoft.DataFactory/factories/DevDataFactory ArmTemplateOutput`

- **start-preview** command uses **--preview** flag to get an improved PrePostDeploymentScript.ps1 script that skips stop/start trigger if the trigger is unchanged.

`npm run start --path \\server\share\main.js export C:\DataFactories\DevDataFactory /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testResourceGroup/providers/Microsoft.DataFactory/factories/DevDataFactory ArmTemplateOutput`

- **--path** is an optional argument allows the user to point to an existing downloaded bundle's share or direct path. This might be useful when there is a download issue due to networking challenges such as proxy requirements. This argument supercedes the --url argument in combined usage.

## Validate

Run `npm run start validate <rootFolder> <factoryId>` to validate all the resources of a given folder.

- rootFolder is a mandatory field that represents where the Data Factory resources are located.
- factoryId is a mandatory field that represents the Data factory resource id in the format: `/subscriptions/<subId>/resourceGroups/<rgName>/providers/Microsoft.DataFactory/factories/<dfName>`

Example:  
`npm run start validate C:\DataFactories\DevDataFactory /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testResourceGroup/providers/Microsoft.DataFactory/factories/DevDataFactory`
npm package: @microsoft/azure-iot-create-react-app
Description: Create React apps with no build configuration.
Latest version: 0.0.5

# create-react-app

This package includes the global command for [Create React App](https://github.com/facebookincubator/create-react-app).<br>
Please refer to its documentation:

* [Getting Started](https://github.com/facebookincubator/create-react-app/blob/master/README.md#getting-started) – How to create a new app.
* [User Guide](https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md) – How to develop apps bootstrapped with Create React App.
npm package: @microsoft/azure-iot-react-scripts
Description: Configuration and scripts for the baseline Azure IoT Create React App.
Latest version: 0.3.12

# react-scripts

This package includes scripts and configuration used by [Create React App](https://github.com/facebookincubator/create-react-app).<br>
Please refer to its documentation:

* [Getting Started](https://github.com/facebookincubator/create-react-app/blob/master/README.md#getting-started) – How to create a new app.
* [User Guide](https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md) – How to develop apps bootstrapped with Create React App.
npm package: @microsoft/azure-iot-ux-fluent-controls
Description: Azure IoT UX Fluent Controls
Author: Azure IoT
Latest version: 8.0.8

# Azure IoT UX Fluent Controls

This project contains common React controls (Form Inputs, DateTime etc.) that match the Azure IoT Fluent design.

# Get started
```
npm install --save @microsoft/azure-iot-ux-fluent-controls
```

This project is built on top of [Azure IoT UX Fluent CSS](https://github.com/Azure/iot-ux-fluent-css) and expects it -- along a few other common packages like React -- to be present in your app as peer dependencies. Run the following command to install these:
```
npm install --save @microsoft/azure-iot-ux-fluent-css react react-dom classnames prop-types
```

On install, this project will create a `_colors.scss` file at your `<app root>/src/styles/`. This allows you to override or extend the default colors specified in the CSS library and have it apply to the controls seamlessly. For more details, see the comments and examples in `_colors.scss`.


# Quick overview
The full documentation and sample code for the controls is available at https://aka.ms/iotfluentcontrols, but in general, the pattern is:

```tsx
import { DateField } from '@microsoft/azure-iot-ux-fluent-controls';
const initialState = {value: 'Sep 20, 2010 07:00:00 GMT'};

<div>
    <div style={{marginBottom: '20px'}}>
        Current Value: {state.value}
    </div>
    <DateField
        name='date-picker'
        label='Default Example (Local)'
        onChange={(newValue) => setState({value: newValue}) }
        initialValue={state.value}
    />
</div>
```
![Image of DateField control](https://i.imgur.com/KAT2EBf.jpg)

## Contributing

This project welcomes contributions and suggestions.  Most contributions require you to agree to a
Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide
a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions
provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.


## Build
1. git clone https://github.com/Azure/iot-ux-fluent-controls.git
2. npm install
3. npm run build

## Docs
1. npm run docs:build
2. npm run docs
3. You can now view style guide in the browser:
    - On local:         http://localhost:6060/
    - On your network:  http://{machine ip address}:6060/

## Bug/ Issue

https://github.com/Azure/iot-ux-fluent-controls/issues
npm package: @microsoft/bc-replay
Description: Tooling for using Business Central Page Scripting feature in automation.
Author: Microsoft
Latest version: 0.1.119


# BC replay

BC replay is an npm command used to replay Business Central recordings.

### Requirements
The following things must be available to use this command:
- NodeJs minimum version 16.14.0
- PowerShell version 7+

### Getting started
Create a new folder and `cd` to it.

#### Add `@microsoft/bc-replay` and install playwright
```
npm i @microsoft/bc-replay --save
```

Now add a folder to store some recordings, e.g. mkdir recordings and add some recording .yml files.

Then you can run any tests added to the recordings folder against Business Central web client instance:
```
npx replay .\recordings\*.yml -StartAddress http://localhost:8080/
```

## Parameters
```
npx replay
      [-Tests] <String>
      -StartAddress <String>
      [-Authentication Windows|AAD|UserPassword]
      [-UserNameKey <String>]
      [-PasswordKey <String>]
      [-MultiFactorType None|TOTP|Certificate]
      [-MultiFactorSecretKey <String>]
      [-Headed]
      [-UseServerReplay]
      [-ResultDir <String>]
```

#### -Tests
File glob pattern to select the tests recordings to run

#### -StartAddress
The url to the deployed web client.

#### -Authentication
The authentication to use against the web client. One of Windows, AAD, UserPassword. Windows is the default.
Multi-factor authentication is available only when set to AAD.

#### -UserNameKey & -PasswordKey
When -Authentication is set to AAD or UserPassword then a user name and password must be given. These must be transferred as environment variables and -UserNameKey and -PasswordKey are used to specify which environment variables contains these.

#### -MultiFactorType
Sets the multi-factor authentication mechanism. Valid options are None, TOTP, and Certificate. Defaults to None. This parameter can only be used together with `-Authentication AAD`. When `-UseServerReplay` is present, this value must remain `None`.

#### -MultiFactorSecretKey
The environment variable that stores the MFA secret referenced by `-MultiFactorType`. The environment variable must be set before invoking the command.
* For TOTP this must be the TOTP secret key.
* For Certificate this must hold the Base64-encoded PFX certificate.

#### -Headed
Will show the test running in the browsers.

#### -ResultDir
The directory to write the test results.
npm package: @microsoft/bf-generate-library
Description: Generate Bot Framework Adaptive Dialogs from JSON schema.
Author: Microsoft
Latest version: 4.14.0-preview.20210714.e1b6d70

<!-- omit in TOC -->
@microsoft/bf-generate
======================

Generate Bot Framework Adaptive Dialogs from JSON schema.

[![oclif](https://img.shields.io/badge/cli-oclif-brightgreen.svg)](https://oclif.io)
[![Version](https://img.shields.io/npm/v/@microsoft/bf-generate.svg)](https://npmjs.org/package/@microsoft/bf-generate)
[![Downloads/week](https://img.shields.io/npm/dw/@microsoft/bf-generate.svg)](https://npmjs.org/package/@microsoft/bf-generate)
[![License](https://img.shields.io/npm/l/@microsoft/bf-generate.svg)](https://github.com/Microsoft/https://github.com/Microsoft/BotBuilder-Samples/blob/master/package.json)

# Relevant docs

- [Full documentation](https://github.com/microsoft/BotBuilder-Samples/tree/master/experimental/generation/generator)
- [Setup & get started](https://github.com/microsoft/BotBuilder-Samples/tree/master/experimental/generation/generator/docs/get-started.md)

# Commands

<!-- commands -->

- [bf dialog:generate](#bf-dialoggenerate)

## `bf dialog:generate`

```
USAGE

`bf dialog:generate`

OPTIONS

- **--force, -f** Force overwriting generated files. (optional)
- **--help, -h** Generate help. (optional)
- **--locale, -l** Locales to generate. (optional, default: en-us)
- **--merge, -m** Merge the newly generated assets into the output directory. (optional)
- **--output, -o** Output directory. (optional)
- **--prefix, -p** Prefix for generated files. (optional, default: schema name)
- **--schema, -s** Path to your app.schema file. (optional, default: https://raw.githubusercontent.com/microsoft/botbuilder-samples/master/generation/runbot/RunBot.schema)
- **--templates, -t** Directories with templates to use for generating assets. First definition wins.  
- **--verbose, -v** Verbose logging of generated files. (optional, default: standard)

EXAMPLES

  bf dialog:generate {JSON SCHEMA FILE} -o {OUTPUT LOCATION}
```

_See [source code](src/commands/generate.ts).
npm package: @microsoft/bf-sampler-cli
Description: Lu utterances down sampling tool
Author: Microsoft
Latest version: 4.12.0-beta.20210322.314475a

@microsoft/bf-sampling-cli
======================

This package is a plugin for @microsoft/botframework-cli. It is not designed to be consumed as an independent package.

[![oclif](https://img.shields.io/badge/cli-oclif-brightgreen.svg)](https://oclif.io)
[![Version](https://img.shields.io/npm/v/@microsoft/bf-luis-cli.svg)](https://npmjs.org/package/@microsoft/bf-luis-cli)

Sampler CLI is used for sampling utterances of lu files.

## Prerequisite

- [Node.js](https://nodejs.org/) version 12 or higher
- @microsoft/botframework-cli
```
$ npm install -g @microsoft/botframework-cli
```

## Installation
To install the bf-sampler-cli plugin:

```
bf plugins:install @microsoft/bf-sampler-cli@beta
```

To uninstall the bf-sampler-cli plugin, a step for upgrading the plugin:

```
bf plugins:uninstall @microsoft/bf-sampler-cli
```

# Commands

<!-- commands -->

* [`bf sampler`](#bf-sampler)
* [`bf sampler:sampling`](#bf-samplersampling)

## `bf sampler`

Display Sampler CLI available commands

```
USAGE
  $ bf sampler -h

OPTIONS
  -h, --help  Sampler commands help
```

_See code: [src\commands\orchestrator\index.ts]https://github.com/microsoft/botframework-cli/blob/beta/packages/sampler/src/commands/sampler/index.ts)_

## `bf sampler:sampling`

Do sampling to utterances in lu files.

```
USAGE
  $ bf sampler:sampling -h

OPTIONS
  -f, --force                               [Default: false] Force overwrites files if they already exist.
  -h, --help                                Orchestrator 'assess' command help.
  -i, --in=in                               Path to lu file or folder that contains lu files. Default to current working directory.
  -o, --out=out                             Path where sampled lu files will be placed. Default to current working directory.
  --maxImbalanceRatio=maxImbalanceRatio     [Default: 10] Max imbalance ratio for sampling.
  --maxUtteranceAllowed=maxUtteranceAllowed [Default: 15000] Max utterances allowed after samping.
  --sampleSize=sampleSize                   [Default: 2] sample size.

EXAMPLE
  bf sampler:sampling --in ./path/to/file/or/folder --out ./path/to/folder/ --maxImbalanceRatio 10 --maxUtteranceAllowed 15000 --sampleSize 2
```

_See code: [src\commands\orchestrator\assess.ts]https://github.com/microsoft/botframework-cli/blob/beta/packages/orchestrator/src/commands/sampler/sampling.ts)_


<!-- commandsstop -->
npm package: @microsoft/bot-components-helpandcancel
Description: Contains Adaptive Dialog assets to support Help and Cancel conversational flows in a bot built on the Azure Bot Framework.
Author: Bot Framework
Latest version: 1.4.0

# Microsoft.Bot.Components.HelpAndCancel

Dialogs and supporting declarative assets to handle "help" and "cancel" utterances.

## Getting started

Once you've installed the package using [Bot Framework Composer](https://docs.microsoft.com/composer), you'll want to perform the steps outlined below.

### Connect your new dialogs to your root dialog

To add your "CancelDialog" dialog:

1. From the Design tab in Composer, add a new "Intent Recognized" trigger to your root dialog.
1. Name your trigger "Cancel"
1. Add some example utterances for your language model (for example "Cancel", "Quit", "Go back" etc.)
1. Click "Submit" to add the trigger.
1. Click the "+" button, and then "Dialog Management" > "Begin a new dialog".
1. In the "Dialog Name" dropdown select the "CancelDialog" option.

Repeat the above steps for the Help dialog. You may choose to use an "Unknown intent" trigger if you wish to respond to any unknown user utterances with the help dialog.

### Customizing your dialogs

The dialogs contained in this package are examples for handling help and cancel utterances from your users. You'll want to customize their messages and trigger intents to meet your needs.

## Feedback and issues

If you encounter any issues with this package, or would like to share any feedback please open an Issue in our [GitHub repository](https://github.com/microsoft/botframework-components/issues/new/choose).
npm package: @microsoft/bot-components-teams
Description: Rule system for the Microsoft BotBuilder adaptive dialog system, with integration specific to Microsoft Teams.
Author: Microsoft Corp.
Latest version: 1.4.0

# Microsoft.Bot.Components.Teams

Actions and triggers for working with the Microsoft Teams channel from your Bot Framework bot. This package contains:

- Triggers for responding to Microsoft Teams specific events, like Messaging Extensions, Task Modules, and other invokes.
- Actions for sending Teams-specific activities.
- Actions for calling Teams-specific APIs to get additional context and information for your bot.

## Getting started

Once you've installed the package using [Bot Framework Composer](https://docs.microsoft.com/composer), you can add our actions and triggers to your bot.

Make sure you've enabled the connection to Microsoft Teams in the `Connections` tab of your `Project Settings` in Composer.

## Learn more

Learn more about [creating bots for Microsoft Teams](https://docs.microsoft.com/microsoftteams/platform/bots/what-are-bots).

## Feedback and issues

If you encounter any issues with this package, or would like to share any feedback please open an Issue in our [GitHub repository](https://github.com/microsoft/botframework-components/issues/new/choose).
npm package: @microsoft/bot-components-welcome
Description: An Adaptive Dialog for greeting new and returning users on first interaction with your bot built on the Azure Bot Framework.
Author: Bot Framework
Latest version: 1.4.0

# Microsoft.Bot.Components.Welcome

This package contains a dialog and supporting declarative assets for greeting new and returning users.

## Getting Started

Once you've installed the package using [Bot Framework Composer](https://docs.microsoft.com/composer), you'll want to perform the steps outlined below.

1. From Composer, add a new trigger to dispatch to your new dialog.
    1. Use the Activities > Greeting trigger.
    1. If your bot is already using this trigger, you should update it rather than adding an additional trigger.
1. Click the "+" button, and then "Dialog Management" > "Begin a new dialog".
1. In the "Dialog Name" dropdown select the "WelcomeDialog" option.

### Customizing your dialogs

The dialog contained in this package is an examples for welcoming new and returning users. You'll want to customize the messages to meet your specific needs.

## Feedback and issues

If you encounter any issues with this package, or would like to share any feedback please open an Issue in our [GitHub repository](https://github.com/microsoft/botframework-components/issues/new/choose).
npm package: @microsoft/bundle-stats-webpack-plugin
Description: A library for outputting bundle stats webpack plugin .
Latest version: 1.1.1

# bundle-stats-webpack-plugin
A library for outputting bundle stats webpack plugin .

## Installation
Using npm:
```sh
npm install @microsoft/bundle-stats-webpack-plugin
```
Using Yarn:
```sh
yarn add @microsoft/bundle-stats-webpack-plugin
```

## Usage

```ts
import { BundleStatsPlugin } from "@microsoft/bundle-stats-webpack-plugin";

//webpack config
module.exports = {
  ...
  plugins: [
    new BundleStatsPlugin(
      "app-id-used-in-reports", // App id which is added to the bundle stats file name
      "./", // Output directory of the ${this.appId}_${this.variant}_bundle-stats.json file wrt to compilation output directory of webpack
      "bundle-variant" // Optional - Use this if your app has multiple bundle variants
    );
  ]
}
```
npm package: @microsoft/ccf-identity
Description: This repository contains the TypeScript package that contains the identity integration for CCF, specifically to provide RBAC capabilities in CCF based applications. This allows both authentication as well as authorization with an IDP from CCF. This integr
Author: Microsoft
Latest version: 1.0.2

# CCF Identity package

This repository contains the TypeScript package that contains the identity integration for CCF, specifically to provide RBAC capabilities in CCF based applications. This allows both authentication as well as authorization with an IDP from CCF. This integration is at the CCF application level and includes both individual and group based authorization.

## Prerequisites

- [NodeJS](https://nodejs.org/) (_tested with 16.13.1 LTS_)

- AAD configuration - An AAD tenant and application is required.

## Build

To build the package:

```
npm install
npm run build
```

`NOTE: This package is written in TypeScript and in current form is not bundled as part of the build process. The process will simply create the js output in a dist/ folder.`
npm package: @microsoft/create-fast-project
Description: A FAST project creation tool
Author: Microsoft
Latest version: 1.0.0-alpha.6

# Create FAST Project

This installation tool will allow you to create and configure your own [FAST](https://www.fast.design) project.

## Installation

## Usage

### npx

`npx @microsoft/create-fast-project`

### npm

`npm init @microsoft/fast-project`
npm package: @microsoft/customvision-tfjs
Description: Library for Tensorflow.js models exported from customvision.ai
Latest version: 1.3.0

# customvision-tfjs
NPM package for TensorFlow.js models exported from Custom Vision Service

This package is for web browsers. If you are looking for a library to run on Node.js environment, please use [customvision-tfjs-node](https://github.com/microsoft/customvision-tfjs-node).

## Install
```sh
npm install @microsoft/customvision-tfjs
```

Or, if you would like to use CDN,

```html
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@2.8.3/dist/tf.min.js"></script>
<script src="https://unpkg.com/@microsoft/customvision-tfjs@1.2.0"></script>
```

## Usage

```html
<img id="image" src="test_image.jpg" />
```

### Classification
```js
import * as cvstfjs from '@microsoft/customvision-tfjs';

let model = new cvstfjs.ClassificationModel();
await model.loadModelAsync('model.json');
const image = document.getElementById('image');
const result = await model.executeAsync(image);
```

The result is a 1D-array of probabilities.

### Object Detection
```js
import * as cvstfjs from '@microsoft/customvision-tfjs';

let model = new cvstfjs.ObjectDetectionModel();
await model.loadModelAsync('model.json');
const image = document.getElementById('image');
const result = await model.executeAsync(image);
```

The result has 3 arrays.
```js

[
	[[0.1, 0.3, 0.4, 0.3], [0.2, 0.4, 0.8, 0.9]], // bounding boxes (x1, y1, x2, y2)
	[0.2, 0.3], // probabilities
	[1, 4] // class ids
]
```

# References
* [sample scripts](https://github.com/Azure-Samples/customvision-export-samples)

# Contributing

This project welcomes contributions and suggestions.  Most contributions require you to agree to a
Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide
a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions
provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
npm package: @microsoft/customvision-tfjs-node
Description: Node.js library for Tensorflow.js models exported from customvision.ai
Latest version: 1.2.0

# customvision-tfjs-node
Node.js package for TensorFlow.js models exported from Custom Vision Service

If you are looking for a library to use on the browser, please try [customvision-tfjs](https://github.com/microsoft/customvision-tfjs).

## Install
```sh
npm install @microsoft/customvision-tfjs-node
```

## Usage

### Classification
```js
const cvstfjs = require('@microsoft/customvision-tfjs-node');

async function executeAsync(image_filepath) {
  const model = new cvstfjs.ClassificationModel();
  await model.loadModelAsync('file://model.json');
  fs.readFile(image_filepath, function (err, data) {
    if (err) {
      throw err;
    }

    const result = await model.executeAsync(data);
    console.log(result);
  })
}
```

The result is a 1D-array of probabilities.

### Object Detection
```js
const cvstfjs = require('@microsoft/customvision-tfjs-node');

async function executeAsync(image_filepath) {
  const model = new cvstfjs.ObjectDetectionModel();
  await model.loadModelAsync('file://model.json');
  fs.readFile(image_filepath, function (err, data) {
    if (err) {
      throw err;
    }

    const result = await model.executeAsync(data);
    console.log(result);
  })
}
```

The result has 3 arrays.
```js

[
	[[0.1, 0.3, 0.4, 0.3], [0.2, 0.4, 0.8, 0.9]], // bounding boxes (x1, y1, x2, y2)
	[0.2, 0.3], // probabilities
	[1, 4] // class ids
]
```

# Contributing

This project welcomes contributions and suggestions.  Most contributions require you to agree to a
Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide
a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions
provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
npm package: @microsoft/dev-tunnels-ssh
Description: SSH library for Dev Tunnels
Author: Microsoft
Latest version: 3.12.22

# Dev Tunnels SSH Library
A Secure Shell (SSH2) client and server protocol implementation for Node.js
and browser environments.

## Feature Highlights
 - SSH over any JavaScript stream (including but not limited to Node.js
 TCP sockets and browser websockets)
 - Configurable, extensible, negotiated algorithms for key-exchange, encryption,
   integrity (HMAC), and public-key authentication
 - Channel multiplexing, with ability to stream data to/from channels
 - Piping between two sessions can relay all channels and port-forwarding
 - Extensible channel request handling (for "exec", "shell", or custom requests)
 - Supports reconnecting a disconnected session without disrupting channel streams.
 - Compatible with common SSH software. (Tested against OpenSSH.)

### Limitations
The following features are not implemented in typescript implementation yet, and we have
plans to implement the same:
- Async processing of messages and ability to send one message before receiving response
  for a previous one.

## Requirements
The TypeScript implementation supports either Node.js (>= 14.x) or a
browser environment. When running on Node.js, it uses the Node.js built-in
[crypto](https://nodejs.org/api/crypto.html) module. When running in a browser
it uses the [Web Crypto API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API),
which is supported by all modern browsers. However note that since script on
a web page cannot access native TCP sockets, the standard use of SSH over
TCP is not possible; some other stream transport like a websocket may be used.

## Packages
The optional `dev-tunnels-ssh-tcp` and `dev-tunnels-ssh-keys` depend on the core `dev-tunnels-ssh` package.
npm package: @microsoft/dev-tunnels-ssh-keys
Description: SSH key import/export library for Dev Tunnels
Author: Microsoft
Latest version: 3.12.22

# Dev Tunnels SSH Keys Library
Enables importing and exporting SSH public and private keys in various formats.
Password-protection of private keys is also supported when importing and
exporting some formats.

## Supported Key Algorithms
 - RSA (2048, 4096)
 - ECDSA (P-256, P-384, P-521)

## Supported Key Formats

 - **SSH public key** - Single line starting with a key algorithm name
   such as `ssh-rsa`, followed by base64-encoded key bytes, and an optional
   comment. Files in this format typically end with `.pub`.

 - **PKCS#1 public or private RSA key** - PEM-encoded keys in this format begin
   with one of the following:  
   `-----BEGIN RSA PUBLIC KEY-----`  
   `-----BEGIN RSA PRIVATE KEY-----`  

 - **SEC1 private EC key** - PEM-encoded keys in this format begin with:  
   `-----BEGIN EC PRIVATE KEY-----`  

 - **PKCS#8 public or private key** - PEM-encoded keys in this format begin
   with one of the following:  
   `-----BEGIN PUBLIC KEY-----`  
   `-----BEGIN PRIVATE KEY-----`  
   `-----BEGIN ENCRYPTED PRIVATE KEY-----`

 - **JSON Web Key (JWK)** - Key paramters are formatted as JSON.

Private keys in PKCS#1, SEC1, or PKCS#8 format may be passphrase-protected,
meaning the private key is encrypted using an encryption key derived from a
passphrase. (The encryption used by the PKCS#1/SEC1 formats is weak and no
longer recommended.)

For the key formats that are typically PEM-encoded, the equivalent binary (DER)
format is also supported.

## Example
Use `importKey*`, `exportPublicKey*`, and `exportPrivateKey*` functions provided
by the library to import or export keys. When importing, the key format can be
auto-detected in most cases.

```TypeScript
// Import my password-protected RSA private key from a file.
const privateKey: KeyPair = importPrivateKeyFile('.ssh/id_rsa', myPassword);

// Use the private key for client public key authentication.
const session: SshClientSession = ...
const credentials: SshClientCredentials = { username, publicKeys: [ privateKey ] };
const result: boolean = await session.authenticate(credentials);
```

When exporting, you can specify the format, and optionally supply a password
for encrypting the key. The default format is **PKCS#8** because it has broad
support and strong encryption when using password protection.
npm package: @microsoft/dev-tunnels-ssh-tcp
Description: SSH TCP extensions library for Dev Tunnels
Author: Microsoft
Latest version: 3.12.22

# Dev Tunnels SSH TCP Library
Includes `SshClient` and `SshServer` convenience classes for establishing SSH
sessions over TCP, and the `PortForwardingService` class that enables forwarding
TCP ports between client and server.

## Examples

### Forward from a server port to a client port
```TypeScript
// Port-forwarding is not enabled by default. It must be added to the session configuration
// on both client and server sides.
const config = new SshSessionConfiguration();
config.addService(PortForwardingService);

const client = new SshClient(config);
const session: SshClientSession = await client.openSession(host, port);

// Handle server and client authentication.
session.onAuthenticating((e) => { ... });
if (!(await session.authenticate(credentials))) {
	throw new Error('Authentication failed.');
}

// Start port-forwarding.
const pfs = session.activateService(PortForwardingService);
const forwarder: RemotePortForwarder = await pfs.forwardFromRemotePort('::', remotePort);
// Connections to the port on the server will now be forwarded to
// the same port on the client.
forwarder.dispose();
// New connections to the server port are no longer forwarded.
// (Existing forwarded connections may remain alive until the session is closed.)
```

### Stream to a server port
```TypeScript
const session: SshClientSession = ...

const pfs = session.activateService(PortForwardingService);
const stream: SshStream = await pfs.streamToRemotePort('localhost', remotePort);
// The stream data is forwarded to/from the port on the server.
```

## Browser compatibility
This package has limited capabilities when running in a browser. Obviously a browser
cannot access local TCP ports. However, it is possible to _stream_ to/from
server ports. The `streamFromRemotePort()` and `streamToRemotePort()` methods are
validated working in a browser environment.
npm package: @microsoft/docs-markdown-editor
Description: Docs Markdown Editor for markdown WYSIWYG editor
Author: MicrosoftDocs
Latest version: 1.0.19

# Introduction

Docs Markdown Editor is a rich web editor with markdown editing and WYSIWYG functionality to be plugged in to multiple authoring sites including Docs, Q&A, Renewal Asessments, and Self Assessments. The editor itself is built on top of the [Stack Overflow Stacks Editor](https://github.com/StackExchange/Stacks-Editor). This repos purpose is to build a rich editing experience without the overhead of docs-ui and create a light weight development experience for developing editors that will be plugged into the authoring sites above.

## Getting Started

1. Requires [node](https://nodejs.org/en/). LTS or current are fine, just make sure you have 15.x.x or higher. Use `node --version` to check your installed version. Alternatively, install the [Node Version Manager (NVM) for Windows](https://github.com/coreybutler/nvm-windows), and run the following command to use Node 15: `nvm use 15.7.0`.
2. Get started by running the command `npm install` to install the required node modules.
3. Run the program using `npm run start`
4. Navigate to the URL route based on what mode you will be developing with.
   - There are 4 modes:
     - Docs: `/docs`
     - Q&A: `/qna`
     - Self Assessments: `/self-assessments`
     - Renewal Assessments: `/renewal-assessments`
5. The routes will be as follows: `localhost:1234/docs` or `localhost:1234/renewal-assessments` for example.

## Test

To test run `npm run test` command to run the tests. NOTE: tests are to be created and will be implemented in the comming days.

## Build

Production builds can be created via the build command `npm run build` The `dist/index.js` contain the contents of the package.

## Contribute

Information that might help with working on any part of Docs can be found in the [Contributor Guide](./contributor-guide/index.md). If you can't find what you're looking in there, try asking for help in [Teams](https://teams.microsoft.com/l/channel/19%3a1a9019aaee1a41e28edf06f51b339774%40thread.skype/Burning%2520Questions%2520%25F0%259F%2594%25A5%25F0%259F%2594%25A5?groupId=eb2fdd48-d027-4238-b156-dd982276abb8&tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47). If something should be added to the Contributor Guide, submit a PR!