open-index/open-npm huggingface dataset:
npm package: @kineticcafe/app-identity
Description: Lightweight secure application authentication
Author: Kinetic Commerce & contributors
Latest version: 2.0.1

# @kineticcafe/app-identity 2.0.0: AppIdentity for JavaScript

- code :: https://github.com/KineticCafe/app-identity/tree/main/ts/
- issues :: https://github.com/KineticCafe/app-identity/issues

## Description

@kineticcafe/app-identity is the runtime-agnostic Typescript implementation of
the Kinetic Commerce application identity proof algorithm as described in its
[spec][spec].

This package cannot be used without a runtime adapter. See
[@kineticcafe/app-identity-node][node] for the Node.js adapter. If a different
runtime is required, see [adapter.ts][adapter.ts] for the required functions.

## Synopsis

```javascript
import * as AppIdentity from "@kineticcafe/app-identity";
import { myRuntime } from "./runtime";

// Required at program start.
AppIdentity.setRuntimeAdapter(myRuntime);

const app = { id, secret, version: 2 };
const proof = AppIdentity.generateProof(app);
AppIdentity.verifyProof(proof, app);
```

## Installation

@kineticcafe/app-identity should be added to your list of dependencies in
`package.json`.

```console
$ npm add @kineticcafe/app-identity@^2.0
```

We discourage the use of AppIdentity for JavaScript in a browser because the App
Identity algorithm requires the use of shared secrets for validation.

## Semantic Versioning

`AppIdentity` uses a [Semantic Versioning][semver] scheme with one significant
change:

- When PATCH is zero (`0`), it will be omitted from version references.

Additionally, the major version will generally be reserved for specification
revisions.

## Contributing

AppIdentity for JavaScript [welcomes contributions][contributions]. This
project, like all Kinetic Commerce [open source projects][projects], is under
the Kinetic Commerce Open Source [Code of Conduct][coc].

AppIdentity for Elixir is licensed under the Apache License, version 2.0 and
requires certification via a Developer Certificate of Origin. See
[Licence][Licence] for more details.

[contributions]: https://github.com/KineticCafe/app-identity/blob/main/ts/Contributing.md
[coc]: https://github.com/KineticCafe/code-of-conduct
[projects]: https://github.com/KineticCafe
[semver]: http://semver.org/
[spec]: https://github.com/KineticCafe/app-identity/blob/main/spec/README.md
[licence]: https://github.com/KineticCafe/app-identity/blob/main/ts/Licence.md
[node]: https://github.com/KineticCafe/app-identity/tree/main/ts/packages/node
[adapter.ts]: https://github.com/KineticCafe/app-identity/bloc/main/ts/packages/node/src/adapter.ts
npm package: @kineticcafe/app-identity-node
Description: Lightweight secure application authentication (Node Runtime Adapter)
Author: Kinetic Commerce & contributors
Latest version: 2.0.1

# @kineticcafe/app-identity-node 2.0.0: AppIdentity for JavaScript

- code :: https://github.com/KineticCafe/app-identity/tree/main/ts/
- issues :: https://github.com/KineticCafe/app-identity/issues

## Description

@kineticcafe/app-identity-node is the Node.js runtime adapter for the Kinetic
Commerce application identity proof algorithm as described in its [spec][spec].

## Synopsis

```javascript
import * as AppIdentity from "@kineticcafe/app-identity-node";

// Required at program start.
AppIdentity.useNodeRuntimeAdapter();

const app = { id, secret, version: 2 };
const proof = AppIdentity.generateProof(app);
AppIdentity.verifyProof(proof, app);
```

## Installation

`@kineticcafe/app-identity-node` should be added to your list of dependencies in
`package.json`.

```console
$ npm add @kineticcafe/app-identity-node@^2.0
```

## Semantic Versioning

`AppIdentity` uses a [Semantic Versioning][semver] scheme with one significant
change:

- When PATCH is zero (`0`), it will be omitted from version references.

Additionally, the major version will generally be reserved for specification
revisions.

## Contributing

AppIdentity for JavaScript [welcomes contributions][contributions]. This
project, like all Kinetic Commerce [open source projects][projects], is under
the Kinetic Commerce Open Source [Code of Conduct][coc].

AppIdentity for Elixir is licensed under the Apache License, version 2.0 and
requires certification via a Developer Certificate of Origin. See
[Licence][Licence] for more details.

[contributions]: https://github.com/KineticCafe/app-identity/blob/main/ts/Contributing.md
[coc]: https://github.com/KineticCafe/code-of-conduct
[projects]: https://github.com/KineticCafe
[semver]: http://semver.org/
[spec]: https://github.com/KineticCafe/app-identity/blob/main/spec/README.md
[licence]: https://github.com/KineticCafe/app-identity/blob/main/ts/Licence.md
npm package: @kineticcafe/app-identity-suite-ts
Description: Lightweight secure application authentication (Typescript suite CLI)
Author: Kinetic Commerce & contributors
Latest version: 2.0.1

# @kineticcafe/app-identity-suite-ts 2.0.0: AppIdentity for JavaScript

- code :: https://github.com/KineticCafe/app-identity/tree/main/ts/
- issues :: https://github.com/KineticCafe/app-identity/issues

