create-bunspace 0.1.0

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 (182) hide show
  1. package/README.md +181 -0
  2. package/dist/bin.js +5755 -0
  3. package/dist/templates/monorepo/CLAUDE.md +164 -0
  4. package/dist/templates/monorepo/LICENSE +21 -0
  5. package/dist/templates/monorepo/MUST-FOLLOW-GUIDELINES.md +269 -0
  6. package/dist/templates/monorepo/README.md +74 -0
  7. package/dist/templates/monorepo/SYNC_VERIFICATION.md +1 -0
  8. package/dist/templates/monorepo/apps/example/package.json +19 -0
  9. package/dist/templates/monorepo/apps/example/src/index.ts +23 -0
  10. package/dist/templates/monorepo/apps/example/src/types/index.ts +7 -0
  11. package/dist/templates/monorepo/apps/example/src/utils/index.ts +7 -0
  12. package/dist/templates/monorepo/core/packages/main/package.json +41 -0
  13. package/dist/templates/monorepo/core/packages/main/rolldown.config.ts +24 -0
  14. package/dist/templates/monorepo/core/packages/main/src/index.ts +80 -0
  15. package/dist/templates/monorepo/core/packages/main/src/types/constants.ts +15 -0
  16. package/dist/templates/monorepo/core/packages/main/src/types/index.ts +8 -0
  17. package/dist/templates/monorepo/core/packages/main/src/types/main.types.ts +25 -0
  18. package/dist/templates/monorepo/core/packages/main/src/utils/index.ts +5 -0
  19. package/dist/templates/monorepo/core/packages/utils/package.json +43 -0
  20. package/dist/templates/monorepo/core/packages/utils/rolldown.config.ts +34 -0
  21. package/dist/templates/monorepo/core/packages/utils/src/index.ts +2 -0
  22. package/dist/templates/monorepo/core/packages/utils/src/logger.ts +68 -0
  23. package/dist/templates/monorepo/core/packages/utils/src/result.ts +146 -0
  24. package/dist/templates/monorepo/core/packages/utils/src/types/constants.ts +15 -0
  25. package/dist/templates/monorepo/core/packages/utils/src/types/index.ts +8 -0
  26. package/dist/templates/monorepo/core/packages/utils/src/types/utils.types.ts +32 -0
  27. package/dist/templates/monorepo/core/packages/utils/src/utils/index.ts +5 -0
  28. package/dist/templates/monorepo/oxlint.json +14 -0
  29. package/dist/templates/monorepo/package.json +39 -0
  30. package/dist/templates/monorepo/tsconfig.json +35 -0
  31. package/dist/templates/telegram-bot/.oxlintrc.json +33 -0
  32. package/dist/templates/telegram-bot/.prettierignore +5 -0
  33. package/dist/templates/telegram-bot/.prettierrc +26 -0
  34. package/dist/templates/telegram-bot/CLAUDE.deploy.md +356 -0
  35. package/dist/templates/telegram-bot/CLAUDE.dev.md +266 -0
  36. package/dist/templates/telegram-bot/CLAUDE.md +280 -0
  37. package/dist/templates/telegram-bot/Dockerfile +46 -0
  38. package/dist/templates/telegram-bot/README.md +245 -0
  39. package/dist/templates/telegram-bot/apps/.gitkeep +0 -0
  40. package/dist/templates/telegram-bot/bun.lock +208 -0
  41. package/dist/templates/telegram-bot/core/.env.example +71 -0
  42. package/dist/templates/telegram-bot/core/README.md +1067 -0
  43. package/dist/templates/telegram-bot/core/package.json +15 -0
  44. package/dist/templates/telegram-bot/core/src/config/env.ts +131 -0
  45. package/dist/templates/telegram-bot/core/src/config/index.ts +97 -0
  46. package/dist/templates/telegram-bot/core/src/config/logging.ts +110 -0
  47. package/dist/templates/telegram-bot/core/src/handlers/control.ts +85 -0
  48. package/dist/templates/telegram-bot/core/src/handlers/health.ts +83 -0
  49. package/dist/templates/telegram-bot/core/src/handlers/logs.ts +126 -0
  50. package/dist/templates/telegram-bot/core/src/index.ts +161 -0
  51. package/dist/templates/telegram-bot/core/src/middleware/auth.ts +41 -0
  52. package/dist/templates/telegram-bot/core/src/middleware/error-handler.ts +41 -0
  53. package/dist/templates/telegram-bot/core/src/middleware/logging.ts +1 -0
  54. package/dist/templates/telegram-bot/core/src/middleware/topics.ts +55 -0
  55. package/dist/templates/telegram-bot/core/src/types/bot.ts +92 -0
  56. package/dist/templates/telegram-bot/core/src/types/constants.ts +50 -0
  57. package/dist/templates/telegram-bot/core/src/types/result.ts +1 -0
  58. package/dist/templates/telegram-bot/core/src/utils/bot-manager.test.ts +111 -0
  59. package/dist/templates/telegram-bot/core/src/utils/bot-manager.ts +201 -0
  60. package/dist/templates/telegram-bot/core/src/utils/commands.ts +63 -0
  61. package/dist/templates/telegram-bot/core/src/utils/formatters.ts +82 -0
  62. package/dist/templates/telegram-bot/core/src/utils/instance-manager.ts +189 -0
  63. package/dist/templates/telegram-bot/core/src/utils/memory.ts +33 -0
  64. package/dist/templates/telegram-bot/core/src/utils/result.ts +26 -0
  65. package/dist/templates/telegram-bot/core/src/utils/telegram.ts +31 -0
  66. package/dist/templates/telegram-bot/core/src/utils/type-guards.ts +71 -0
  67. package/dist/templates/telegram-bot/core/tsconfig.json +9 -0
  68. package/dist/templates/telegram-bot/docker-compose.yml +37 -0
  69. package/dist/templates/telegram-bot/docs/cli-commands.md +377 -0
  70. package/dist/templates/telegram-bot/docs/development.md +363 -0
  71. package/dist/templates/telegram-bot/docs/environment.md +460 -0
  72. package/dist/templates/telegram-bot/docs/examples/middleware-auth.md +335 -0
  73. package/dist/templates/telegram-bot/docs/examples/simple-command.md +207 -0
  74. package/dist/templates/telegram-bot/docs/examples/webhook-setup.md +362 -0
  75. package/dist/templates/telegram-bot/docs/getting-started.md +223 -0
  76. package/dist/templates/telegram-bot/docs/troubleshooting.md +489 -0
  77. package/dist/templates/telegram-bot/package.json +49 -0
  78. package/dist/templates/telegram-bot/packages/utils/package.json +12 -0
  79. package/dist/templates/telegram-bot/packages/utils/src/index.ts +2 -0
  80. package/dist/templates/telegram-bot/packages/utils/src/logger.ts +72 -0
  81. package/dist/templates/telegram-bot/packages/utils/src/result.ts +80 -0
  82. package/dist/templates/telegram-bot/tools/README.md +47 -0
  83. package/dist/templates/telegram-bot/tools/commands/doctor.ts +460 -0
  84. package/dist/templates/telegram-bot/tools/commands/index.ts +35 -0
  85. package/dist/templates/telegram-bot/tools/commands/ngrok.ts +207 -0
  86. package/dist/templates/telegram-bot/tools/commands/setup.ts +368 -0
  87. package/dist/templates/telegram-bot/tools/commands/status.ts +140 -0
  88. package/dist/templates/telegram-bot/tools/index.ts +16 -0
  89. package/dist/templates/telegram-bot/tools/package.json +12 -0
  90. package/dist/templates/telegram-bot/tools/utils/index.ts +13 -0
  91. package/dist/templates/telegram-bot/tsconfig.json +22 -0
  92. package/dist/templates/telegram-bot/vitest.config.ts +29 -0
  93. package/package.json +35 -0
  94. package/templates/monorepo/CLAUDE.md +164 -0
  95. package/templates/monorepo/LICENSE +21 -0
  96. package/templates/monorepo/MUST-FOLLOW-GUIDELINES.md +269 -0
  97. package/templates/monorepo/README.md +74 -0
  98. package/templates/monorepo/apps/example/package.json +19 -0
  99. package/templates/monorepo/apps/example/src/index.ts +23 -0
  100. package/templates/monorepo/apps/example/src/types/index.ts +7 -0
  101. package/templates/monorepo/apps/example/src/utils/index.ts +7 -0
  102. package/templates/monorepo/core/packages/main/package.json +41 -0
  103. package/templates/monorepo/core/packages/main/rolldown.config.ts +24 -0
  104. package/templates/monorepo/core/packages/main/src/index.ts +80 -0
  105. package/templates/monorepo/core/packages/main/src/types/constants.ts +15 -0
  106. package/templates/monorepo/core/packages/main/src/types/index.ts +8 -0
  107. package/templates/monorepo/core/packages/main/src/types/main.types.ts +25 -0
  108. package/templates/monorepo/core/packages/main/src/utils/index.ts +5 -0
  109. package/templates/monorepo/core/packages/utils/package.json +43 -0
  110. package/templates/monorepo/core/packages/utils/rolldown.config.ts +34 -0
  111. package/templates/monorepo/core/packages/utils/src/index.ts +2 -0
  112. package/templates/monorepo/core/packages/utils/src/logger.ts +68 -0
  113. package/templates/monorepo/core/packages/utils/src/result.ts +146 -0
  114. package/templates/monorepo/core/packages/utils/src/types/constants.ts +15 -0
  115. package/templates/monorepo/core/packages/utils/src/types/index.ts +8 -0
  116. package/templates/monorepo/core/packages/utils/src/types/utils.types.ts +32 -0
  117. package/templates/monorepo/core/packages/utils/src/utils/index.ts +5 -0
  118. package/templates/monorepo/oxlint.json +14 -0
  119. package/templates/monorepo/package.json +39 -0
  120. package/templates/monorepo/tsconfig.json +35 -0
  121. package/templates/telegram-bot/.oxlintrc.json +33 -0
  122. package/templates/telegram-bot/.prettierignore +5 -0
  123. package/templates/telegram-bot/.prettierrc +26 -0
  124. package/templates/telegram-bot/CLAUDE.deploy.md +356 -0
  125. package/templates/telegram-bot/CLAUDE.dev.md +266 -0
  126. package/templates/telegram-bot/CLAUDE.md +280 -0
  127. package/templates/telegram-bot/Dockerfile +46 -0
  128. package/templates/telegram-bot/README.md +245 -0
  129. package/templates/telegram-bot/apps/.gitkeep +0 -0
  130. package/templates/telegram-bot/bun.lock +208 -0
  131. package/templates/telegram-bot/core/.env.example +71 -0
  132. package/templates/telegram-bot/core/README.md +1067 -0
  133. package/templates/telegram-bot/core/package.json +15 -0
  134. package/templates/telegram-bot/core/src/config/env.ts +131 -0
  135. package/templates/telegram-bot/core/src/config/index.ts +97 -0
  136. package/templates/telegram-bot/core/src/config/logging.ts +110 -0
  137. package/templates/telegram-bot/core/src/handlers/control.ts +85 -0
  138. package/templates/telegram-bot/core/src/handlers/health.ts +83 -0
  139. package/templates/telegram-bot/core/src/handlers/logs.ts +126 -0
  140. package/templates/telegram-bot/core/src/index.ts +161 -0
  141. package/templates/telegram-bot/core/src/middleware/auth.ts +41 -0
  142. package/templates/telegram-bot/core/src/middleware/error-handler.ts +41 -0
  143. package/templates/telegram-bot/core/src/middleware/logging.ts +1 -0
  144. package/templates/telegram-bot/core/src/middleware/topics.ts +55 -0
  145. package/templates/telegram-bot/core/src/types/bot.ts +92 -0
  146. package/templates/telegram-bot/core/src/types/constants.ts +50 -0
  147. package/templates/telegram-bot/core/src/types/result.ts +1 -0
  148. package/templates/telegram-bot/core/src/utils/bot-manager.test.ts +111 -0
  149. package/templates/telegram-bot/core/src/utils/bot-manager.ts +201 -0
  150. package/templates/telegram-bot/core/src/utils/commands.ts +63 -0
  151. package/templates/telegram-bot/core/src/utils/formatters.ts +82 -0
  152. package/templates/telegram-bot/core/src/utils/instance-manager.ts +189 -0
  153. package/templates/telegram-bot/core/src/utils/memory.ts +33 -0
  154. package/templates/telegram-bot/core/src/utils/result.ts +26 -0
  155. package/templates/telegram-bot/core/src/utils/telegram.ts +31 -0
  156. package/templates/telegram-bot/core/src/utils/type-guards.ts +71 -0
  157. package/templates/telegram-bot/core/tsconfig.json +9 -0
  158. package/templates/telegram-bot/docker-compose.yml +37 -0
  159. package/templates/telegram-bot/docs/cli-commands.md +377 -0
  160. package/templates/telegram-bot/docs/development.md +363 -0
  161. package/templates/telegram-bot/docs/environment.md +460 -0
  162. package/templates/telegram-bot/docs/examples/middleware-auth.md +335 -0
  163. package/templates/telegram-bot/docs/examples/simple-command.md +207 -0
  164. package/templates/telegram-bot/docs/examples/webhook-setup.md +362 -0
  165. package/templates/telegram-bot/docs/getting-started.md +223 -0
  166. package/templates/telegram-bot/docs/troubleshooting.md +489 -0
  167. package/templates/telegram-bot/package.json +49 -0
  168. package/templates/telegram-bot/packages/utils/package.json +12 -0
  169. package/templates/telegram-bot/packages/utils/src/index.ts +2 -0
  170. package/templates/telegram-bot/packages/utils/src/logger.ts +72 -0
  171. package/templates/telegram-bot/packages/utils/src/result.ts +80 -0
  172. package/templates/telegram-bot/tools/README.md +47 -0
  173. package/templates/telegram-bot/tools/commands/doctor.ts +460 -0
  174. package/templates/telegram-bot/tools/commands/index.ts +35 -0
  175. package/templates/telegram-bot/tools/commands/ngrok.ts +207 -0
  176. package/templates/telegram-bot/tools/commands/setup.ts +368 -0
  177. package/templates/telegram-bot/tools/commands/status.ts +140 -0
  178. package/templates/telegram-bot/tools/index.ts +16 -0
  179. package/templates/telegram-bot/tools/package.json +12 -0
  180. package/templates/telegram-bot/tools/utils/index.ts +13 -0
  181. package/templates/telegram-bot/tsconfig.json +22 -0
  182. package/templates/telegram-bot/vitest.config.ts +29 -0
