fix(build): rename npmextra config to .smartconfig and refresh build metadata
This commit is contained in:
Vendored
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"json.schemas": [
|
||||
{
|
||||
"fileMatch": ["/npmextra.json"],
|
||||
"fileMatch": ["/.smartconfig.json"],
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# Changelog
|
||||
|
||||
## 2026-04-19 - 6.3.3 - fix(build)
|
||||
rename npmextra config to .smartconfig and refresh build metadata
|
||||
|
||||
- renames the published project config file from npmextra.json to .smartconfig.json
|
||||
- updates build and tooling dependencies to newer patch and minor versions
|
||||
- adds Node type configuration and TypeScript deprecation handling in tsconfig
|
||||
- refreshes README documentation to match the current build command and runtime management APIs
|
||||
|
||||
## Next - feat(credentials)
|
||||
add runtime credential management APIs
|
||||
|
||||
|
||||
+9
-9
@@ -15,14 +15,14 @@
|
||||
"buildDocs": "tsdoc"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@aws-sdk/client-s3": "^3.1014.0",
|
||||
"@git.zone/tsbuild": "^4.3.0",
|
||||
"@git.zone/tsbundle": "^2.9.1",
|
||||
"@git.zone/tsrun": "^2.0.1",
|
||||
"@git.zone/tsrust": "^1.3.0",
|
||||
"@git.zone/tstest": "^3.5.0",
|
||||
"@push.rocks/smartbucket": "^4.5.1",
|
||||
"@types/node": "^25.5.0"
|
||||
"@aws-sdk/client-s3": "^3.1032.0",
|
||||
"@git.zone/tsbuild": "^4.4.0",
|
||||
"@git.zone/tsbundle": "^2.10.0",
|
||||
"@git.zone/tsrun": "^2.0.2",
|
||||
"@git.zone/tsrust": "^1.3.2",
|
||||
"@git.zone/tstest": "^3.6.3",
|
||||
"@push.rocks/smartbucket": "^4.6.0",
|
||||
"@types/node": "^25.6.0"
|
||||
},
|
||||
"browserslist": [
|
||||
"last 1 chrome versions"
|
||||
@@ -37,7 +37,7 @@
|
||||
"dist_ts_web/**/*",
|
||||
"assets/**/*",
|
||||
"cli.js",
|
||||
"npmextra.json",
|
||||
".smartconfig.json",
|
||||
"readme.md"
|
||||
],
|
||||
"dependencies": {
|
||||
|
||||
Generated
+1594
-1724
File diff suppressed because it is too large
Load Diff
+2
-3
@@ -56,9 +56,9 @@
|
||||
|
||||
## Build
|
||||
|
||||
- `pnpm build` runs `tsrust && tsbuild --web --allowimplicitany`
|
||||
- `pnpm build` runs `tsrust && tsbuild tsfolders --allowimplicitany`
|
||||
- `tsrust` compiles Rust to `dist_rust/ruststorage`
|
||||
- Targets: linux_amd64, linux_arm64 (configured in npmextra.json)
|
||||
- Targets: linux_amd64, linux_arm64 (configured in .smartconfig.json)
|
||||
|
||||
## Dependencies
|
||||
|
||||
@@ -69,7 +69,6 @@
|
||||
|
||||
## Testing
|
||||
|
||||
- `test/test.aws-sdk.node.ts` - AWS SDK v3 compatibility + runtime stats coverage (18 tests, auth disabled, port 3337)
|
||||
- `test/test.aws-sdk.node.ts` - AWS SDK v3 compatibility + runtime stats + standalone cluster health coverage (19 tests, auth disabled, port 3337)
|
||||
- `test/test.credentials.node.ts` - runtime credential rotation coverage (10 tests, auth enabled, port 3349)
|
||||
- `test/test.cluster-health.node.ts` - single-node cluster health coverage (4 tests, S3 port 3348, QUIC port 4348)
|
||||
|
||||
@@ -589,6 +589,26 @@ Get connection details for S3-compatible clients. Returns:
|
||||
| `accessSecret` | `string` | Secret key from first configured credential |
|
||||
| `useSsl` | `boolean` | Always `false` (plain HTTP) |
|
||||
|
||||
#### `getStorageStats(): Promise<IStorageStats>`
|
||||
|
||||
Read cached logical bucket and object totals from the Rust runtime without issuing S3 list calls.
|
||||
|
||||
#### `listBucketSummaries(): Promise<IBucketSummary[]>`
|
||||
|
||||
Get per-bucket logical object counts and total payload sizes.
|
||||
|
||||
#### `listCredentials(): Promise<IStorageCredential[]>`
|
||||
|
||||
Return the currently active runtime credential set.
|
||||
|
||||
#### `replaceCredentials(credentials: IStorageCredential[]): Promise<void>`
|
||||
|
||||
Atomically replace the active runtime credential set without restarting the server.
|
||||
|
||||
#### `getClusterHealth(): Promise<IClusterHealth>`
|
||||
|
||||
Read the Rust core's current cluster, drive, quorum, and repair health snapshot. Standalone mode returns `{ enabled: false }`.
|
||||
|
||||
## Architecture
|
||||
|
||||
smartstorage uses a **hybrid Rust + TypeScript** architecture:
|
||||
@@ -622,7 +642,7 @@ smartstorage uses a **hybrid Rust + TypeScript** architecture:
|
||||
|
||||
**Why Rust?** The original TypeScript implementation had critical perf issues: OOM on multipart uploads (parts buffered in memory), double stream copying, file descriptor leaks on HEAD requests, full-file reads for range requests, and no backpressure. The Rust binary solves all of these with streaming I/O, zero-copy, and direct `seek()` for range requests.
|
||||
|
||||
**IPC Protocol:** TypeScript spawns the `ruststorage` binary with `--management` and communicates via newline-delimited JSON over stdin/stdout. Commands: `start`, `stop`, `createBucket`, `clusterStatus`.
|
||||
**IPC Protocol:** TypeScript communicates with the `ruststorage` binary over newline-delimited JSON via stdin/stdout. The current management commands are `start`, `stop`, `createBucket`, `getStorageStats`, `listBucketSummaries`, `listCredentials`, `replaceCredentials`, and `getClusterHealth`.
|
||||
|
||||
### S3-Compatible Operations
|
||||
|
||||
|
||||
@@ -3,6 +3,6 @@
|
||||
*/
|
||||
export const commitinfo = {
|
||||
name: '@push.rocks/smartstorage',
|
||||
version: '6.3.2',
|
||||
version: '6.3.3',
|
||||
description: 'A Node.js TypeScript package to create a local S3-compatible storage server using mapped local directories for development and testing purposes.'
|
||||
}
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
"moduleResolution": "NodeNext",
|
||||
"esModuleInterop": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
"types": ["node"],
|
||||
"ignoreDeprecations": "6.0",
|
||||
"baseUrl": ".",
|
||||
"paths": {}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user