phos 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/README.md +68 -42
  2. package/dist/cli.js +351 -171
  3. package/dist/cli.js.map +1 -1
  4. package/dist/generators/backends/elysia.d.ts +1 -1
  5. package/dist/generators/backends/elysia.d.ts.map +1 -1
  6. package/dist/generators/backends/elysia.js +22 -127
  7. package/dist/generators/backends/elysia.js.map +1 -1
  8. package/dist/generators/backends/fastapi.d.ts +1 -1
  9. package/dist/generators/backends/fastapi.d.ts.map +1 -1
  10. package/dist/generators/backends/fastapi.js +40 -148
  11. package/dist/generators/backends/fastapi.js.map +1 -1
  12. package/dist/generators/frontends/astro.d.ts +1 -1
  13. package/dist/generators/frontends/astro.d.ts.map +1 -1
  14. package/dist/generators/frontends/astro.js +17 -295
  15. package/dist/generators/frontends/astro.js.map +1 -1
  16. package/dist/generators/frontends/nextjs.d.ts +1 -1
  17. package/dist/generators/frontends/nextjs.d.ts.map +1 -1
  18. package/dist/generators/frontends/nextjs.js +17 -266
  19. package/dist/generators/frontends/nextjs.js.map +1 -1
  20. package/dist/generators/frontends/svelte.d.ts +1 -1
  21. package/dist/generators/frontends/svelte.d.ts.map +1 -1
  22. package/dist/generators/frontends/svelte.js +18 -316
  23. package/dist/generators/frontends/svelte.js.map +1 -1
  24. package/dist/generators/monorepo.d.ts +1 -1
  25. package/dist/generators/monorepo.d.ts.map +1 -1
  26. package/dist/generators/monorepo.js +369 -202
  27. package/dist/generators/monorepo.js.map +1 -1
  28. package/dist/generators/single.d.ts +1 -1
  29. package/dist/generators/single.d.ts.map +1 -1
  30. package/dist/generators/single.js +335 -134
  31. package/dist/generators/single.js.map +1 -1
  32. package/dist/templates/backend/elysia/src/api/user_api.d.ts +1 -0
  33. package/dist/templates/backend/elysia/src/api/user_api.d.ts.map +1 -0
  34. package/dist/templates/backend/elysia/src/api/user_api.js +2 -0
  35. package/dist/templates/backend/elysia/src/api/user_api.js.map +1 -0
  36. package/dist/templates/backend/elysia/src/db.d.ts +3 -0
  37. package/dist/templates/backend/elysia/src/db.d.ts.map +1 -0
  38. package/dist/templates/backend/elysia/src/db.js +13 -0
  39. package/dist/templates/backend/elysia/src/db.js.map +1 -0
  40. package/dist/templates/backend/elysia/src/index.d.ts +4 -0
  41. package/dist/templates/backend/elysia/src/index.d.ts.map +1 -0
  42. package/dist/templates/backend/elysia/src/index.js +55 -0
  43. package/dist/templates/backend/elysia/src/index.js.map +1 -0
  44. package/dist/templates/backend/elysia/src/service/user_service.d.ts +1 -0
  45. package/dist/templates/backend/elysia/src/service/user_service.d.ts.map +1 -0
  46. package/dist/templates/backend/elysia/src/service/user_service.js +2 -0
  47. package/dist/templates/backend/elysia/src/service/user_service.js.map +1 -0
  48. package/dist/templates/backend/elysia/src/sql/user_sql.d.ts +1 -0
  49. package/dist/templates/backend/elysia/src/sql/user_sql.d.ts.map +1 -0
  50. package/dist/templates/backend/elysia/src/sql/user_sql.js +2 -0
  51. package/dist/templates/backend/elysia/src/sql/user_sql.js.map +1 -0
  52. package/dist/templates/backend/elysia/src/types/user_type.d.ts +1 -0
  53. package/dist/templates/backend/elysia/src/types/user_type.d.ts.map +1 -0
  54. package/dist/templates/backend/elysia/src/types/user_type.js +2 -0
  55. package/dist/templates/backend/elysia/src/types/user_type.js.map +1 -0
  56. package/dist/templates/frontend/nextjs/app/layout.d.ts +7 -0
  57. package/dist/templates/frontend/nextjs/app/layout.d.ts.map +1 -0
  58. package/dist/templates/frontend/nextjs/app/layout.js +22 -0
  59. package/dist/templates/frontend/nextjs/app/layout.js.map +1 -0
  60. package/dist/templates/frontend/nextjs/app/page.d.ts +2 -0
  61. package/dist/templates/frontend/nextjs/app/page.d.ts.map +1 -0
  62. package/dist/templates/frontend/nextjs/app/page.js +15 -0
  63. package/dist/templates/frontend/nextjs/app/page.js.map +1 -0
  64. package/dist/templates/frontend/nextjs/next.config.d.ts +4 -0
  65. package/dist/templates/frontend/nextjs/next.config.d.ts.map +1 -0
  66. package/dist/templates/frontend/nextjs/next.config.js +5 -0
  67. package/dist/templates/frontend/nextjs/next.config.js.map +1 -0
  68. package/dist/templates/frontend/svelte/src/lib/index.d.ts +1 -0
  69. package/dist/templates/frontend/svelte/src/lib/index.d.ts.map +1 -0
  70. package/dist/templates/frontend/svelte/src/lib/index.js +3 -0
  71. package/dist/templates/frontend/svelte/src/lib/index.js.map +1 -0
  72. package/dist/templates/frontend/svelte/vite.config.d.ts +3 -0
  73. package/dist/templates/frontend/svelte/vite.config.d.ts.map +1 -0
  74. package/dist/templates/frontend/svelte/vite.config.js +5 -0
  75. package/dist/templates/frontend/svelte/vite.config.js.map +1 -0
  76. package/dist/utils/helpers.d.ts +10 -10
  77. package/dist/utils/helpers.d.ts.map +1 -1
  78. package/dist/utils/helpers.js +77 -34
  79. package/dist/utils/helpers.js.map +1 -1
  80. package/package.json +7 -2
  81. package/src/templates/frontend/astro/.vscode/extensions.json +4 -0
  82. package/src/templates/frontend/astro/.vscode/launch.json +11 -0
  83. package/src/templates/frontend/svelte/.vscode/settings.json +5 -0
  84. package/.eslintignore +0 -3
  85. package/AGENTS.md +0 -172
  86. package/CHANGELOG.md +0 -184
  87. package/bun.lock +0 -125
  88. package/src/cli.ts +0 -500
  89. package/src/generators/backends/elysia.ts +0 -45
  90. package/src/generators/backends/fastapi.ts +0 -71
  91. package/src/generators/frontends/astro.ts +0 -37
  92. package/src/generators/frontends/nextjs.ts +0 -37
  93. package/src/generators/frontends/svelte.ts +0 -38
  94. package/src/generators/monorepo.ts +0 -529
  95. package/src/generators/single.ts +0 -465
  96. package/src/utils/helpers.ts +0 -198
  97. package/tsconfig.json +0 -24
