open-index/open-npm huggingface dataset:
npm package: @robmoffat/fdc3
Description: This npm module is the main entry point for the Financial Desktop Connectivity and Collaboration Consortium (FDC3) JavaScript API.
Author: Fintech Open Source Foundation
Latest version: 2.2.2-beta.3

# FDC3

This npm module is the main entry point for the Financial Desktop Connectivity and Collaboration Consortium (FDC3) JavaScript API.

Since version 2.2.0 this module only provides an ES6 module. Applications requiring a CommonJS module should either update to ES6 or switch to the [@finos/fdc3-commonjs module](https://npmjs.com/package/@finos/fdc3-commonjs) (provided for backwards compatibility).

## Installation

To install the FDC3 module, use npm:

```bash
npm install @finos/fdc3
```

## Usage

To use the FDC3 module in your project, import it as follows:

```javascript
import { getAgent } from '@finos/fdc3';
// getAgent() returns the FDC3 Desktop Agent
const fdc3 = getAgent();

// Example usage
const contact = {
  type: 'fdc3.contact',
  name: 'Jane Doe',
  id: {
    email: 'jane@mail.com'
  }
};

fdc3.raiseIntent('ViewProfile', contact);
```

## Documentation

For detailed documentation and API reference, please visit the [official FDC3 documentation](https://fdc3.finos.org/docs/api/spec).

## Contributing

We welcome contributions to the FDC3 project. Please see our [contributing guidelines](https://github.com/finos/FDC3/blob/main/CONTRIBUTING.md) for more information.

## License

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

## Contact

For any questions or support, please reach out to the FDC3 community on our [Slack channel](https://finos-lf.slack.com/archives/CJ8Q8H4Q1) or [mailing list](mailto:fdc3@finos.org).

## Further Details

Further details are avilable in the main [FDC3 Project README](https://github.com/finos/FDC3)
npm package: @robmoffat/fdc3-agent-proxy
Description: This package contains complete implementation of the FDC3 Desktop Agent Communication Protocol (DACP).
Author: Fintech Open Source Foundation
Latest version: 2.2.2-beta.3

# FDC3 Agent Proxy

This package contains complete implementation of the FDC3 Desktop Agent Communication Protocol (DACP).  

Further details:
 - https://github.com/finos/FDC3
 - [FDC3 Specification](https://fdc3.finos.org/)
 - Main FDC3 module: https://www.npmjs.com/package/@finos/fdc3
npm package: @robmoffat/fdc3-get-agent
Description: Contains the main entry point for the Financial Desktop Connectivity and Collaboration Consortium (FDC3) JavaScript API, via the `getAgent` function.
Author: Fintech Open Source Foundation
Latest version: 2.2.2-beta.3

# FDC3 Agent Proxy

Contains the main entry point for the Financial Desktop Connectivity and Collaboration Consortium (FDC3) JavaScript API, via the `getAgent` function.


## Installation

To install the FDC3 module, use npm:

```bash
npm install @finos/fdc3-get-agent
```

## Usage

To use the FDC3 module in your project, import it as follows:

```javascript
import { getAgent } from '@finos/fdc3-get-agent';
// getAgent() returns the FDC3 Desktop Agent
const fdc3 = await getAgent();

// Example usage
const contact = {
  type: 'fdc3.contact',
  name: 'Jane Doe',
  id: {
    email: 'jane@mail.com'
  }
};

fdc3.raiseIntent('ViewProfile', contact);
```

## Documentation

For detailed documentation and API reference, please visit the [official FDC3 documentation](https://fdc3.finos.org/docs/api/spec).

## Contributing

We welcome contributions to the FDC3 project. Please see our [contributing guidelines](https://github.com/finos/FDC3/blob/main/CONTRIBUTING.md) for more information.

## License

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

## Contact

For any questions or support, please reach out to the FDC3 community on our [Slack channel](https://finos-lf.slack.com/archives/CJ8Q8H4Q1) or [mailing list](mailto:fdc3@finos.org).

## Further Details

Further details are avilable in the main [FDC3 Project README](https://github.com/finos/FDC3)
npm package: @robmoffat/fdc3-standard
Description: Interface definitions for the FDC3 standard in TypeScript (e.g. the `DesktopAgent` interface) and the app directory schema.
Author: Fintech Open Source Foundation
Latest version: 2.2.2-beta.3

# FDC3 Standard Module

Interface definitions for the FDC3 standard in TypeScript (e.g. the `DesktopAgent` interface) and the app directory schema.  

Further details:
 - https://github.com/finos/FDC3
 - [FDC3 Specification](https://fdc3.finos.org/)
 - Main FDC3 module: https://www.npmjs.com/package/@finos/fdc3
npm package: @robmoffat/fdc3-web-impl
Description: This repository contains a [FDC3 2.2 Conformant](../../fdc3-conformance/README.md), headless implementation of the FDC3 DACP protocol.
Author: Fintech Open Source Foundation
Latest version: 2.2.2-beta.3

# FDC3 Web Implementation

This repository contains a [FDC3 2.2 Conformant](../../fdc3-conformance/README.md), headless implementation of the FDC3 DACP protocol. 

This package forms the basis of the implementation of the FDC3 Desktop Agent reference implementation, found in [the demo module](../demo/README.md) as well as the web-version of [FDC3-Sail](https://github.com/finos/FDC3-Sail/).

It is expected that Desktop Agent implementations can either use this package as the basis for their own FDC3 implementation, use the tests provided here to test their implementation or rake inspiration from the codebase to implement their own FDC3 Desktop Agent from scratch.

## How This Works

There are three main types of component here:

- **MessageHandlers**: These are the core of the FDC3 implementation. They are responsible for handling incoming messages from apps and responding to them correctly.  There are four defined, breaking up the functionality of FDC3:  `BroadcastHandler` (handing channels and broadcasting), `IntentHandler` (handling intents, intent resolution etc.), `OpenHandler` (handling app launches) and `HeartbeatHandler` (handling app liveness and disconnection).

 - **FDC3Server**: This is the main entry point for the FDC3 implementation. It is responsible for setting up the message handlers and starting the server, implemented by `BasicFDC3Server` and `DefaultFDC3Server` classes. 

 - **ServerContext**: This interface is responsible for maintaining the state of the server.  `ServerContext` really determines how FDC3 is run: how messages are sent, how apps are launched, how intents are resolved etc.  It is the main point of customization for an FDC3 implementation. If you are implementing an FDC3 Desktop Agent, you will need to implement this class yourself.   See the [Demo](../demo/README.md), which implements this in-browser as `DemoServerContext`.