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 # 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) ## 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 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", "name": "@push.rocks/smartradius",
"version": "1.1.0", "version": "1.1.1",
"private": false, "private": false,
"description": "A RADIUS server and client implementation for Node.js with full RFC 2865/2866 compliance", "description": "A RADIUS server and client implementation for Node.js with full RFC 2865/2866 compliance",
"main": "dist_ts/index.js", "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 ## Build System
- Uses `@git.zone/tsbuild` v4.x with tsfolders mode - Uses `@git.zone/tsbuild` v4.x with tsfolders mode
@@ -107,5 +107,10 @@ Downloaded to `./spec/`:
- `rfc2865.txt` - RADIUS Authentication - `rfc2865.txt` - RADIUS Authentication
- `rfc2866.txt` - RADIUS Accounting - `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 ## 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 { expect, tap } from '@git.zone/tstest/tapbundle';
import * as crypto from 'crypto'; import * as crypto from 'node:crypto';
import { import {
RadiusAuthenticator, RadiusAuthenticator,
RadiusPacket, RadiusPacket,

View File

@@ -1,5 +1,5 @@
import { expect, tap } from '@git.zone/tstest/tapbundle'; 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'; import { RadiusAuthenticator } from '../../ts_server/index.js';
tap.test('should calculate CHAP response per RFC', async () => { tap.test('should calculate CHAP response per RFC', async () => {

View File

@@ -1,5 +1,5 @@
import { expect, tap } from '@git.zone/tstest/tapbundle'; 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'; import { RadiusAuthenticator } from '../../ts_server/index.js';
tap.test('should encrypt and decrypt short password (< 16 chars)', async () => { tap.test('should encrypt and decrypt short password (< 16 chars)', async () => {

View File

@@ -3,6 +3,6 @@
*/ */
export const commitinfo = { export const commitinfo = {
name: '@push.rocks/smartradius', 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' 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 crypto from 'node:crypto';
import * as dgram from 'dgram'; import * as dgram from 'node:dgram';
// Import from smartpromise for deferred promises
import * as smartpromise from '@push.rocks/smartpromise';
import * as smartdelay from '@push.rocks/smartdelay';
export { export {
crypto, crypto,
dgram, dgram,
smartpromise,
smartdelay,
}; };

View File

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