fix(build): rename npmextra config to .smartconfig and update tooling dependencies

This commit is contained in:
2026-04-07 16:02:58 +00:00
parent b905af4132
commit d1fa9e38fd
10 changed files with 2323 additions and 6397 deletions

View File

@@ -1,7 +1,7 @@
{
"json.schemas": [
{
"fileMatch": ["/npmextra.json"],
"fileMatch": ["/.smartconfig.json"],
"schema": {
"type": "object",
"properties": {

View File

@@ -1,5 +1,12 @@
# Changelog
## 2026-04-07 - 4.5.2 - fix(build)
rename npmextra config to .smartconfig and update tooling dependencies
- replace npmextra.json with .smartconfig.json and update the published files list accordingly
- pin @git.zone/tsbuild to ~4.3.0 to avoid the TypeScript 6 node type discovery regression
- update test assertions to use @git.zone/tstest/tapbundle matchers after removing @push.rocks/tapbundle
## 2026-03-14 - 4.5.1 - fix(readme)
refresh documentation wording and simplify README formatting

3242
deno.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -12,15 +12,14 @@
"build": "(tsbuild tsfolders --allowimplicitany)"
},
"devDependencies": {
"@git.zone/tsbuild": "^4.3.0",
"@git.zone/tsrun": "^2.0.1",
"@git.zone/tstest": "^3.3.2",
"@git.zone/tsbuild": "~4.3.0",
"@git.zone/tsrun": "^2.0.2",
"@git.zone/tstest": "^3.6.3",
"@push.rocks/qenv": "^6.1.3",
"@push.rocks/tapbundle": "^6.0.3",
"@types/node": "^22.15.29"
"@types/node": "^25.5.2"
},
"dependencies": {
"@aws-sdk/client-s3": "^3.1009.0",
"@aws-sdk/client-s3": "^3.1025.0",
"@push.rocks/smartmime": "^2.0.4",
"@push.rocks/smartpath": "^6.0.0",
"@push.rocks/smartpromise": "^4.2.3",
@@ -28,8 +27,8 @@
"@push.rocks/smartstream": "^3.4.0",
"@push.rocks/smartstring": "^4.1.0",
"@push.rocks/smartunique": "^3.0.9",
"@tsclass/tsclass": "^9.4.0",
"minimatch": "^10.2.4"
"@tsclass/tsclass": "^9.5.0",
"minimatch": "^10.2.5"
},
"private": false,
"files": [
@@ -41,7 +40,7 @@
"dist_ts_web/**/*",
"assets/**/*",
"cli.js",
"npmextra.json",
".smartconfig.json",
"readme.md"
],
"browserslist": [

5435
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -4,3 +4,5 @@
* **No *Strict methods**: All removed (fastPutStrict, getBucketByNameStrict, getFileStrict, getSubDirectoryByNameStrict)
* metadata is handled though the MetaData class. Important!
* **BucketWatcher** - Polling-based S3 change watcher (`bucket.createWatcher()`). Detects add/modify/delete via ETag/Size/LastModified comparison. Supports RxJS Observable pattern (`changeSubject`) and EventEmitter pattern (`on('change')`). Options: `prefix`, `pollIntervalMs`, `bufferTimeMs`, `includeInitial`, `pageSize`.
* **@git.zone/tsbuild pin**: tsbuild is pinned to `~4.3.0` because tsbuild 4.4.0 brings TypeScript 6.0.2 which has a regression where `@types/node` is not auto-discovered when files are passed programmatically via `createProgram` (which tsbuild does internally). This causes "Cannot find name 'Buffer'", "Cannot find name 'node:path'", etc. errors throughout the codebase. Workarounds would require either modifying tsconfig to add `"types": ["node"]` or staying on tsbuild 4.3.x. We chose to pin tsbuild.
* **Test assertions**: Use `@git.zone/tstest/tapbundle` for `tap` and `expect`. Note that smartexpect's `toEqual` does NOT support `expect.any()` matchers (only `toMatchObject` does, and only at the top level). For testing nested objects with type matchers, use `toHaveProperty` + `toBeTypeofNumber/String/Boolean` separately.

View File

@@ -917,7 +917,7 @@ try {
## License and Legal Information
This repository contains open-source code licensed under the MIT License. A copy of the license can be found in the [LICENSE](./LICENSE) file.
This repository contains open-source code licensed under the MIT License. A copy of the license can be found in the [license](./license) file.
**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.

View File

@@ -1,5 +1,4 @@
import { expect, tap } from '@git.zone/tstest/tapbundle';
import { jestExpect } from '@push.rocks/tapbundle/node';
import { Qenv } from '@push.rocks/qenv';
import * as smartbucket from '../ts/index.js';
@@ -68,12 +67,10 @@ tap.test('should put a file into the trash', async () => {
expect(trashedMetaFile).toBeDefined();
expect(trashedMetaFile).toBeInstanceOf(smartbucket.File);
jestExpect(await trashedMetaFile!.getJsonData()).toEqual({
custom_recycle: {
deletedAt: jestExpect.any(Number),
originalPath: "trashtest/trashme.txt",
},
});
const metaJsonData = await trashedMetaFile!.getJsonData() as any;
expect(metaJsonData).toHaveProperty('custom_recycle');
expect(metaJsonData.custom_recycle).toHaveProperty('originalPath', 'trashtest/trashme.txt');
expect(metaJsonData.custom_recycle.deletedAt).toBeTypeofNumber();
});
tap.test('should restore a file from trash', async () => {

View File

@@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@push.rocks/smartbucket',
version: '4.5.1',
version: '4.5.2',
description: 'A TypeScript library providing a cloud-agnostic interface for managing object storage with functionalities like bucket management, file and directory operations, and advanced features such as metadata handling and file locking.'
}