package/AGENTS.md DELETED
@@ -1,172 +0,0 @@
1
- # AGENTS Guidelines for This Repository
2
-
3
- ## Project Name: Phos CLI
4
-
5
- Full-stack interactive project generator CLI that scaffolds modern web applications with configurable backends and frontends.
6
-
7
- **Version:** 1.0.0 (Production Release)
8
-
9
- ### Core Features:
10
-
11
- 1. **Interactive CLI** - Beautiful prompts using @clack/prompts
12
- 2. **Multiple Backends** - Elysia (Bun), FastAPI (Python)
13
- 3. **Multiple Frontends** - Astro, Svelte, Next.js
14
- 4. **Monorepo Support** - Workspace configuration for scalable projects
15
- 5. **Configurable Tooling** - TypeScript, ESLint, Prettier options
16
- 6. **CSS Frameworks** - Tailwind, SCSS, CSS Modules
17
- 7. **UI Components** - shadcn/ui, Radix UI
18
- 8. **Testing Support** - Vitest, Playwright
19
-
20
- ### Technology Stack:
21
-
22
- - **CLI**: Node.js + TypeScript
23
- - **CLI Framework**: Commander.js
24
- - **Interactive Prompts**: @clack/prompts
25
- - **File Operations**: fs-extra
26
- - **Template Engine**: Handlebars
27
- - **Terminal Colors**: picocolors
28
- - **Backend**: Elysia (Bun), FastAPI (Python)
29
- - **Frontend**: Astro, SvelteKit, Next.js
30
- - **Package Managers**: npm, yarn, pnpm, bun
31
-
32
- ## 1. Development Workflow
33
-
34
- ### CLI Tool (Phos)
35
-
36
- - Use Commander.js for CLI argument parsing
37
- - Use @clack/prompts for beautiful interactive UI
38
- - Use fs-extra for file system operations
39
- - Use Handlebars for template rendering
40
- - Use picocolors for terminal colors
41
-
42
- ## 2. Architecture
43
-
44
- ### Core Components
45
-
46
- ```
47
- src/
48
- ├── cli.ts # Main CLI entry point
49
- ├── generators/
50
- │ ├── monorepo.ts # Monorepo scaffold generator
51
- │ ├── single.ts # Single project generator
52
- │ ├── backends/
53
- │ │ ├── elysia.ts # Elysia (Bun) backend generator
54
- │ │ └── fastapi.ts # FastAPI (Python) backend generator
55
- │ └── frontends/
56
- │ ├── astro.ts # Astro frontend generator
57
- │ ├── svelte.ts # Svelte frontend generator
58
- │ └── nextjs.ts # Next.js frontend generator
59
- ├── templates/ # Project templates
60
- └── utils/
61
- └── helpers.ts # Helper functions
62
- ```
63
-
64
- ### File Naming Conventions
65
-
66
- | Layer | Pattern | Example |
67
- | ------------ | ---------------- | ----------------------- |
68
- | CLI Commands | `*.ts` | `cli.ts`, `monorepo.ts` |
69
- | Generators | `{framework}.ts` | `elysia.ts`, `astro.ts` |
70
- | Utils | `*.ts` | `helpers.ts` |
71
-
72
- **Rules:**
73
-
74
- - Use **PascalCase** for generator files
75
- - Use **camelCase** for utility functions
76
- - Export generators as named exports
77
-
78
- ## 3. Keep Dependencies in Sync
79
-
80
- When adding/updating packages:
81
-
82
- ```bash
83
- bun install <package>
84
- # OR
85
- npm install <package>
86
- ```
87
-
88
- ## 4. Coding Conventions
89
-
90
- ### TypeScript
91
-
92
- - Use modern TypeScript with strict mode enabled
93
- - Import using `@/` alias for internal modules
94
- - Use ES modules with `.js` extensions
95
-
96
- ### Project Templates
97
-
98
- - Use Handlebars for dynamic content
99
- - Include TypeScript/ESLint/Prettier options as needed
100
- - Generate complete project structures
101
-
102
- ## 5. Key Technologies
103
-
104
- ### CLI Framework
105
-
106
- - **Commander.js** - Command-line interface framework
107
- - **@clack/prompts** - Interactive prompts
108
- - **fs-extra** - Enhanced file system operations
109
- - **Handlebars** - Template engine
110
- - **picocolors** - Terminal colors
111
-
112
- ### Supported Backends
113
-
114
- - **Elysia** - Fast and elegant Bun web framework
115
- - **FastAPI** - Modern Python web framework
116
-
117
- ### Supported Frontends
118
-
119
- - **Astro** - Modern static site generator
120
- - **SvelteKit** - Full-stack Svelte framework
121
- - **Next.js** - React framework with server components
122
-
123
- ## 6. Configuration Options
124
-
125
- ### Backend Options
126
-
127
- - **TypeScript** - Enable/disable TypeScript
128
- - **ESLint** - Add ESLint configuration
129
- - **Prettier** - Add Prettier configuration
130
-
131
- ### Frontend Options
132
-
133
- - **TypeScript** - Enable/disable TypeScript
134
- - **ESLint** - Add ESLint configuration
135
- - **Prettier** - Add Prettier configuration
136
- - **CSS Framework** - Tailwind, SCSS, CSS Modules
137
- - **UI Components** - shadcn/ui, Radix UI
138
- - **Testing** - Vitest, Playwright, or both
139
-
140
- ## 7. Available Commands
141
-
142
- | Command | Purpose |
143
- | ------------------------- | ------------------------------ |
144
- | `bun run dev create` | Run CLI in development mode |
145
- | `bun run build` | Build TypeScript to JavaScript |
146
- | `bun run start` | Run built CLI |
147
- | `node dist/cli.js create` | Run CLI directly |
148
- | `bun link` | Link CLI globally |
149
- | `phos create` | Run CLI (after linking) |
150
-
151
- ## 8. Versioning
152
-
153
- Phos CLI follows semantic versioning:
154
-
155
- - **x.y.z (Patch/Bugfix)**: `0.0.x`, `1.0.x`, `2.0.x`
156
- - Bug fixes
157
- - Documentation updates
158
- - Small improvements
159
-
160
- - **x.y.0 (Minor/Feature)**: `0.x.0`, `1.x.0`, `2.x.0`
161
- - New features
162
- - Breaking changes (when < 1.0.0)
163
- - Significant updates
164
-
165
- - **x.0.0 (Major/Milestone)**: `1.0.0`, `2.0.0`, `3.0.0`
166
- - Major architectural changes
167
- - Complete rewrites
168
- - Production-ready releases
169
-
170
- **Current Version: 1.0.0** - Production Release
171
-
172
- See [CHANGELOG.md](CHANGELOG.md) for detailed version history.
package/CHANGELOG.md DELETED
@@ -1,184 +0,0 @@
1
- # Changelog
2
-
3
- All notable changes to Phos CLI will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
6
-
7
- ## [1.0.0] - 2026-02-09
8
-
9
- ### Added
10
-
11
- - **Production Release**: Phos CLI is now production-ready with full feature support
12
- - **Interactive CLI**: Beautiful command-line interface powered by @clack/prompts
13
- - **Project Types**: Support for both Monorepo and Single repository structures
14
- - **Backend Frameworks**:
15
- - Elysia - Fast and elegant Bun web framework with TypeScript support
16
- - FastAPI - Modern Python web framework with type hints
17
- - **Frontend Frameworks**:
18
- - Astro - Modern static site generator
19
- - SvelteKit - Full-stack Svelte framework
20
- - Next.js - React framework with server components and App Router
21
- - **Monorepo Features**:
22
- - Organized workspace structure with `{ProjectName}_Backend` and `{ProjectName}_Frontend` folders
23
- - `Docs/` folder with `Feature` and `DatabaseSetup` subfolders
24
- - Root-level documentation: `AGENTS.md`, `LICENSE`, `env.example`
25
- - Independent project configurations without workspace dependencies
26
- - **Single Project Mode**: Generate standalone backend or frontend projects
27
- - **Package Manager Support**:
28
- - Node.js: npm, yarn, pnpm, bun
29
- - Python: venv (virtual environment), pip (system)
30
- - **Configurable Tooling**:
31
- - TypeScript support for backend (Elysia only) and frontend frameworks
32
- - ESLint configuration with custom rules
33
- - Prettier code formatting
34
- - **CSS Framework Options**: Tailwind CSS, SCSS, CSS Modules, or no framework
35
- - **UI Component Libraries**: shadcn/ui, Radix UI, or no components
36
- - **Testing Frameworks**: Vitest, Playwright, or both for unit and E2E testing
37
- - **Git Integration**: Optional Git repository initialization
38
- - **Dependency Installation**: Optional automatic dependency installation
39
- - **Template System**: Handlebars-based template engine with dynamic configuration
40
- - **Binary File Support**: Proper handling of images, fonts, and other binary files
41
- - **Helper Functions**:
42
- - `eq` helper for equality checks in templates
43
- - `or` helper for OR conditions in templates
44
- - **Configuration Summary**: Interactive summary display before project generation
45
- - **Project Validation**: Directory existence checks and project name validation
46
- - **Complete Documentation**: Auto-generated README.md, AGENTS.md, and schema docs
47
-
48
- ### Fixed
49
-
50
- - **Binary File Handling**: Fixed `copyTemplate` function to properly handle binary files
51
- - **Template Processing**: Binary files (PNG, JPG, fonts, archives) are now copied directly without Handlebars processing
52
- - **Error Handling**: Improved error messages and cancellation handling throughout the CLI
53
-
54
- ### Changed
55
-
56
- - **Monorepo Structure**: Updated from `apps/backend` and `apps/frontend` to capitalized `{ProjectName}_Backend` and `{ProjectName}_Frontend`
57
- - **Folder Naming**: Backend and frontend folder names now have capitalized first letters
58
- - **Default Configuration**: TypeScript, ESLint, and Prettier now default to `true`
59
- - **User Experience**: Users must manually deselect options they don't want instead of selecting them
60
-
61
- ### Dependencies
62
-
63
- - @clack/prompts: ^1.0.0
64
- - commander: ^14.0.2
65
- - fs-extra: ^11.3.3
66
- - handlebars: ^4.7.8
67
- - picocolors: ^1.1.1
68
- - typescript: ^5.7.3
69
- - tsx: ^4.19.2 (dev)
70
- - @types/fs-extra: ^11.0.4 (dev)
71
- - @types/node: ^20.11.0 (dev)
72
-
73
- ### Project Structure
74
-
75
- ```
76
- phos/
77
- ├── src/
78
- │ ├── cli.ts # Main CLI entry point
79
- │ ├── generators/
80
- │ │ ├── monorepo.ts # Monorepo generator
81
- │ │ ├── single.ts # Single project generator
82
- │ │ ├── backends/
83
- │ │ │ ├── elysia.ts # Elysia backend generator
84
- │ │ │ └── fastapi.ts # FastAPI backend generator
85
- │ │ └── frontends/
86
- │ │ ├── astro.ts # Astro frontend generator
87
- │ │ ├── svelte.ts # Svelte frontend generator
88
- │ │ └── nextjs.ts # Next.js frontend generator
89
- │ ├── templates/ # Project templates
90
- │ │ ├── backend/
91
- │ │ │ ├── elysia/ # Elysia template files
92
- │ │ │ └── fastapi/ # FastAPI template files
93
- │ │ └── frontend/
94
- │ │ ├── astro/ # Astro template files
95
- │ │ ├── nextjs/ # Next.js template files
96
- │ │ └── svelte/ # Svelte template files
97
- │ └── utils/
98
- │ └── helpers.ts # Helper functions
99
- ├── package.json # Package configuration
100
- ├── tsconfig.json # TypeScript configuration
101
- ├── .gitignore # Git ignore rules
102
- ├── AGENTS.md # Project guidelines
103
- ├── CHANGELOG.md # Version history
104
- └── README.md # Documentation
105
- ```
106
-
107
- ## [0.3.0] - 2026-02-09
108
-
109
- ### Changed
110
-
111
- - **Monorepo Structure Update**:
112
- - Changed from `apps/backend` and `apps/frontend` to `{ProjectName}_Backend` and `{ProjectName}_Frontend`
113
- - Added `Docs` folder with `Feature` and `DatabaseSetup` subfolders
114
- - Added root level files: `AGENTS.md`, `LICENSE`, `env.example`
115
- - Removed root `package.json` and workspace config files
116
- - Each project now manages its own configurations independently
117
- - **Folder Naming**:
118
- - Backend and frontend folder names now have capitalized first letter
119
- - Example: `Colorful_Backend` and `Colorful_Frontend` instead of `colorful_Backend`
120
- - **Default Configuration**:
121
- - TypeScript, ESLint, and Prettier now default to `true`
122
- - Users must manually deselect options they don't want
123
-
124
- ### Fixed
125
-
126
- - **Binary File Handling**:
127
- - Fixed `copyTemplate` function to properly handle binary files
128
- - Binary files (PNG, JPG, fonts, archives, etc.) are now copied directly
129
- - No longer attempts to process binary files as Handlebars templates
130
- - Fixes "IHDR" error when copying image files
131
-
132
- ## [0.2.0] - 2025-02-09
133
-
134
- ### Changed
135
-
136
- - **Template System Refactor**:
137
- - All generators now use template files instead of dynamic generation
138
- - Handlebars templating with conditional logic
139
- - Dynamic configuration support (projectName, projectType, tooling options)
140
- - Clean separation between generators and templates
141
- - **Template Structure**:
142
- - Backend templates: Elysia, FastAPI with full project structures
143
- - Frontend templates: Astro, Svelte, Next.js with proper configs
144
- - All templates use Handlebars variables for customization
145
- - **Helper Functions**:
146
- - `eq` helper for equality checks in templates
147
- - `or` helper for OR conditions in templates
148
- - `copyTemplate` function for template copying and rendering
149
- - **ESLint Configuration**:
150
- - Added `.eslintignore` to exclude template folder
151
- - Prevents false positives from Handlebars syntax in templates
152
-
153
- ## [0.1.0] - 2025-02-09
154
-
155
- ### Added
156
-
157
- - **Initial Release**: Complete project generator CLI
158
- - Interactive prompts using @clack/prompts
159
- - Multiple backend frameworks (Elysia, FastAPI)
160
- - Multiple frontend frameworks (Astro, Svelte, Next.js)
161
- - Monorepo and single project support
162
- - Configurable tooling (TypeScript, ESLint, Prettier)
163
- - CSS framework options (Tailwind, SCSS, CSS Modules)
164
- - UI component library support (shadcn/ui, Radix UI)
165
- - Testing framework options (Vitest, Playwright)
166
- - Multiple package manager support (npm, yarn, pnpm, bun)
167
- - **Project Structure**:
168
- - Well-organized codebase with generators, templates, and utilities
169
- - TypeScript path aliases configured (@/\*)
170
- - Comprehensive documentation (AGENTS.md, CHANGELOG.md, README.md)
171
- - **Configuration**:
172
- - TypeScript strict mode enabled
173
- - Module resolution set to bundler
174
- - Path aliases for clean imports
175
- - **Dependencies Updated**:
176
- - @clack/prompts: ^0.7.0 → ^1.0.0
177
- - commander: ^12.0.0 → ^14.0.3
178
- - fs-extra: ^11.2.0 → ^11.3.3
179
- - handlebars: ^4.7.8 (unchanged)
180
- - picocolors: ^1.0.0 → ^1.1.1
181
- - tsx: ^4.7.0 → ^4.19.2
182
- - typescript: ^5.3.0 → ^5.7.3
183
- - @types/fs-extra: ^11.0.4 (unchanged)
184
- - @types/node: ^20.11.0 (kept for Node 20 compatibility)
package/bun.lock DELETED
@@ -1,125 +0,0 @@
1
- {
2
- "lockfileVersion": 1,
3
- "configVersion": 1,
4
- "workspaces": {
5
- "": {
6
- "name": "phos",
7
- "dependencies": {
8
- "@clack/prompts": "^1.0.0",
9
- "commander": "^14.0.2",
10
- "fs-extra": "^11.3.3",
11
- "handlebars": "^4.7.8",
12
- "picocolors": "^1.1.1",
13
- },
14
- "devDependencies": {
15
- "@types/fs-extra": "^11.0.4",
16
- "@types/node": "^20.11.0",
17
- "tsx": "^4.19.2",
18
- "typescript": "^5.7.3",
19
- },
20
- },
21
- },
22
- "packages": {
23
- "@clack/core": ["@clack/core@1.0.0", "", { "dependencies": { "picocolors": "^1.0.0", "sisteransi": "^1.0.5" } }, "sha512-Orf9Ltr5NeiEuVJS8Rk2XTw3IxNC2Bic3ash7GgYeA8LJ/zmSNpSQ/m5UAhe03lA6KFgklzZ5KTHs4OAMA/SAQ=="],
24
-
25
- "@clack/prompts": ["@clack/prompts@1.0.0", "", { "dependencies": { "@clack/core": "1.0.0", "picocolors": "^1.0.0", "sisteransi": "^1.0.5" } }, "sha512-rWPXg9UaCFqErJVQ+MecOaWsozjaxol4yjnmYcGNipAWzdaWa2x+VJmKfGq7L0APwBohQOYdHC+9RO4qRXej+A=="],
26
-
27
- "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.3", "", { "os": "aix", "cpu": "ppc64" }, "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg=="],
28
-
29
- "@esbuild/android-arm": ["@esbuild/android-arm@0.27.3", "", { "os": "android", "cpu": "arm" }, "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA=="],
30
-
31
- "@esbuild/android-arm64": ["@esbuild/android-arm64@0.27.3", "", { "os": "android", "cpu": "arm64" }, "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg=="],
32
-
33
- "@esbuild/android-x64": ["@esbuild/android-x64@0.27.3", "", { "os": "android", "cpu": "x64" }, "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ=="],
34
-
35
- "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.27.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg=="],
36
-
37
- "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.27.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg=="],
38
-
39
- "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.27.3", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w=="],
40
-
41
- "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.27.3", "", { "os": "freebsd", "cpu": "x64" }, "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA=="],
42
-
43
- "@esbuild/linux-arm": ["@esbuild/linux-arm@0.27.3", "", { "os": "linux", "cpu": "arm" }, "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw=="],
44
-
45
- "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.27.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg=="],
46
-
47
- "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.27.3", "", { "os": "linux", "cpu": "ia32" }, "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg=="],
48
-
49
- "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.27.3", "", { "os": "linux", "cpu": "none" }, "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA=="],
50
-
51
- "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.27.3", "", { "os": "linux", "cpu": "none" }, "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw=="],
52
-
53
- "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.27.3", "", { "os": "linux", "cpu": "ppc64" }, "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA=="],
54
-
55
- "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.27.3", "", { "os": "linux", "cpu": "none" }, "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ=="],
56
-
57
- "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.27.3", "", { "os": "linux", "cpu": "s390x" }, "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw=="],
58
-
59
- "@esbuild/linux-x64": ["@esbuild/linux-x64@0.27.3", "", { "os": "linux", "cpu": "x64" }, "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA=="],
60
-
61
- "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.27.3", "", { "os": "none", "cpu": "arm64" }, "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA=="],
62
-
63
- "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.27.3", "", { "os": "none", "cpu": "x64" }, "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA=="],
64
-
65
- "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.27.3", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw=="],
66
-
67
- "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.27.3", "", { "os": "openbsd", "cpu": "x64" }, "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ=="],
68
-
69
- "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.27.3", "", { "os": "none", "cpu": "arm64" }, "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g=="],
70
-
71
- "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.27.3", "", { "os": "sunos", "cpu": "x64" }, "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA=="],
72
-
73
- "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.27.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA=="],
74
-
75
- "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.27.3", "", { "os": "win32", "cpu": "ia32" }, "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q=="],
76
-
77
- "@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.3", "", { "os": "win32", "cpu": "x64" }, "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA=="],
78
-
79
- "@types/fs-extra": ["@types/fs-extra@11.0.4", "", { "dependencies": { "@types/jsonfile": "*", "@types/node": "*" } }, "sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ=="],
80
-
81
- "@types/jsonfile": ["@types/jsonfile@6.1.4", "", { "dependencies": { "@types/node": "*" } }, "sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ=="],
82
-
83
- "@types/node": ["@types/node@20.19.33", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-Rs1bVAIdBs5gbTIKza/tgpMuG1k3U/UMJLWecIMxNdJFDMzcM5LOiLVRYh3PilWEYDIeUDv7bpiHPLPsbydGcw=="],
84
-
85
- "commander": ["commander@14.0.3", "", {}, "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw=="],
86
-
87
- "esbuild": ["esbuild@0.27.3", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.3", "@esbuild/android-arm": "0.27.3", "@esbuild/android-arm64": "0.27.3", "@esbuild/android-x64": "0.27.3", "@esbuild/darwin-arm64": "0.27.3", "@esbuild/darwin-x64": "0.27.3", "@esbuild/freebsd-arm64": "0.27.3", "@esbuild/freebsd-x64": "0.27.3", "@esbuild/linux-arm": "0.27.3", "@esbuild/linux-arm64": "0.27.3", "@esbuild/linux-ia32": "0.27.3", "@esbuild/linux-loong64": "0.27.3", "@esbuild/linux-mips64el": "0.27.3", "@esbuild/linux-ppc64": "0.27.3", "@esbuild/linux-riscv64": "0.27.3", "@esbuild/linux-s390x": "0.27.3", "@esbuild/linux-x64": "0.27.3", "@esbuild/netbsd-arm64": "0.27.3", "@esbuild/netbsd-x64": "0.27.3", "@esbuild/openbsd-arm64": "0.27.3", "@esbuild/openbsd-x64": "0.27.3", "@esbuild/openharmony-arm64": "0.27.3", "@esbuild/sunos-x64": "0.27.3", "@esbuild/win32-arm64": "0.27.3", "@esbuild/win32-ia32": "0.27.3", "@esbuild/win32-x64": "0.27.3" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg=="],
88
-
89
- "fs-extra": ["fs-extra@11.3.3", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg=="],
90
-
91
- "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="],
92
-
93
- "get-tsconfig": ["get-tsconfig@4.13.6", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw=="],
94
-
95
- "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="],
96
-
97
- "handlebars": ["handlebars@4.7.8", "", { "dependencies": { "minimist": "^1.2.5", "neo-async": "^2.6.2", "source-map": "^0.6.1", "wordwrap": "^1.0.0" }, "optionalDependencies": { "uglify-js": "^3.1.4" }, "bin": { "handlebars": "bin/handlebars" } }, "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ=="],
98
-
99
- "jsonfile": ["jsonfile@6.2.0", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg=="],
100
-
101
- "minimist": ["minimist@1.2.8", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="],
102
-
103
- "neo-async": ["neo-async@2.6.2", "", {}, "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="],
104
-
105
- "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="],
106
-
107
- "resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="],
108
-
109
- "sisteransi": ["sisteransi@1.0.5", "", {}, "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="],
110
-
111
- "source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="],
112
-
113
- "tsx": ["tsx@4.21.0", "", { "dependencies": { "esbuild": "~0.27.0", "get-tsconfig": "^4.7.5" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "bin": { "tsx": "dist/cli.mjs" } }, "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw=="],
114
-
115
- "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="],
116
-
117
- "uglify-js": ["uglify-js@3.19.3", "", { "bin": { "uglifyjs": "bin/uglifyjs" } }, "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ=="],
118
-
119
- "undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="],
120
-
121
- "universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="],
122
-
123
- "wordwrap": ["wordwrap@1.0.0", "", {}, "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q=="],
124
- }
125
- }