## Description

@kineticcafe/app-identity-suite-ts is the [integration test][integration test]
tool for AppIdentity for JavaScript.

## Synopsis

```console
$ npm install --global @kineticcafe/app-identity-suite-ts
$ app-identity-suite-ts generate --stdout | app-identity-suite-ts run --stdin
TAP Version 14
1..78
# generator: @kineticcafe/app-identity 2.0.0 (@kineticcafe/app-identity-node, spec 4)
# runner: @kineticcafe/app-identity 2.0.0 (@kineticcafe/app-identity-node, spec 4)
ok 1 - App V1, Proof V1
ok 2 - App V1, Proof V2
ok 3 - App V1, Proof V3
ok 76 - Proof V2, Mismatched Padlock
ok 77 - Proof V3, Mismatched Padlock
ok 78 - Proof V4, Mismatched Padlock
```

### `app-identity-suite-ts generate`

Generates an integration test suite JSON file, defaulting to
`app-identity-suite-ts.json`.

- **Usage**: `app-identity-suite-ts generate [options] [suite]`
- **Options**:
  - `--stdout`: Prints the suite to standard output instead of saving it
  - `-q`, `--quiet`: Silences diagnostic messages

### `app-identity-suite-ts generate`

Runes one or more integration suites.

- **Usage**: `app-identity-suite-ts run [options] [paths...]`
- **Options**:
  - `-S`, `--strict`: Runs in strict mode; optional tests will cause failure
  - `--stdin`: Reads a suite from standard input
  - `-D`, `--diagnostic`: Enables output diagnostics

## Installation

@kineticcafe/app-identity-suite-ts can be installed globally or locally, as
required.

```sh
npm install --global @kineticcafe/app-identity-suite-ts@^2.0
```

## Semantic Versioning

`AppIdentity` uses a [Semantic Versioning][semver] scheme with one significant
change:

- When PATCH is zero (`0`), it will be omitted from version references.

Additionally, the major version will generally be reserved for specification
revisions.

## Contributing

AppIdentity for JavaScript [welcomes contributions][contributions]. This
project, like all Kinetic Commerce [open source projects][projects], is under
the Kinetic Commerce Open Source [Code of Conduct][coc].

AppIdentity for Elixir is licensed under the Apache License, version 2.0 and
requires certification via a Developer Certificate of Origin. See
[Licence][Licence] for more details.

[coc]: https://github.com/KineticCafe/code-of-conduct
[integration test]: https://github.com/KineticCafe/app-identity/blob/main/integration/README.md
[licence]: https://github.com/KineticCafe/app-identity/blob/main/ts/Licence.md
[projects]: https://github.com/KineticCafe
[semver]: http://semver.org/
[spec]: https://github.com/KineticCafe/app-identity/blob/main/spec/README.md
[contributions]: https://github.com/KineticCafe/app-identity/blob/main/ts/Contributing.md
npm package: @kineticcafe/result
Description: A Result type loosely based on Rust Result
Author: Kinetic Commerce & contributors
Latest version: 0.6.3

# @kineticcafe/result

- code :: https://github.com/KineticCafe/result/tree/main/
- issues :: https://github.com/KineticCafe/result/issues

## Description

@kineticcafe/result is another [`Result` type][wiki] implementation for
Typescript, loosely based on Rust's [std::result][] type.

`Result` types contain a value or possible error and should be used to return
different types for success and failure without using exceptions for normal flow
control. As the values in `Result`s are not directly accessible, there is
explicit error handling at the point of use, through matching (`Result#match`),
transformation (`Result#andThen`, `Result#orElse`), unwrapping (`Result#unwrap`,
`Result#unwrapErr`), mapping (`Result#map`, `Result#mapErr`), or propagation
(returning the result to callers).

The @kineticcafe/result library additionally offers some utilities for dealing
with arrays of `Result` types.

## Synopsis

```javascript
import { Ok, Err } from '@kineticcafe/result'

Ok(3) // A successful result
Err('error') // A likely error
```

## Installation

`@kineticcafe/result` should be added to your list of dependencies in
`package.json`.

```sh
npm add @kineticcafe/result@^0.6
```

## Semantic Versioning

`@kineticcafe/result` uses a [Semantic Versioning][] scheme with one significant
change:

- When PATCH is zero (`0`), it will be omitted from version references.

## Contributing

@kineticcafe/result [welcomes contributions][]. This project, like all Kinetic
Commerce [open source projects][], is under the Kinetic Commerce Open Source
[Code of Conduct][].

This project is licensed under the Apache Licence, version 2.0 and requires
certification via a Developer Certificate of Origin. See [Licence.md][] for more
details.

[welcomes contributions]: https://github.com/KineticCafe/result/blob/main/Contributing.md
[code of conduct]: https://github.com/KineticCafe/code-of-conduct
[open source projects]: https://github.com/KineticCafe
[semantic versioning]: http://semver.org/
[licence.md]: https://github.com/KineticCafe/result/blob/main/Licence.md
[std::result]: https://doc.rust-lang.org/std/result/index.html
[wiki]: https://en.wikipedia.org/wiki/Result_type