Search by

kumwe / record-values

llewellyn

Portable bounded record values, exact numeric normalization and temporal semantics.

Package info

github.com/kumwe/record-values

Language:Shell

pkg:composer/kumwe/record-values

Statistics

Installs: 191

Dependents: 4

Suggesters: 0

Stars: 0

Open Issues: 0

v0.1.4 2026-09-08 16:48 UTC

README

Packagist version CI PHP requirement License

Bounded portable record values, exact numeric normalization and temporal semantics under Kumwe\Record\Value.

Installation

Requires 64-bit PHP 8.5 with JSON and mbstring. Pin an exact pre-1.0 release:

composer require kumwe/record-values:0.1.4

Composer declares the exact Conversion dependency. The version badge links published packages; CI reports default-branch package checks. Core integration and independent release verification are separate consumer responsibilities.

Usage and Core contract

require 'vendor/autoload.php';

$instant = \Kumwe\Record\Value\ClientAssertedInstant::fromPortableString('2024-02-29T10:00:00Z');
echo $instant->toPortableString(); // 2024-02-29T10:00:00.000000+00:00

Values and stateless normalization use direct construction. A client instant is a UTC-normalized claim with microsecond precision; it never replaces server ordering, expiry, accounting-period or numbering authority. ProtectedRecordValue admits bounded detached JSON storage; Core retains authenticity, associated-data validation, key lifecycle and rotation. The marker performs no cryptography or trust validation.

See public API, architecture, integration, test ownership, release record and the standalone consumer.

Development

Requires Node.js 20+ for development schema validation:

npm ci --prefix tools/schema-validator --ignore-scripts
composer install
composer check

The pinned Ajv2020/YAML gate validates complete canonical manifests and release records with rejection regressions. PHP checks cover behavior/conformance, architecture, static analysis, manifests/governance, audit, dependency identities, release automation and a no-dev classmap-authoritative archive consumer. CI runs PHP 8.5 on Linux. Development tools are excluded from consumer archives.

Published tags remain fixed. See releasing and changelog. Licensed under Apache-2.0.