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 🙏

© 2026 – Pkg Stats / Ryan Hefner

ahbicht-ts-models

v0.1.8

Published

Model classes for AHBicht

Downloads

490

Readme

ahbicht-ts-models

This repository contains the NPM package ahbicht-ts-models. The package contains the AHBicht data model as TypeScript interfaces.

This repository contains no logic, just types for ease of use in any frontend project.

The files in src are completly autogenerated from JSON Schemas, so they're inherently consistent with the AHBicht Python code. Any push to the Python repos json_schemas directory will create a commit in this repository.

Installation

npm install ahbicht-ts-models

Example

import axios from "axios";
import {
  CategorizedKeyExtract,
  ContentEvaluationResult,
  AhbExpressionEvaluationResult,
} from "ahbicht-ts-models";
axios
  .get("https://ahbicht-backend-prod-fnfnegeqfwcffrhw.germanywestcentral-01.azurewebsites.net/CategorizedKeyExtract/", {
    params: {
      expression: "Muss ([2]O[3])[902][501]",
    },
  })
  .then(function (ckeResponse) {
    let categorizedKeyExtract: CategorizedKeyExtract = ckeResponse.data;
    console.log(
      "Retrieved categorized keys from AHBicht: ",
      categorizedKeyExtract
    );
    // You can now extract the key of the packages, RCs, FCs and hints from the categorized key extract.
    // Then you could build a content evaluation result from it; here we hard code it for simplicity:
    let contentEvaluationResult: ContentEvaluationResult = {
      requirement_constraints: { "2": "FULFILLED", "3": "UNFULFILLED" },
      format_constraints: { "902": { format_constraint_fulfilled: true } },
      hints: { "501": "muss 42 nachkommastellen haben" },
    };
    axios
      .post(
        "https://ahbicht-backend-prod-fnfnegeqfwcffrhw.germanywestcentral-01.azurewebsites.net/ParseExpression/",
        contentEvaluationResult,
        {
          params: {
            expression: "Muss ([2]O[3])[902][501]",
          },
        }
      )
      .then(function (cerResponse) {
        let ahbExpressionEvaluationResult: AhbExpressionEvaluationResult = cerResponse.data;
        console.log(ahbExpressionEvaluationResult);
      });
  });

Release Workflow (CI/CD)

  • Update the source code (happens automatically for /src)
  • iff there are any new classes, re-export the autogenerated models in index.d.ts
  • click on "Draft a new Release" in the right sidebar on Github
  • Choose a tag of the form v1.2.3 on the main branch
  • Autogenerate Release Notes
  • Publish the release. That triggers npm-publish.yml, which publishes to npm.

Notes on the release workflow:

  • The tag is the only source of truth for the version. Do not bump package.json by hand: the workflow derives the version from the tag and overwrites the field before publishing. The value committed in package.json is therefore stale by design.
  • A tag of the form v1.2.3-rc.1 is published under the next dist-tag instead of latest, regardless of GitHub's "this is a pre-release" checkbox. Build metadata (v1.2.3+build.4) is rejected, because npm cannot represent it.
  • The release must point at a commit on main; releases cut from other branches are refused.
  • The run fails if nothing actually reached npm. That check is new; without it the failure was silent: v0.1.6 was released in December 2025, its run reported success, and npm stayed on 0.1.5 — so v0.1.6 was never published. Do not try to fix that by re-releasing v0.1.6: a release runs the workflow as it existed at the tag's commit, which for that tag predates this one. Cut a new tag instead.
  • Publishing is authorized by npm trusted publishing via OIDC, not by a token. npm identifies this repository by the workflow filename and the environment (npm-publish.yml / release), so renaming the workflow file or changing the job's environment: breaks publishing until the trusted publisher is updated at the package's access settings.

Detailed Information on the AHBicht Types

Please refer to the official AHBicht docs.

Mappings

Parsing Results & Helper

Evaluation Results