• HTML 80.8%
  • Rust 16.9%
  • JavaScript 2.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-06-30 06:58:50 +02:00
.cargo chore: initialize 2026-06-30 06:58:50 +02:00
examples chore: initialize 2026-06-30 06:58:50 +02:00
scripts chore: initialize 2026-06-30 06:58:50 +02:00
src chore: initialize 2026-06-30 06:58:50 +02:00
tests chore: initialize 2026-06-30 06:58:50 +02:00
.gitignore chore: initialize 2026-06-30 06:58:50 +02:00
Cargo.lock chore: initialize 2026-06-30 06:58:50 +02:00
Cargo.toml chore: initialize 2026-06-30 06:58:50 +02:00
LICENSE.md chore: initialize 2026-06-30 06:58:50 +02:00
README.md chore: initialize 2026-06-30 06:58:50 +02:00

@unilim/signatures

IUT signatures (transcript / relevé de notes) bindings for Unilim, compiled from Rust to WebAssembly.

Install

npm install @unilim/signatures @unilim/cas

A Signatures session is opened from a CAS session: @unilim/signatures receives a CAS object from @unilim/cas across the JS boundary, so install both.

Usage

import { CAS } from "@unilim/cas";
import { Signatures } from "@unilim/signatures";

const cas = await CAS.restore(username, password, connection, key);

const signatures = await Signatures.fromCAS(cas);
const reportCard = await signatures.dump();
console.log(reportCard);

// or parse an HTML page you already have:
const parsed = Signatures.parse(html);

How the CAS object is shared

Signatures.fromCAS(cas) takes the live CAS object, not a cookie string. This crate depends on unilim-cas and sources the CAS type from it:

  • wasmunilim_cas::boundary (extern declarations of @unilim/cas's CAS/OAuth2); signatures calls the object's authorize/cookie methods across the JS boundary and links no CAS client.
  • nativeunilim_cas::client::Cas (the real Rust client); from_cas takes a &Cas and calls its methods directly.