From 22a9aa9f3ea5da9b18dfbdbf941fa2ba71f3fe3b Mon Sep 17 00:00:00 2001 From: Juergen Kunz Date: Tue, 24 Mar 2026 14:56:23 +0000 Subject: [PATCH] rename package from @push.rocks/npmextra to @push.rocks/smartconfig - Rename all source files from npmextra.* to simpler names (classes.appdata.ts, etc.) - Rename Npmextra class to Smartconfig - Config file changed from npmextra.json to smartconfig.json - KV store path changed from ~/.npmextra/kv to ~/.smartconfig/kv - Update all imports, tests, and metadata --- .../document_symbols_cache_v23-06-25.pkl | Bin 29173 -> 0 bytes .serena/memories/coding_standards.md | 32 ------- .serena/memories/project_overview.md | 30 ------- .serena/memories/suggested_commands.md | 31 ------- .serena/project.yml | 68 -------------- .vscode/settings.json | 2 +- package.json | 12 +-- readme.md | 50 +++++------ npmextra.json => smartconfig.json | 6 +- test/{npmextra.json => smartconfig.json} | 0 test/test.appdata.ts | 6 +- test/test.boolean-false.ts | 18 ++-- test/test.kvstore.ts | 8 +- test/test.redaction.ts | 22 ++--- test/test.ts | 18 ++-- ts/00_commitinfo_data.ts | 4 +- ....classes.appdata.ts => classes.appdata.ts} | 84 +++++++++--------- ...valuestore.ts => classes.keyvaluestore.ts} | 4 +- ts/classes.smartconfig.ts | 79 ++++++++++++++++ ts/index.ts | 6 +- ts/npmextra.classes.npmextra.ts | 79 ---------------- ts/{npmextra.paths.ts => paths.ts} | 6 +- ts/{npmextra.plugins.ts => plugins.ts} | 0 23 files changed, 202 insertions(+), 363 deletions(-) delete mode 100644 .serena/cache/typescript/document_symbols_cache_v23-06-25.pkl delete mode 100644 .serena/memories/coding_standards.md delete mode 100644 .serena/memories/project_overview.md delete mode 100644 .serena/memories/suggested_commands.md delete mode 100644 .serena/project.yml rename npmextra.json => smartconfig.json (90%) rename test/{npmextra.json => smartconfig.json} (100%) rename ts/{npmextra.classes.appdata.ts => classes.appdata.ts} (97%) rename ts/{npmextra.classes.keyvaluestore.ts => classes.keyvaluestore.ts} (98%) create mode 100644 ts/classes.smartconfig.ts delete mode 100644 ts/npmextra.classes.npmextra.ts rename ts/{npmextra.paths.ts => paths.ts} (64%) rename ts/{npmextra.plugins.ts => plugins.ts} (100%) diff --git a/.serena/cache/typescript/document_symbols_cache_v23-06-25.pkl b/.serena/cache/typescript/document_symbols_cache_v23-06-25.pkl deleted file mode 100644 index 34904b9b3ed1b6ded51bdb5c9a6f2f6d43661114..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29173 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 CVY>AI diff --git a/.serena/memories/coding_standards.md b/.serena/memories/coding_standards.md deleted file mode 100644 index 76aab15..0000000 --- a/.serena/memories/coding_standards.md +++ /dev/null @@ -1,32 +0,0 @@ -# Coding Standards for npmextra - -## Naming Conventions -- **Interfaces**: Prefix with `I` (e.g., `IAppDataOptions`, `ITestOptions`) -- **Types**: Prefix with `T` (e.g., `TKeyValueStore`) -- **Filenames**: Always lowercase (e.g., `npmextra.classes.appdata.ts`) -- **Module structure**: `npmextra...ts` pattern - -## Import/Export Patterns -- Use ES module syntax (`import`/`export`) -- Import all dependencies through `npmextra.plugins.ts` -- Reference with full path: `plugins.moduleName.className()` -- Export all public APIs through `index.ts` - -## TypeScript Patterns -- Use generic types for flexibility (``) -- Leverage TypeScript utility types from `@tsclass/tsclass` -- Use async/await for asynchronous operations -- Use Promises with smartpromise utilities - -## Testing Standards -- Import expect from `@git.zone/tstest/tapbundle` -- Test files end with `export default tap.start()` -- Use descriptive test names with `tap.test()` -- Test file naming: `test.*.ts` pattern - -## Code Quality -- Make focused, goal-oriented changes -- Preserve necessary complexity -- Remove redundancy carefully -- Keep async patterns where they add value -- No comments unless explicitly requested \ No newline at end of file diff --git a/.serena/memories/project_overview.md b/.serena/memories/project_overview.md deleted file mode 100644 index 6907d8a..0000000 --- a/.serena/memories/project_overview.md +++ /dev/null @@ -1,30 +0,0 @@ -# npmextra Project Overview - -## Purpose -npmextra is a utility library that enhances npm with additional configuration and tool management capabilities. It provides a key-value store for project setups and centralized configuration management through npmextra.json files. - -## Tech Stack -- TypeScript (ES modules) -- Node.js -- Dependencies: - - @push.rocks/qenv - Environment variable management - - @push.rocks/smartfile - File system operations - - @push.rocks/smartjson - JSON handling - - @push.rocks/smartlog - Logging - - @push.rocks/smartpath - Path utilities - - @push.rocks/smartpromise - Promise utilities - - @push.rocks/smartrx - Reactive programming - - @push.rocks/taskbuffer - Task management - - @tsclass/tsclass - TypeScript utilities - -## Main Components -1. **Npmextra** - Main class for managing npmextra.json configurations -2. **KeyValueStore** - Persistent key-value storage system -3. **AppData** - Advanced data management with environment variable mapping - -## Project Structure -- `ts/` - TypeScript source files -- `test/` - Test files using @git.zone/tstest -- `dist_ts/` - Compiled JavaScript output -- `npmextra.json` - Project configuration -- `package.json` - Node.js package configuration \ No newline at end of file diff --git a/.serena/memories/suggested_commands.md b/.serena/memories/suggested_commands.md deleted file mode 100644 index cb02828..0000000 --- a/.serena/memories/suggested_commands.md +++ /dev/null @@ -1,31 +0,0 @@ -# Suggested Commands for npmextra Development - -## Build Commands -- `pnpm run build` - Build the TypeScript project (uses tsbuild) -- `pnpm test` - Run tests using tstest - -## Development Commands -- `pnpm install` - Install dependencies -- `pnpm install --save-dev ` - Add development dependencies -- `tsx