feat(core): Add permission-controlled Deno execution, configurable script server port, improved downloader, dependency bumps and test updates
This commit is contained in:
63
.serena/memories/codebase_structure.md
Normal file
63
.serena/memories/codebase_structure.md
Normal file
@@ -0,0 +1,63 @@
|
||||
# Codebase Structure
|
||||
|
||||
## Directory Layout
|
||||
```
|
||||
smartdeno/
|
||||
├── ts/ # Source code
|
||||
│ ├── index.ts # Main entry point (exports SmartDeno)
|
||||
│ ├── plugins.ts # Dependency imports
|
||||
│ ├── paths.ts # Path configurations
|
||||
│ ├── classes.smartdeno.ts # Main SmartDeno class
|
||||
│ ├── classes.denodownloader.ts # Deno download logic
|
||||
│ ├── classes.scriptserver.ts # Script execution server
|
||||
│ ├── classes.denoexecution.ts # Script execution wrapper
|
||||
│ └── 00_commitinfo_data.ts # Commit metadata
|
||||
├── test/ # Test files
|
||||
│ └── test.ts # Main test suite
|
||||
├── dist_ts/ # Compiled output (gitignored)
|
||||
├── .nogit/ # Temporary/debug files (gitignored)
|
||||
├── assets/ # Static assets
|
||||
├── .gitea/ # Gitea-specific configs
|
||||
├── .vscode/ # VS Code settings
|
||||
├── .claude/ # Claude Code settings
|
||||
├── .serena/ # Serena agent settings
|
||||
├── package.json # Package manifest
|
||||
├── tsconfig.json # TypeScript config
|
||||
├── npmextra.json # Extended npm metadata
|
||||
├── readme.md # Main documentation
|
||||
└── readme.hints.md # Development hints (currently empty)
|
||||
```
|
||||
|
||||
## Core Classes
|
||||
|
||||
### SmartDeno (ts/classes.smartdeno.ts)
|
||||
Main orchestrator class with methods:
|
||||
- `start(options)` - Initialize and download Deno if needed
|
||||
- `stop()` - Cleanup resources
|
||||
- `executeScript(scriptArg)` - Execute a Deno script
|
||||
|
||||
### DenoDownloader (ts/classes.denodownloader.ts)
|
||||
Handles Deno binary download:
|
||||
- Fetches latest Deno release from GitHub
|
||||
- Platform detection (Linux, macOS, Windows)
|
||||
- Architecture detection (x64, arm64)
|
||||
- Downloads and extracts Deno binary
|
||||
|
||||
### ScriptServer (ts/classes.scriptserver.ts)
|
||||
Internal server for script execution
|
||||
|
||||
### DenoExecution (ts/classes.denoexecution.ts)
|
||||
Wraps individual script execution
|
||||
|
||||
## Entry Point Flow
|
||||
1. User imports from `@push.rocks/smartdeno`
|
||||
2. `index.ts` exports `SmartDeno` class
|
||||
3. User creates instance: `new SmartDeno()`
|
||||
4. User calls `await smartDeno.start()` to initialize
|
||||
5. User calls `await smartDeno.executeScript(code)` to run Deno code
|
||||
|
||||
## Dependencies Pattern
|
||||
All external dependencies are:
|
||||
1. Imported in `plugins.ts`
|
||||
2. Exported as namespace
|
||||
3. Used with full path (e.g., `plugins.smartfile.fs.readFile()`)
|
||||
Reference in New Issue
Block a user