2 Commits
v1.1.0 ... main

Author SHA1 Message Date
21e40c238c v1.1.1
Some checks failed
Default (tags) / security (push) Successful in 31s
Default (tags) / test (push) Failing after 3m57s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2026-02-11 15:57:37 +00:00
9c3f7acae8 fix(imports): use node: built-in imports and remove dead smartpromise/smartdelay exports 2026-02-11 15:57:37 +00:00
9 changed files with 24 additions and 17 deletions

View File

@@ -1,5 +1,13 @@
# Changelog
## 2026-02-11 - 1.1.1 - fix(imports)
use node: built-in imports and remove dead smartpromise/smartdelay exports
- Replaced bare Node.js built-in imports with node: prefix in ts_server/plugins.ts, ts_client/plugins.ts, and tests (crypto, dgram) for ESM/Deno/Bun compatibility.
- Removed dead smartpromise and smartdelay exports from ts_client/plugins.ts (packages remain in package.json).
- Updated readme.hints.md to document node: import requirement, note removal of dead imports, and record the change date/notes.
- No functional API changes expected — this is a compatibility/cleanup patch.
## 2026-02-01 - 1.1.0 - feat(smartradius)
Implement full RADIUS server and client with RFC 2865/2866 compliance, including packet handling, authenticators, attributes, secrets manager, client APIs, and comprehensive tests and documentation

View File

@@ -1,6 +1,6 @@
{
"name": "@push.rocks/smartradius",
"version": "1.1.0",
"version": "1.1.1",
"private": false,
"description": "A RADIUS server and client implementation for Node.js with full RFC 2865/2866 compliance",
"main": "dist_ts/index.js",

View File

@@ -57,7 +57,7 @@ ts/ (order: 3) - Main exports (re-exports server + client)
}
```
Node.js built-ins: `dgram` (UDP), `crypto` (MD5/HMAC)
Node.js built-ins: `node:dgram` (UDP), `node:crypto` (MD5/HMAC)
## Build System
- Uses `@git.zone/tsbuild` v4.x with tsfolders mode
@@ -107,5 +107,10 @@ Downloaded to `./spec/`:
- `rfc2865.txt` - RADIUS Authentication
- `rfc2866.txt` - RADIUS Accounting
## Code Quality Notes
- All Node.js built-in imports use `node:` prefix (ESM/Deno/Bun compatible)
- Dead `smartpromise`/`smartdelay` imports removed from `ts_client/plugins.ts` (packages kept in package.json)
- Rust migration assessed as not cost-effective: crypto ops already delegate to OpenSSL C, RADIUS packets are small (max 4096 bytes), IPC overhead would negate any gains
## Last Updated
2026-02-01 - Full implementation complete with RFC 2865/2866 compliance
2026-02-11 - Fixed bare node: imports, removed dead imports, assessed Rust migration

View File

@@ -1,5 +1,5 @@
import { expect, tap } from '@git.zone/tstest/tapbundle';
import * as crypto from 'crypto';
import * as crypto from 'node:crypto';
import {
RadiusAuthenticator,
RadiusPacket,

View File

@@ -1,5 +1,5 @@
import { expect, tap } from '@git.zone/tstest/tapbundle';
import * as crypto from 'crypto';
import * as crypto from 'node:crypto';
import { RadiusAuthenticator } from '../../ts_server/index.js';
tap.test('should calculate CHAP response per RFC', async () => {

View File

@@ -1,5 +1,5 @@
import { expect, tap } from '@git.zone/tstest/tapbundle';
import * as crypto from 'crypto';
import * as crypto from 'node:crypto';
import { RadiusAuthenticator } from '../../ts_server/index.js';
tap.test('should encrypt and decrypt short password (< 16 chars)', async () => {

View File

@@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@push.rocks/smartradius',
version: '1.1.0',
version: '1.1.1',
description: 'A RADIUS server and client implementation for Node.js with full RFC 2865/2866 compliance'
}

View File

@@ -1,13 +1,7 @@
import * as crypto from 'crypto';
import * as dgram from 'dgram';
// Import from smartpromise for deferred promises
import * as smartpromise from '@push.rocks/smartpromise';
import * as smartdelay from '@push.rocks/smartdelay';
import * as crypto from 'node:crypto';
import * as dgram from 'node:dgram';
export {
crypto,
dgram,
smartpromise,
smartdelay,
};

View File

@@ -1,5 +1,5 @@
import * as crypto from 'crypto';
import * as dgram from 'dgram';
import * as crypto from 'node:crypto';
import * as dgram from 'node:dgram';
export {
crypto,