Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 21e40c238c | |||
| 9c3f7acae8 |
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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 () => {
|
||||||
|
|||||||
@@ -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 () => {
|
||||||
|
|||||||
@@ -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'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user