package/README.md ADDED
@@ -0,0 +1,181 @@
1
+ # create-bunspace
2
+
3
+ > Multi-template project scaffolder for Bun with git submodule templates
4
+
5
+ [![npm version](https://badge.fury.io/js/create-bunspace.svg)](https://www.npmjs.com/package/create-bunspace)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
+
8
+ CLI scaffolder to create new projects from templates. Supports multiple templates via git submodules with automatic synchronization.
9
+
10
+ ## Quick Start
11
+
12
+ ```bash
13
+ # Create a new project (default: monorepo)
14
+ bun create bunspace my-project
15
+
16
+ # Create with specific template
17
+ bun create bunspace my-bot --template telegram-bot
18
+
19
+ # Create with all options
20
+ bun create bunspace my-app --template monorepo --yes --no-git
21
+ ```
22
+
23
+ ## Available Templates
24
+
25
+ | Template | Description |
26
+ |----------|-------------|
27
+ | **monorepo** | Bun monorepo for npm packages with workspaces |
28
+ | **telegram-bot** | Production-ready Telegram bot with Telegraf and TypeScript |
29
+
30
+ ## Usage
31
+
32
+ ### Basic Usage
33
+
34
+ ```bash
35
+ # Interactive mode (prompts for template and config)
36
+ bun create bunspace my-project
37
+
38
+ # Skip prompts with defaults
39
+ bun create bunspace my-project --yes
40
+
41
+ # Specific template
42
+ bun create bunspace my-project --template telegram-bot
43
+ ```
44
+
45
+ ### Options
46
+
47
+ | Option | Alias | Description |
48
+ |--------|-------|-------------|
49
+ | `--template <name>` | `-t` | Template to use (monorepo, telegram-bot) |
50
+ | `--scope <scope>` | `-s` | npm scope (e.g., @my-org) |
51
+ | `--description <text>` | `-d` | Project description |
52
+ | `--author <name>` | `-a` | Author name |
53
+ | `--dir <path>` | | Target directory |
54
+ | `--yes` | `-y` | Skip prompts, use defaults |
55
+ | `--no-git` | | Don't initialize git |
56
+ | `--no-install` | | Don't run bun install |
57
+ | `--help` | `-h` | Show help |
58
+
59
+ ### Examples
60
+
61
+ ```bash
62
+ # Monorepo with defaults
63
+ bun create bunspace my-lib
64
+
65
+ # Telegram bot with prompts
66
+ bun create bunspace my-bot --template telegram-bot
67
+
68
+ # Skip all prompts
69
+ bun create bunspace my-app -t monorepo -y
70
+
71
+ # Custom scope and description
72
+ bun create bunspace my-app --scope @mycompany --description "My app"
73
+ ```
74
+
75
+ ## Template Management
76
+
77
+ The scaffolder uses git submodules for templates, allowing easy updates:
78
+
79
+ ```bash
80
+ # List templates and their git status
81
+ bun run templates:list
82
+
83
+ # Sync all templates to latest
84
+ bun run templates:sync
85
+
86
+ # Sync specific template
87
+ bun run templates:sync monorepo
88
+ ```
89
+
90
+ ## Development
91
+
92
+ ```bash
93
+ # Clone repository
94
+ git clone https://github.com/MKS2508/mks-scaffolder.git
95
+ cd mks-scaffolder
96
+
97
+ # Install dependencies
98
+ bun install
99
+
100
+ # Run CLI directly
101
+ bun run dev my-project --template monorepo
102
+
103
+ # Build
104
+ bun run build
105
+
106
+ # Type check
107
+ bun run typecheck
108
+ ```
109
+
110
+ ## How It Works
111
+
112
+ 1. **Template Resolution**: Checks git submodules first (`templates/`), falls back to embedded templates (`dist/templates/`)
113
+ 2. **Placeholder Replacement**: Replaces `{{PLACEHOLDER}}` patterns in template files
114
+ 3. **Project Generation**: Copies files, replaces placeholders, and optionally runs `bun install`
115
+
116
+ ## Template System
117
+
118
+ ### Adding a New Template
119
+
120
+ 1. Add as git submodule:
121
+ ```bash
122
+ git submodule add <repo-url> templates/<name>
123
+ ```
124
+
125
+ 2. Update `scripts/embed-templates.js` to include the new template
126
+
127
+ 3. Add template choice to `src/prompts.ts:selectTemplate()`
128
+
129
+ 4. Add placeholder generation to `src/generator.ts:generatePlaceholders()`
130
+
131
+ ### Placeholder Syntax
132
+
133
+ Templates use `{{PLACEHOLDER}}` syntax for variable substitution:
134
+
135
+ **Monorepo Template:**
136
+ - `{{NAME}}` - Project name
137
+ - `{{SCOPE}}` - npm scope (without @)
138
+ - `{{DESCRIPTION}}` - Project description
139
+ - `{{AUTHOR}}` - Author name
140
+ - `{{YEAR}}` - Current year
141
+
142
+ **Telegram Bot Template:**
143
+ - `{{BOT_NAME}}` - Bot name
144
+ - `{{BOT_SCOPE}}` - npm scope (without @)
145
+ - `{{BOT_DESCRIPTION}}` - Bot description
146
+ - `{{TG_BOT_TOKEN}}` - Bot token
147
+ - `{{AUTHOR}}` - Author name
148
+ - `{{YEAR}}` - Current year
149
+
150
+ ## Architecture
151
+
152
+ ```
153
+ mks-scaffolder/
154
+ ├── bin.ts # Executable entry point
155
+ ├── src/
156
+ │ ├── cli.ts # Main CLI orchestration
157
+ │ ├── generator.ts # Project generation
158
+ │ ├── template-manager.ts # Git submodule management
159
+ │ ├── prompts.ts # Interactive prompts
160
+ │ ├── types.ts # TypeScript definitions
161
+ │ └── utils.ts # Utilities
162
+ ├── scripts/
163
+ │ └── embed-templates.js # Copies templates to dist/
164
+ ├── templates/
165
+ │ ├── monorepo/ # Submodule: mks-bun-monorepo
166
+ │ └── telegram-bot/ # Submodule: mks-telegram-bot
167
+ └── dist/
168
+ └── bin.js # Built CLI (for npm publishing)
169
+ ```
170
+
171
+ ## Documentation
172
+
173
+ - [CLAUDE.md](./CLAUDE.md) - Developer documentation and architecture guide
174
+
175
+ ## Contributing
176
+
177
+ Contributions are welcome! Please feel free to submit a Pull Request.
178
+
179
+ ## License
180
+
181
+ MIT © [MKS2508](https://github.com/MKS2508)