npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ahfc-client

v0.2.5

Published

Client for interacting with the Arrowhead Framework mandatory core services.

Downloads

8

Readme

Arrowhead Core Client Library for Node.js

Arrowhead core client for node.js. This package contains code for interacting with the Arrowhead Mandatory Core Services, which are the ServiceRegistry, AuthorisationSystem and the OrchestrationSystem. More information about the mentioned services may be read in the Arrowhead Wiki.

This repository contains a Work-In-Progress (WIP) implementation. Everything is subject to change, and no guarantees about what particular features are available are given.

About Arrowhead

Arrowhead is a service-oriented automation framework, envisioned to enable the creation of highly dynamic, scalable and resilient industrial automation systems. It is centered around the idea of so-called Local Automation Clouds, which could be thought of as secured intranets with real-time operation support. For more information, please refer to the Arrowhead Wiki.

Using this Package

This package is available via the Node Package Manager and is published as ahfc-client. Instructions on how to get started with the package may be read here.

Contributing

Contributions are considered from all sources, in all forms, and are required to adhere to the below guidelines to be accepted.

  • All code that can reasonably be written in TypeScript, must be written in TypeScript.
  • New code must adhere to the style of the existing code.
  • No other functionality other than such that contributes to the implementations of the ServiceRegistry, AuthorisationSystem or OrchestrationSystem service interfaces will be accepted.
  • The only dependency of this package is the latest Long Term Support (LTS) release of the node platform itself. No other packages may be used, unless maintained by the same developers as are maintaining this package.
  • Unit tests must be provided along new contributions if the contribution in question is either (1) a non-trivial bugfix, (2) understood to be difficult to get right, or (3) contains security-critical functionality.
  • Integration tests are not to be part of this repository.
  • The package is not to contain any implementations of cryptographic primitives, such as secure hash functions, etc.

Rationale

No Third Party Dependencies

Having dependencies invariably leads to a loss of control, to some extent. Version conflicts, security issues, other bugs, and the disk space required to use this package can end up being out of reach of its developers. Avoiding third party dependencies to the furthest extent possible is therefore a primary objective.

Limited Unit Testing

Apart from ensuring behaviour correctness, unit tests lead to making code changes more difficult, as either new units must be written, or existing units be changed whenever code is added or modified. By focusing on bugfixes, other difficult regions of code, and security-critical functionality, unit tests are employed where needed the most, and the cost of maintaining them is kept at a reasonable low.

No Integration Tests

Integration tests are often not distinguished from regular unit tests. The former kind ensures that an implementation is true to its public interface specification, while the latter verifies that the internals of an implementation behave as expected. Integration tests may with advantage be put into separate projects, each making up a Technology Compatibility Kit (TCK), which may be used to test not just a single project, but any other such that aim to be compatible with it.

No Cryptographic Primitives

Cryptography is hard to get right. The cryptographic primitives provided via node.js through OpenSSL ought to be enough for any secure functionality implemented in this package.