open-index/open-npm huggingface dataset:
npm package: @microsoft/gulp-core-build-mocha
Description: `gulp-core-build-mocha` is a `gulp-core-build` subtask for running unit tests and creating coverage reports using mocha/chai. This setup is useful for unit testing build tools, as it runs in the node process rather than in a browser.
Latest version: 3.11.0

# gulp-core-build-mocha

`gulp-core-build-mocha` is a `gulp-core-build` subtask for running unit tests and creating coverage reports using mocha/chai.
This setup is useful for unit testing build tools, as it runs in the node process rather than in a browser.

[![npm version](https://badge.fury.io/js/%40microsoft%2Fgulp-core-build-mocha.svg)](https://badge.fury.io/js/gulp-core-build-mocha)
[![Build Status](https://travis-ci.org/Microsoft/gulp-core-build-mocha.svg?branch=master)](https://travis-ci.org/Microsoft/gulp-core-build-mocha) [![Dependencies](https://david-dm.org/Microsoft/gulp-core-build-mocha.svg)](https://david-dm.org/Microsoft/gulp-core-build-mocha)

# Description

**gulp-core-build-mocha** is a gulp-core-build plugin which will automatically execute a set of
unit test files using the mocha test suite.

# MochaTask
## Usage

Simply create a file which ends in `.test.js`. Next, register the Mocha task to gulp-core-build.

A coverage report is both written to the console and to a folder on disk.

## Configuration

### testMatch

Sets the glob pattern which is used to locate the files to run tests on.

**Default:** 'lib/\*\*/\*.test.js'

### reportDir

The folder in which to store the coverage reports.

**Default:** 'coverage'

# InstrumentTask
## Usage

This task selects which files should be covered by the code coverage tool.

## Configuration
### coverageMatch
An array of globs which define which files should be included in code coverage reports.

**Default:** `['lib/**/*.js', '!lib/**/*.test.js']`

# License

MIT
npm package: @microsoft/gulp-core-build-sass
Description: `gulp-core-build-sass` is a `gulp-core-build` subtask which processes sass and scss files using SASS, runs them through postcss, and produces commonjs/amd modules which are injected using the `@microsoft/load-themed-styles` package.
Latest version: 4.17.3

# @microsoft/gulp-core-build-sass

`gulp-core-build-sass` is a `gulp-core-build` subtask which processes sass and scss files using SASS, runs them through postcss, and produces commonjs/amd modules which are injected using the `@microsoft/load-themed-styles` package.

[![npm version](https://badge.fury.io/js/%40microsoft%2Fgulp-core-build-sass.svg)](https://badge.fury.io/js/%40microsoft%2Fgulp-core-build-sass)
[![Build Status](https://travis-ci.org/Microsoft/gulp-core-build-sass.svg?branch=master)](https://travis-ci.org/Microsoft/gulp-core-build-sass) [![Dependencies](https://david-dm.org/Microsoft/gulp-core-build-sass.svg)](https://david-dm.org/Microsoft/gulp-core-build-sass)

# SassTask

## Usage
This task invokes `gulp-sass` to compile source SASS files into a CommonJS module which uses `load-themed-styles` to load styles onto the page. If the `libAmdFolder` is specified globally, this task will also output an AMD module. Various templates may be specified.

## Config
### preamble
An optional parameter for text to include in the generated typescript file.

**Default:** `'/* tslint:disable */'`

### postamble
An optional parameter for text to include at the end of the generated typescript file.

**Default:** `'/* tslint:enable */'`

### sassMatch
An array of glob patterns for locating SASS files.

**Default:** `['src/**/*.scss']`

### useCSSModules
If this option is specified, ALL files will be treated as `module.sass` or `module.scss` and will
automatically generate a corresponding TypeScript file. All classes will be
appended with a hash to help ensure uniqueness on a page. This file can be
imported directly, and will contain an object describing the mangled class names.

**Default:** `false`

### dropCssFiles
If this is false, then we do not create `.css` files in the `lib` directory.

**Default:** `false`

### warnOnNonCSSModules
If files are matched by sassMatch which do not end in `.module.sass` or `.module.scss`, log a warning.

**Default:** `false`

# License

MIT
npm package: @microsoft/gulp-core-build-webpack
Description: `gulp-core-build-webpack` is a `gulp-core-build` subtask which introduces the ability to bundle various source files into a set of bundles, using webpack.
Latest version: 6.0.3

# @microsoft/gulp-core-build-webpack

`gulp-core-build-webpack` is a `gulp-core-build` subtask which introduces the ability to bundle various source files into a set of bundles, using webpack.

[![npm version](https://badge.fury.io/js/%40microsoft%2Fgulp-core-build-webpack.svg)](https://badge.fury.io/js/%40microsoft%2Fgulp-core-build-webpack)
[![Build Status](https://travis-ci.org/Microsoft/gulp-core-build-webpack.svg?branch=master)](https://travis-ci.org/Microsoft/gulp-core-build-webpack)
[![Dependencies](https://david-dm.org/Microsoft/gulp-core-build-webpack.svg)](https://david-dm.org/Microsoft/gulp-core-build-webpack)

# Tasks
## WebpackTask

### Description
This task invokes webpack using a consumer-specified `webpack.config.js` on a package.

### Config
```typescript
interface IWebpackConfig {
  configPath: string;
  config: Webpack.Configuration;
  suppressWarnings: string[];
}
```
* **configPath** used to specify the local package relative path to a `webpack.config.js`
* **config** used to specify a webpack config object. **configPath** takes precidence over this option if it is set and the file it refefences exists.
* **suppressWarnings** used to specify regular expressions or regular expression strings that will prevent logging of a warning if that warning matches.

Usage:
```typescript
build.webpack.setConfig({
  configPath: "./webpack.config.js"
})
```
npm package: @microsoft/hub-mongo-connector
Description: Identity Hub storage driver for MongoDB.
Author: Microsoft Corporation
Latest version: 1.0.0-alpha.2


# 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.
npm package: @microsoft/immersive-reader-sdk
Description: The Immersive Reader JavaScript SDK is a JavaScript library that allows you to easily and quickly integrate the [Immersive Reader](https://azure.microsoft.com/services/immersive-reader) into your web application.
Latest version: 1.4.0

# Azure Applied AI Immersive Reader - Immersive Reader SDK

The Immersive Reader JavaScript SDK is a JavaScript library that allows you to easily and quickly integrate the [Immersive Reader](https://azure.microsoft.com/services/immersive-reader) into your web application.

## Usage

Usage of this SDK requires an Azure subscription to Immersive Reader. Follow [these instructions](https://docs.microsoft.com/azure/applied-ai-services/immersive-reader/how-to-create-immersive-reader) to create an Immersive Reader resource and configure Azure Active Directory authentication. Save the output of your session into a text file for future reference.

You can find examples of how to acquire an authentication token in the [samples](./samples).

Include the library of the stable build in your web application:

```html
<script type='text/javascript' src='https://ircdname.azureedge.net/immersivereadersdk/immersive-reader-sdk.1.3.0.js'></script>
```

```bash
npm install @microsoft/immersive-reader-sdk
```

```bash
yarn add @microsoft/immersive-reader-sdk
```

Add an HTML element to your webpage with the `immersive-reader-button` class attribute.

```html
<div class='immersive-reader-button' onclick='launchImmersiveReader()'></div>
```

Next, invoke the Immersive Reader when the button is clicked:

```javascript
function launchImmersiveReader() {
    const content = {
        title: 'Immersive Reader',
        chunks: [ {
            content: 'Hello, world!'
        } ]
    };
    ImmersiveReader.launchAsync(YOUR_TOKEN, YOUR_SUBDOMAIN, content);
}
```

Take a look at the [samples](./samples) for examples of a full end-to-end integration.

The Immersive Reader may use persistent cookies to maintain user preferences and track feature usage. When embedding the Immersive Reader into applications, please consider the requirements of EU Cookie Compliance Policy. Setting the [cookiePolicy option](./src/options.ts) to **CookiePolicy.Enable** will enable the Immersive Reader to use cookies. It is the responsibility of the host application to obtain any necessary user consent in accordance with EU Cookie Compliance Policy.

## Building

In order to build the SDK, ensure that you have [Git](https://git-scm.com/downloads), [Node.js](https://nodejs.org/), and [Yarn](https://yarnpkg.com/) installed.

Clone a copy of the repo:

```bash
git clone https://github.com/microsoft/immersive-reader-sdk
```

Change to the immersive-reader-sdk directory:

```bash
cd immersive-reader-sdk
```

Install dependencies:

```bash
yarn
```

Build and test:

```bash
yarn run build
yarn run test
```
npm package: @microsoft/kiota-abstractions
Description: Core abstractions for kiota generated libraries in TypeScript and JavaScript
Author: Microsoft
Latest version: 1.0.0-preview.100

# Microsoft Kiota Abstractions Library for TypeScript

[![npm version badge](https://img.shields.io/npm/v/@microsoft/kiota-abstractions?color=blue)](https://www.npmjs.com/package/@microsoft/kiota-abstractions)

The Kiota abstractions Library is the TypeScript library defining the basic constructs the Kiota projects need once an SDK has been generated from an OpenAPI definition.

A [Kiota](https://github.com/microsoft/kiota) generated project will need a reference to the abstraction package to build and run.

Read more about Kiota [here](https://github.com/microsoft/kiota/blob/main/README.md).

## Using the abstractions

In order to use this library, install the package by running:

`npm i @microsoft/kiota-abstractions`

## 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.

## Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
trademarks or logos is subject to and must follow
[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
Any use of third-party trademarks or logos are subject to those third-party's policies.
npm package: @microsoft/kiota-authentication-azure
Description: Authentication provider for Kiota using Azure Identity
Author: Microsoft
Latest version: 1.0.0-preview.100

# Microsoft Kiota Authentication Azure Library for TypeScript

[![npm version badge](https://img.shields.io/npm/v/@microsoft/kiota-authentication-azure?color=blue)](https://www.npmjs.com/package/@microsoft/kiota-authentication-azure)

The Kiota Authentication Azure Library is an implementation to authenticate HTTP requests using @azure/identity.

A [Kiota](https://github.com/microsoft/kiota) generated project will need a reference to an authentication provider to make calls to an API endpoint.

Read more about Kiota [here](https://github.com/microsoft/kiota/blob/main/README.md).

## Using the Kiota Authentication Azure

1. `npm i @microsoft/kiota-authentication-azure -S`.

## 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.

## Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
trademarks or logos is subject to and must follow
[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
Any use of third-party trademarks or logos are subject to those third-party's policies.
npm package: @microsoft/kiota-bundle
Description: Kiota Bundle package providing default implementations for client setup for kiota generated libraries in TypeScript and JavaScript
Author: Microsoft
Latest version: 1.0.0-preview.100

# Microsoft Kiota Bundle library for TypeScript

[![npm version badge](https://img.shields.io/npm/v/@microsoft/kiota-bundle?color=blue)](https://www.npmjs.com/package/@microsoft/kiota-bundle)

The Kiota Bundle Library provides default implementations for client setup.
The package provides a request adapter implementation with defaults serialization libraries setup fo use with a generated Kiota client.

Read more about Kiota [here](https://github.com/microsoft/kiota/blob/main/README.md).

## Using the bundle

`npm i @microsoft/kiota-bundle`

## 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.

## Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
trademarks or logos is subject to and must follow
[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
Any use of third-party trademarks or logos are subject to those third-party's policies.
npm package: @microsoft/kiota-http-fetchlibrary
Description: Kiota request adapter implementation with fetch
Author: Microsoft
Latest version: 1.0.0-preview.100

# Microsoft Kiota HTTP - Fetch  library

[![npm version badge](https://img.shields.io/npm/v/@microsoft/kiota-http-fetchlibrary?color=blue)](https://www.npmjs.com/package/@microsoft/kiota-http-fetchlibrary)

The Kiota Http Fetch Library is an implementation using the Fetch API to make requests.

A [Kiota](https://github.com/microsoft/kiota) generated project will need a reference to an HTTP implementation to make calls to an API endpoint.

Read more about Kiota [here](https://github.com/microsoft/kiota/blob/main/README.md).

## Using the Kiota Fetch library implementations

1. `npm i @microsoft/kiota-http-fetchlibrary`.

## 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.

## Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
trademarks or logos is subject to and must follow
[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
Any use of third-party trademarks or logos are subject to those third-party's policies.
npm package: @microsoft/kiota-serialization-form
Description: Implementation of Kiota Serialization interfaces for URI from encoded
Author: Microsoft
Latest version: 1.0.0-preview.100

# Microsoft Kiota URI Form Encoded Serialization Library for TypeScript

[![npm version badge](https://img.shields.io/npm/v/@microsoft/kiota-serialization-form?color=blue)](https://www.npmjs.com/package/@microsoft/kiota-serialization-form)

The Form Serialization Library is an implementation to handle URI form encoded payloads.

A [Kiota](https://github.com/microsoft/kiota) generated project will need a reference to a form serialization package to handle URI form encoded payloads from an API endpoint.

Read more about Kiota [here](https://github.com/microsoft/kiota/blob/main/README.md).

## Using the Serialization Form implementations

1. `npm i @microsoft/kiota-serialization-form`.

## 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.

## Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
trademarks or logos is subject to and must follow
[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
Any use of third-party trademarks or logos are subject to those third-party's policies.
npm package: @microsoft/kiota-serialization-json
Description: Implementation of Kiota Serialization interfaces for JSON
Author: Microsoft
Latest version: 1.0.0-preview.100

# Microsoft Kiota JSON Serialization library for TypeScript

[![npm version badge](https://img.shields.io/npm/v/@microsoft/kiota-serialization-json?color=blue)](https://www.npmjs.com/package/@microsoft/kiota-serialization-json)

The JSON Serialization Library is an implementation to handle JSON payloads.

A [Kiota](https://github.com/microsoft/kiota) generated project will need a reference to a JSON serialization package to handle JSON payloads from an API endpoint.

Read more about Kiota [here](https://github.com/microsoft/kiota/blob/main/README.md).

## Using the Serialization JSON implementations

1. `npm i @microsoft/kiota-serialization-json`.

## 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.

## Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
trademarks or logos is subject to and must follow
[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
Any use of third-party trademarks or logos are subject to those third-party's policies.
npm package: @microsoft/kiota-serialization-multipart
Description: Implementation of Kiota Serialization interfaces for multipart form data
Author: Microsoft
Latest version: 1.0.0-preview.100

# Microsoft Kiota Multipart Serialization Library for TypeScript

[![npm version badge](https://img.shields.io/npm/v/@microsoft/kiota-serialization-multipart?color=blue)](https://www.npmjs.com/package/@microsoft/kiota-serialization-multipart)

The Multipart Serialization Library is an implementation to handle multipart form data payloads.

A [Kiota](https://github.com/microsoft/kiota) generated project will need a reference to a form serialization package to handle multipart encoded payloads from an API endpoint.

Read more about Kiota [here](https://github.com/microsoft/kiota/blob/main/README.md).

## Using the Serialization Multipart implementations

1. `npm i @microsoft/kiota-serialization-multipart`.

## 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.

## Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
trademarks or logos is subject to and must follow
[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
Any use of third-party trademarks or logos are subject to those third-party's policies.
npm package: @microsoft/kiota-serialization-text
Description: Implementation of Kiota Serialization interfaces for text
Author: Microsoft
Latest version: 1.0.0-preview.100

# Microsoft Kiota Text Serialization Library for Python

[![npm version badge](https://img.shields.io/npm/v/@microsoft/kiota-serialization-text?color=blue)](https://www.npmjs.com/package/@microsoft/kiota-serialization-text)

The Text Serialization Library is an implementation to handle text/plain payloads.

A [Kiota](https://github.com/microsoft/kiota) generated project will need a reference to a Text serialization package to handle text/plain payloads from an API endpoint.

Read more about Kiota [here](https://github.com/microsoft/kiota/blob/main/README.md).

## Using the Serialization text implementations

1. `npm i @microsoft/kiota-serialization-text`.

## 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.

## Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
trademarks or logos is subject to and must follow
[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
Any use of third-party trademarks or logos are subject to those third-party's policies.
npm package: @microsoft/load-themed-styles
Description: Loads themed styles.
Latest version: 2.2.12

# @microsoft/load-themed-styles
[![npm version](https://badge.fury.io/js/%40microsoft%2Fload-themed-styles.svg)](https://badge.fury.io/js/%40microsoft%2Fload-themed-styles)

> Loads a string of style rules, but supports detokenizing theme constants built within it.

## Install

Install with [npm](https://www.npmjs.com/)

```
$ npm install --save @microsoft/load-themed-styles
```

## Usage

To load a given string of styles, you can do this in TypeScript or ES6:

```TypeScript
import { loadStyles } from '@microsoft/load-themed-styles';

loadStyles('body { background: red; }');
```

This will register any set of styles given. However, in the above example the color is hardcoded to red. To make this theme-able, replace it with the string token in this format:

```
"[theme:{variableName}, default:{defaultValue}]"
```

For example:

```js
loadStyles('body { background: "[theme:primaryBackgroundColor, default: blue]"');
```

When loading, the background will use the default value, blue. Providing your own theme values using the `loadTheme` function:

```js
import { loadStyles, loadTheme } from '@microsoft/load-themed-styles';

loadTheme({
  primaryBackgroundColor: "#EAEAEA"
});

loadStyles('body { background: "[theme:primaryBackgroundColor, default: #FFAAFA]"');
```

This will register #EAEAEA as the body's background color. If you call `loadTheme` again after styles have already been registered, it will replace the style elements with retokenized values.

## Security considerations

In order for `style` elements to be added to the DOM, a `nonce` attribute may need to be attached to the elements to adhere to a CSP requirements. To provide the value, you can specify the `nonce` value by defining a `CSPSettings` object on the page in global scope:

```js
window.CSPSettings = {
  nonce: 'nonce'
};
```

## Links

- [CHANGELOG.md](
  https://github.com/microsoft/rushstack/blob/main/libraries/load-themed-styles/CHANGELOG.md) - Find
  out what's new in the latest version

`@microsoft/load-themed-styles` is part of the [Rush Stack](https://rushstack.io/) family of projects.
npm package: @microsoft/loader-load-themed-styles
Description: This simple loader wraps the loading of CSS in script equivalent to `require('load-themed-styles').loadStyles( /* css text */ )`. It is designed to be a replacement for style-loader.
Latest version: 2.2.12

# @microsoft/loader-load-themed-styles

## Installation

`npm install @microsoft/loader-load-themed-styles --save-dev`

## Overview

This simple Webpack loader that wraps the loading of CSS in script equivalent
to `require("load-themed-styles").loadStyles( /* css text */ )`.
It is designed to be a replacement for style-loader.

## Usage

[Documentation: Using loaders](http://webpack.github.io/docs/using-loaders.html)

This loader is designed to be used in conjunction with css-loader.

``` javascript
var css = require("@microsoft/loader-load-themed-styles!css!./file.css");
// => returns css code from file.css, uses load-themed-styles to load the CSS on the page.
```

### Example config

``` javascript
        use: [
          {
            loader: "@microsoft/loader-load-themed-styles",  // creates style nodes from JS strings
            options: {
              async: false
            }
          },
          {
            loader: "css-loader", // translates CSS into CommonJS
            options: {
              modules: true,
              importLoaders: 2,
              localIdentName: '[name]_[local]_[hash:base64:5]',
              minimize: false
            }
          },
          {
            loader: 'postcss-loader',
            options: {
              plugins: function () {
                return [
                  require('autoprefixer')
                ];
              }
            }
          },
          {
            loader: "sass-loader",
          }
        ]

```

## Options

### `async` (boolean, defaults to `false`)

By default, `@microsoft/load-themed-styles` loads styles synchronously. This can have adverse performance effects
if many styles are loaded in quick succession. If the `async` option is set to `true`, the `loadStyles` function
is called with the second parameter set to `true`, directing the function to debounce style loading causing fewer
changes to the DOM.


## Links

- [CHANGELOG.md](
  https://github.com/microsoft/rushstack/blob/main/webpack/loader-load-themed-styles/CHANGELOG.md) - Find
  out what's new in the latest version

`@microsoft/loader-load-themed-styles` is part of the [Rush Stack](https://rushstack.io/) family of projects.
npm package: @microsoft/loader-raw-script
Description: (Please use "@rushstack/loader-raw-script" instead.)
Latest version: 2.0.2

# @microsoft/loader-raw-script

> Please use [@rushstack/loader-raw-script](https://www.npmjs.com/package/@rushstack/loader-raw-script) instead of this package.

IMPORTANT: This package has moved under the `@rushstack` NPM scope.

```
  OLD NAME: @microsoft/loader-raw-script (1.3.4)
  NEW NAME: @rushstack/loader-raw-script (1.3.5)
```

The new package's CHANGELOG.md preserves version history from before the rename.

The new package starts with a SemVer PATCH increment, since no code has changed.

To learn about the Rush Stack project, please visit https://rushstack.io/
npm package: @microsoft/mezzurite-angular
Description: Library for capturing SPA timings within Angular.
Author: Microsoft Corporation
Latest version: 2.0.18

# Mezzurite-Angular
**For Angular 6, use @microsoft/mezzurite-angular@2.x**
## Requirements:
```json
  "dependencies": {
    "@microsoft/mezzurite-core": "^1.0.1",
    "@types/angular": "^1.6.51",
    "@types/jquery": "^2.0.46",
    "@types/node": "^10.12.2",
    "intersection-observer": "^0.5.1",
    "reflect-metadata": "^0.1.8"
  },
  "peerDependencies": {
    "@angular/common": ">2.4.0",
    "@angular/compiler": ">2.4.0",
    "@angular/core": ">2.4.0",
    "@angular/forms": ">2.4.0",
    "@angular/http": ">2.4.0",
    "@angular/platform-browser": ">2.4.0",
    "@angular/platform-browser-dynamic": ">2.4.0",
    "@angular/router": ">3.4.0",
    "core-js": "^2.4.1",
    "rxjs": "^6.2.2",
    "zone.js": "^0.x"
  },
```

## Onboarding
### Basic Setup (Application Load Time)
1. Import the following modules in app.module:
```javascript
import { AngularPerfModule, RoutingService } from '@microsoft/mezzurite-angular';
```
2. In the NgModule imports, add the following:
```
Imports: [  AngularPerfModule.forRoot() ]
```
3. In the constructor of AppModule, add the following:
```javascript
export class AppModule {
  constructor(@Inject(RoutingService) private router: typeof RoutingService) {
    router.start();
  }
}
```
4. If using sub-modules inside your app, you will need to import AngularPerfModule inside each sub-module in order to give your entire app access to the Mezzurite directive:
```
Imports: [  AngularPerfModule ]
```
### Component Tracking (CLT and VLT)
Components are instrumented inside the html markup as an attribute directive:
```html
<div mezzurite component-title='MyComponentName'>
...
</div>
```
npm package: @microsoft/mezzurite-angularjs
Description: Library for capturing SPA timings within AngularJS.
Author: Microsoft Corporation
Latest version: 1.0.6

[![npm version](https://badge.fury.io/js/%40microsoft%2Fmezzurite-angularjs.svg)](https://badge.fury.io/js/%40microsoft%2Fmezzurite-angularjs)

# Mezzurite-AngularJS
## Requirements:
```json
  "dependencies": {
    "@microsoft/mezzurite-core": "^1.0.1",
    "@types/angular": "^1.5.6",
    "@types/node": "^10.12.2",
    "reflect-metadata": "^0.1.8"
  },
  "peerDependencies": {
    "angular": "^1.6.6"
  },
```

## Onboarding

### Installation
 Install the mezzurite dependencies from npm:
```javascript
  npm install "@microsoft/mezzurite-core"
  npm install "@microsoft/mezzurite-angularjs"
```

### Basic Setup (Application Load Time)
1. Add UMD scripts to app:
```html
  <script src="/node_modules/@microsoft/mezzurite-core/browser/mezzurite.core.umd.js"></script>
  <script src="/node_modules/@microsoft/mezzurite-angularjs/browser/mezzurite.angularjs.umd.js"></script>
```
2. Inject Mezzurite module into app.module:
```javascript
angular.module('AngularJsTestApp', [
  'ngRoute',
  'angularjsrouting'
])
```
3. Inside the app run block, start the Mezzurite routing service:
```javascript
.run(['$rootScope', 'AngularJsRoutingService', function($rootScope, AngularJsRoutingService){
  AngularJsRoutingService.start($rootScope); 
}]);
```
### Component Tracking (CLT and VLT)
Because of inconsistent **angular.element(el).ready** timings, component start and stop currently need to be called manually.
```javascript
View1Ctrl.$inject = ['$timeout', 'AngularJsPerfService'];
function View1Ctrl($timeout, AngularJsPerfService){
    // must select element to be able to track position relative to viewport (for VLT)
    var el = document.getElementById("component-1")
    //create the component and start timing
    var myComponent = AngularJsPerfService.initPerfComponent("testComponent", el)
    // ...
    // ...
    // set your component complete
    $timeout(function(){
      myComponent.setComponentComplete();
    })
}
```
npm package: @microsoft/mgt-msal-provider
Description: The Microsoft Graph Toolkit Msal Provider
Author: Microsoft
Latest version: 2.11.2
Deprecated: Please use @microsoft/mgt-msal2-provider instead

# Microsoft Graph Toolkit MSAL Provider

[![npm](https://img.shields.io/npm/v/@microsoft/mgt-msal-provider?style=for-the-badge)](https://www.npmjs.com/package/@microsoft/mgt-msal-provider)

⚠️⚠️⚠️ This package is no longer receiving new features and will only receive critical bug and security fixes. All new applications should use [`@microsoft/mgt-msal2-provider`](https://learn.microsoft.com/graph/toolkit/providers/msal2) instead. ⚠️⚠️⚠️

The `@microsoft/mgt-msal-provider` package exposes the `MsalProvider` class which uses MSAL.js to sign in users and acquire tokens to use with Microsoft Graph via the Implicit Grant Flow.

For authentication based on the more secure OAuth 2.0 Authorization Code Flow with PKCE, please use the [`@microsoft/mgt-msal2-provider`](https://learn.microsoft.com/graph/toolkit/providers/msal2) instead.

[See docs for full documentation of the MsalProvider](https://learn.microsoft.com/graph/toolkit/providers/msal)

The [Microsoft Graph Toolkit (mgt)](https://aka.ms/mgt) library is a collection of authentication providers and UI components powered by Microsoft Graph. 

## Usage

1. Install the packages

    ```bash
    npm install @microsoft/mgt-element @microsoft/mgt-msal-provider
    ```

2. Initialize the provider in code

    ```ts
    import {Providers} from '@microsoft/mgt-element';
    import {MsalProvider} from '@microsoft/mgt-msal-provider';

    // initialize the auth provider globally
    Providers.globalProvider = new MsalProvider({
      clientId: 'clientId',
      scopes?: string[];
      authority?: string;
      redirectUri?: string;
      loginType?: LoginType; // LoginType.Popup or LoginType.Redirect (redirect is default)
      loginHint?: string
      options?: Configuration; // msal js Configuration object
    });
    ```

3. Alternatively, initialize the provider in html (only `client-id` is required):

    ```html
    <script type="module" src="../node_modules/@microsoft/mgt-msal-provider/dist/es6/index.js" />

    <mgt-msal-provider client-id="<YOUR_CLIENT_ID>"
                      login-type="redirect/popup" 
                      scopes="user.read,people.read" 
                      redirect-uri="https://my.redirect/uri" 
                      authority=""> 
    </mgt-msal-provider> 
    ```

See [provider usage documentation](https://learn.microsoft.com/graph/toolkit/providers) to learn about how to use the providers with the mgt components, to sign in/sign out, get access tokens, call Microsoft Graph, and more.

## Sea also
* [Microsoft Graph Toolkit docs](https://aka.ms/mgt-docs)
* [Microsoft Graph Toolkit repository](https://aka.ms/mgt)
* [Microsoft Graph Toolkit playground](https://mgt.dev)
npm package: @microsoft/microsoft-teams-library-js
Description: Microsoft Client SDK for building app for Microsoft teams
Author: Microsoft Teams
Latest version: 1.2.1
Deprecated: Please use @microsoft/teams-js https://www.npmjs.com/package/@microsoft/teams-js

# [Microsoft Teams JavaScript Library](https://msdn.microsoft.com/en-us/microsoft-teams/)

This JavaScript library is part of the [Microsoft Teams developer platform](https://msdn.microsoft.com/en-us/microsoft-teams/). For documentation, see [Reference: Microsoft Teams JavaScript library](https://msdn.microsoft.com/en-us/microsoft-teams/jslibrary).

[![Build Status](https://travis-ci.org/OfficeDev/microsoft-teams-library-js.svg?branch=master)](https://travis-ci.org/OfficeDev/microsoft-teams-library-js)

## Get Started
1. Clone the repo
2. Navigate to the repo root
3. `npm install`
4. `gulp`

## Contributing
We strongly welcome and encourage contributions to this project. Please read the [contributor's guide](CONTRIBUTING.md).

- - -

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/mixed-reality-extension-altspacevr-extras
Description: The Mixed Reality Extension AltspaceVR Extras package enables MRE developers to access custom AltspaceVR features.
Author: Microsoft Corporation
Latest version: 0.20.0
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# mre-altspacevr-extras package

This package contains a number of AltspaceVR specific APIs to be used together with the Mixed Reality Extension SDK
npm package: @microsoft/mixed-reality-extension-sdk
Description: The Mixed Reality Extension SDK enables developers to build 3D world extensions for AltspaceVR, using Node.JS.
Author: Microsoft Corporation
Latest version: 0.20.0
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# mixed-reality-extension-sdk package

This package contains the base of the Mixed Reality Extension SDK
npm package: @microsoft/node-core-library
Description: (Please use "@rushstack/node-core-library" instead.)
Latest version: 4.0.1

# @microsoft/node-core-library

> Please use [@rushstack/node-core-library](https://www.npmjs.com/package/@rushstack/node-core-library) instead of this package.

IMPORTANT: This package has moved under the `@rushstack` NPM scope.

```
  OLD NAME: @microsoft/node-core-library (3.19.3)
  NEW NAME: @rushstack/node-core-library (3.19.4)
```

The new package's CHANGELOG.md preserves version history from before the rename.

The new package starts with a SemVer PATCH increment, since no code has changed.

To learn about the Rush Stack project, please visit https://rushstack.io/
npm package: @microsoft/node-library-build
Description: `node-library-build` is a `gulp-core-build` based build rig which provides basic functionality for building and unit testing TypeScript projects.
Latest version: 6.6.3

# @microsoft/node-library-build

`node-library-build` is a `gulp-core-build` based build rig which provides basic functionality for building and unit testing TypeScript projects.

[![npm version](https://badge.fury.io/js/%40microsoft%2Fnode-library-build.svg)](https://badge.fury.io/js/%40microsoft%2Fnode-library-build)
[![Build Status](https://travis-ci.org/Microsoft/node-library-build.svg?branch=master)](https://travis-ci.org/Microsoft/node-library-build)
[![Dependencies](https://david-dm.org/Microsoft/node-library-build.svg)](https://david-dm.org/Microsoft/node-library-build)
npm package: @microsoft/overreact
Description: TO BE ADDED
Latest version: 0.1.0-alpha.32

# @microsoft/overreact

**@microsoft/overreact** is a new component.

## References

## Installing

When using yarn, run the following command:

```shell
yarn add --save @microsoft/overreact
```

## Using

After installing, import the package into your code and start using it

```javascript
import { Overreact } from '@microsoft/overreact';

/// ...
```
npm package: @microsoft/overreact-odata
Description: OData binding generator for overreact
Author: Like Zhu
Latest version: 0.1.0-alpha.32

# `overreact-odata`

A typical usage of overreact within our team is to deal with [OData](https://www.odata.org/) from various service endpoints. Usually these endpoints already have pre-built schema packages available (such as `@bingads-webui/mca-odata-schemas`, and `@bingads-webui/campaign-odata-schemas`), from which we can extract useful information and generate overreact specs without having our developers write from scratch. Given each entity (e.g., `Activity`, `Ad`) have CRUD operations, as well as OData actions/functions attached, this could save a tremendous amount of manual effort.

## The Idea

To generate a spec for each OData model, we'll need to solve these problems:

1. How to create `dataPath` from OData model hierarchy.
2. How to assign proper "Key" values to each level on hierarchy.
3. How to identify from response which property is the "Key".

In overreact, the internal data structure ("store") is constructed from a schema tree, where each node has an associated `dataPath` to describe its location from root. Similarly, OData also organizes data using a tree-like structure, and provides navigation properties to locate specific data in the tree. 

Consider an OData GET request to fetch an `Activity`. The URL would look like this:

> GET https://contoso.com/Customers(123)/Accounts(456)/Activities('789')

We can directly map `dataPath` from EDM hierarchy to `customer:account:activity`.

For OData actions/functions, a call to `https://contoso.com/Customers(123)/Accounts(456)/Default.FooBar()` will map to `customer:account:foo_bar`. Note that we converted the Pascal naming to Snake convention, and discarded the namespace "Default" in this case.

The "Key" values are used to identify which entity to use on each level in the hierarchy. Currently in overreact we have 2 options to select keys:

1. Using `locator.order` in `variables`. For example:
```javascript
const variables = {
    locator: {
        order: ['cid', 'aid', 'activityId'],
        descriptor: { cid: 123, aid: 456, activityId: '789' },
    },
};
```

2. Using `parentKeySelector` in request contract.

Unfortunately `parentKeySelector` only provides "Key" info for current value, as well as its "parent" key values. We'll loose info for levels that are higher than 2, so in our case we'll resort to using `order`.

Finally, we need to identify the "Key" property value from OData responses, as they are used to look up cached items in overreact store. Luckily it is usually specified in `$$ODataExtension.Key` from the OData schemas. It is an array value but for now we'll only leverage the first one:

```javascript
const { $$ODataExtension } = entitySchema;

createResponseContract({
    // ...
    keySelector: r => r[$$ODataExtension.Key[0]],
})
```

## Usage

Due to length limit, please visit [Working with OData](https://microsoft.github.io/overreact-core/blog/odata) for details on usage.