stacks 0.67.0 → 0.68.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 (45) hide show
  1. package/package.json +7 -2
  2. package/buddy/README.md +0 -396
  3. package/buddy/art/social.jpg +0 -0
  4. package/buddy/bin/cli.ts +0 -85
  5. package/buddy/build.ts +0 -43
  6. package/buddy/package.json +0 -128
  7. package/buddy/src/cli.ts +0 -105
  8. package/buddy/src/commands/add.ts +0 -71
  9. package/buddy/src/commands/build.ts +0 -299
  10. package/buddy/src/commands/changelog.ts +0 -52
  11. package/buddy/src/commands/clean.ts +0 -46
  12. package/buddy/src/commands/cloud.ts +0 -553
  13. package/buddy/src/commands/commit.ts +0 -26
  14. package/buddy/src/commands/configure.ts +0 -84
  15. package/buddy/src/commands/create.ts +0 -143
  16. package/buddy/src/commands/deploy.ts +0 -194
  17. package/buddy/src/commands/dev.ts +0 -292
  18. package/buddy/src/commands/dns.ts +0 -86
  19. package/buddy/src/commands/domains.ts +0 -255
  20. package/buddy/src/commands/fresh.ts +0 -48
  21. package/buddy/src/commands/generate.ts +0 -202
  22. package/buddy/src/commands/http.ts +0 -57
  23. package/buddy/src/commands/index.ts +0 -33
  24. package/buddy/src/commands/install.ts +0 -30
  25. package/buddy/src/commands/key.ts +0 -36
  26. package/buddy/src/commands/lint.ts +0 -54
  27. package/buddy/src/commands/list.ts +0 -42
  28. package/buddy/src/commands/make.ts +0 -352
  29. package/buddy/src/commands/migrate.ts +0 -105
  30. package/buddy/src/commands/outdated.ts +0 -31
  31. package/buddy/src/commands/ports.ts +0 -188
  32. package/buddy/src/commands/prepublish.ts +0 -28
  33. package/buddy/src/commands/projects.ts +0 -54
  34. package/buddy/src/commands/release.ts +0 -47
  35. package/buddy/src/commands/route.ts +0 -39
  36. package/buddy/src/commands/seed.ts +0 -47
  37. package/buddy/src/commands/setup.ts +0 -145
  38. package/buddy/src/commands/test.ts +0 -214
  39. package/buddy/src/commands/tinker.ts +0 -42
  40. package/buddy/src/commands/types.ts +0 -35
  41. package/buddy/src/commands/upgrade.ts +0 -200
  42. package/buddy/src/commands/version.ts +0 -29
  43. package/buddy/src/custom-cli.ts +0 -35
  44. package/buddy/src/index.ts +0 -1
  45. package/buddy/tsconfig.json +0 -3
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "stacks",
3
3
  "type": "module",
4
- "version": "0.67.0",
4
+ "version": "0.68.0",
5
5
  "description": "The Stacks framework.",
6
6
  "author": "Chris Breuer",
7
7
  "contributors": ["Chris Breuer <chris@stacksjs.org>"],
@@ -288,6 +288,11 @@
288
288
  "types": "./components/stepper/dist/index.d.ts",
289
289
  "import": "./components/stepper/dist/index.js"
290
290
  },
291
+ "./modal": {
292
+ "bun": "./components/modal/src/index.ts",
293
+ "types": "./components/modal/dist/index.d.ts",
294
+ "import": "./components/modal/dist/index.js"
295
+ },
291
296
  "./storage": {
292
297
  "bun": "./storage/src/index.ts",
293
298
  "types": "./storage/dist/index.d.ts",
@@ -335,7 +340,7 @@
335
340
  }
336
341
  },
337
342
  "types": "./types/dist/index.d.ts",
338
- "files": ["buddy", "core", "ide", "package.json", "stubs", "vcs"],
343
+ "files": ["README.md", "dist"],
339
344
  "scripts": {
340
345
  "buddy": "bun run ./buddy/src/cli.ts",
341
346
  "build": "cd config && bun run build && cd ../env && bun run build && cd ../storage && bun run build && cd .. && bun ./build.ts",
package/buddy/README.md DELETED
@@ -1,396 +0,0 @@
1
- ![Social Card of Stacks](../../../../public/social.jpg)
2
-
3
- # Rapid App & Library Development
4
-
5
- [![npm version][npm-version-src]][npm-version-href]
6
- [![GitHub Actions][github-actions-src]][github-actions-href]
7
- [![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
8
- [![npm downloads][npm-downloads-src]][npm-downloads-href]
9
- <!-- [![Codecov][codecov-src]][codecov-href] -->
10
-
11
- > [!WARNING]
12
- > Stay tuned. Open Beta coming soon.
13
-
14
- Stacks is a rapid development framework, where the goal is to _help you_ create & maintain frontends, backends, and clouds—without having to worry about the boilerplate. _An all-in-one toolkit that meets all your full stack needs._
15
-
16
- - Web & Desktop Applications _(including system tray apps)_
17
- - Serverless & Traditional APIs
18
- - Cloud Infrastructure Creation & Maintenance
19
- - Interactive CLIs
20
- - Framework-agnostic Component & Function Libraries
21
- - Deployment & Release Manager _(CI & CD)_
22
-
23
- In other words, Stacks helps you, as a developer, every step along the way—in beginner & expert-friendly ways, allowing you to focus on the _what & why_ of your project, all while enabling you to always stay in control & ownership of your _(& your user’s)_ data.
24
-
25
- > “Convention over configuration” is the Stacks mantra. _- Chris_
26
-
27
- <!-- ![Atomic UI & FX Design](./docs/assets/diagram.png) -->
28
-
29
- ## Get Started
30
-
31
- It’s incredibly easy to get started with this framework. Simply run the following command in your terminal:
32
-
33
- ```bash
34
- curl -Ssf stacksjs.org/install | sh # wip
35
-
36
- # alternatively, if Bun >= v1.1.11 is installed already,
37
- # you may also get started via:
38
- bunx stacks new my-project
39
- ```
40
-
41
- ## Usage
42
-
43
- The following list includes some of the most common ways to interact with the Stacks API.
44
-
45
- _Meet the toolkit, Buddy:_
46
-
47
- ```bash
48
- buddy install # installs all dependencies
49
- buddy dev # starts one of the dev servers (frontend, API, components, docs, desktop, etc.)
50
- buddy share # creates a sharable link of your local project
51
- buddy build # follow CLI prompts to select which library (or server) to build
52
- buddy commit # follow CLI prompts for committing changes
53
- buddy release # creates the releases for the stack & consequently, publishes them to npm
54
- buddy upgrade # auto-update all deps & the Stacks framework
55
-
56
- buddy make:component HelloWorld # scaffolds a Component
57
- buddy make:function HelloWorld # scaffolds a Function
58
- buddy make:model Car # scaffolds a Model
59
- buddy make:action UpdateCar # scaffolds an Action
60
- buddy make:migration create_cars_table # scaffolds a Migration
61
- buddy make:view Car # scaffolds a Page (https://my-project.test/car)
62
- buddy make:command Inspire # scaffolds a Command
63
- buddy make:job SendEmail # scaffolds a Job
64
- buddy make:middleware Logger # scaffolds a new Middleware
65
- buddy make:notification WelcomeEmail # scaffolds a Notification
66
- buddy make:lang de # scaffolds a language file
67
-
68
- buddy list # lists all available commands
69
- buddy --help
70
- ```
71
-
72
- <details>
73
- <summary>View the complete Buddy Toolkit</summary>
74
-
75
- ```bash
76
- buddy --version # get the Stacks version
77
- buddy --help # view help menu
78
- # please note: you may suffix any command with the
79
- # `command --help` flag to review the help menu
80
-
81
- buddy install # installs dependencies
82
- buddy add # adds a stack or dependency
83
- buddy fresh # fresh reinstall of all deps
84
- buddy clean # removes all deps
85
- buddy setup # sets up the project initially
86
- buddy setup:oh-my-zsh # optional: sets up Oh My Zsh with auto-completions & "aliases"
87
-
88
- buddy upgrade # upgrades all dependencies
89
- buddy upgrade -i # prompts you to select which updates to apply (wip)
90
- buddy upgrade:dependencies # auto-upgrades package.json deps
91
- buddy upgrade:framework # auto-upgrades deps & the Stacks framework
92
- buddy upgrade:search-engine # auto-upgrades configured search engine
93
- buddy upgrade:shell # upgrades the shell integration
94
- buddy upgrade:binary # upgrades the `stacks` binary
95
- buddy upgrade:bun # upgrades to latest project-defined Bun version
96
- buddy upgrade:all # auto-upgrades all of the above
97
-
98
- # if you need any more info on any command listed here, you may suffix
99
- # any of them via the "help option", i.e. `buddy ... --help`
100
-
101
- buddy dev # starts the frontend dev server
102
- buddy dev -i # prompts any of the dev servers (components, functions, views, docs, or api)
103
- buddy dev:api # starts the API dev server
104
- buddy dev:dashboard # starts the Admin/Dashboard dev server
105
- buddy dev:desktop # starts the Desktop dev server
106
- buddy dev:views # starts frontend dev server
107
- buddy dev:components # starts component dev server
108
- buddy dev:functions # stubs functions
109
- buddy dev:docs # starts local docs dev server
110
- buddy dev docs # also starts the local docs dev server (colon is optional for all commands)
111
- buddy development # `buddy dev` alias
112
-
113
- buddy share # creates a sharable link to your local project
114
-
115
- # for Laravel folks, `serve` may ring more familiar than the `dev` name. Hence, we aliased it:
116
- buddy serve
117
- buddy serve:components
118
- buddy serve:desktop
119
- buddy serve:views
120
- buddy serve:functions
121
- buddy serve:docs
122
-
123
- # building for production (e.g. AWS, Google Cloud, npm, Vercel, Netlify, et al.)
124
- buddy build # select a specific build (follow CLI prompts)
125
- buddy build:views # builds SSG views
126
- buddy build:desktop # builds Desktop application
127
- buddy build:library # builds any or all libraries
128
- buddy build:functions # builds function library
129
- buddy build:components # builds Vue component library & Web Component library
130
- buddy build:web-components # builds framework agnostic Web Component library (i.e. Custom Elements)
131
- buddy build:vue-components # builds Vue 2 & 3-ready Component library
132
- buddy build:all # builds all your code
133
-
134
- # `buddy build` aliases
135
- buddy prod
136
- buddy prod:components
137
- buddy prod:desktop
138
- buddy prod:library
139
- buddy prod:views
140
- buddy prod:functions
141
- buddy prod:vue-components
142
- buddy prod:web-components
143
- buddy prod:all
144
- buddy production # `buddy prod` alias
145
-
146
- # sets your application key
147
- buddy key:generate
148
-
149
- buddy make:component HelloWorld # bootstraps a HelloWorld component
150
- buddy make:function hello-world # bootstraps a hello-world function
151
- buddy make:view hello-world # bootstraps a hello-word page
152
- buddy make:model Car # bootstraps a Car model
153
- buddy make:database cars # creates a cars database
154
- buddy make:migration create_cars_table # creates a cars migration file
155
- buddy make:factory cars # creates a Car factory file
156
- buddy make:table cars # bootstraps a cars data table
157
- buddy make:notification welcome-email # bootstraps a welcome-email notification
158
- buddy make:lang de # bootstraps a lang/de.yml language file
159
- buddy make:stack my-project # shares logic with `bunx stacks new my-project`
160
-
161
- buddy migrate # runs database migrations
162
- buddy migrate:dns # sets the ./config/dns.ts file
163
-
164
- buddy dns example.com # list all DNS records for example.com
165
- buddy dns example.com --type MX # list MX records for example.com (proxies dog)
166
-
167
- buddy https httpie.io/hello
168
- # http [flags] [METHOD] URL [ITEM [ITEM]]
169
- buddy http --help
170
- buddy http PUT pie.dev/put X-API-Token:123 name=John # Custom HTTP method, HTTP headers and JSON data
171
- buddy http -v pie.dev/get # See the request that is being sent using one of the output options
172
- buddy http -f POST pie.dev/post hello=World # submitting forms
173
- buddy http --offline pie.dev/post hello=offline
174
- buddy http -a USERNAME POST https://api.github.com/repos/httpie/cli/issues/83/comments body='HTTPie is awesome! :heart:'
175
- buddy http pie.dev/post < files/data.json
176
- buddy http pie.dev/image/png > image.png
177
- buddy http --download pie.dev/image/png
178
- buddy http --session=logged-in -a username:password pie.dev/get API-Key:123
179
- buddy http --session=logged-in pie.dev/headers
180
- buddy http localhost:8000 Host:example.com
181
-
182
- buddy lint # runs linter
183
- buddy lint:fix # runs linter and fixes issues
184
-
185
- buddy commit # follow CLI prompts for committing staged changes
186
- buddy release # creates the releases for the stack & triggers the Release Action (workflow)
187
- buddy changelog # generates CHANGELOG.md
188
-
189
- # when deploying your app/s to a remote server or cloud provider
190
- buddy deploy # select a specific deployment (follow CLI prompts)
191
- # buddy deploy:docs # deploys docs to AWS (or other configured provider)
192
- # buddy deploy:functions # deploys functions to AWS (or other configured provider)
193
- # buddy deploy:views # deploys views to AWS (or other configured provider)
194
- # buddy deploy:all # deploys all your code
195
- buddy undeploy # be careful: "undeploys" removes/deletes your deployed resources
196
-
197
- buddy cloud:remove # removes cloud setup
198
- buddy cloud:cleanup # removes cloud setup & cleans up all potentially leftover resources
199
- buddy cloud:add --jump-box # adds a jump box to your cloud setup
200
-
201
- # select the example to run (follow CLI prompts)
202
- buddy example # prompts you to select which example to run
203
- buddy example:vue # runs the Vue example
204
- buddy example:web-components # runs the Web Component example
205
-
206
- # you likely won’t need to run these commands as they are auto-triggered, but they are available
207
- buddy generate # prompts you to select which generator to run
208
- buddy generate:types # generates types for your components, functions, & views
209
- buddy generate:entries # generates entry files for components, functions, & views
210
- buddy generate:web-types # generates Web Component types
211
- buddy generate:vscode-custom-data # generates VSCode custom data
212
- buddy generate:ide-helpers # generates IDE helpers
213
- buddy generate:component-meta # generates component meta
214
- buddy generate:all # runs all generators
215
-
216
- # generates your application key
217
- buddy key:generate # generates your application key
218
-
219
- # generate your TypeScript declarations
220
- buddy types:generate # generates types for your components, functions, & views
221
- buddy types:fix # auto-fixes types for your components, functions, & views
222
-
223
- buddy domains # alias for `buddy domains:list`
224
- buddy domains:add stacksjs.org # adds a domain
225
- buddy domains:remove stacksjs.org # removes a domain
226
- buddy domains:list # lists all domains
227
- buddy domains:update # apply ./config/dns.ts updates
228
- buddy domains:purchase stacksjs.org # purchase a new domain
229
-
230
- # test your stack
231
- buddy test # runs test suite (unit & e2e)
232
- buddy test:coverage # runs test coverage
233
- buddy test:types # runs typecheck
234
-
235
- # the CLI may be triggered in any
236
- # of the following syntax:
237
- stx fresh
238
- buddy fresh
239
- bud fresh
240
- ```
241
-
242
- </details>
243
-
244
- Read more here about the Stacks CLI in the documentation.
245
-
246
- ## Features
247
-
248
- The Stacks framework is a harmony of several “engines” to build any web and/or desktop application, in highly scalable & privacy-friendly ways. It consists of the following engines:
249
-
250
- ### Frontend Development
251
-
252
- _Develop dynamic UIs with helpers for atomic design, and much more._
253
-
254
- - 🧩 **Components** _primitive to develop user interfaces_
255
- - 🤖 **Functions** _primitive to develop business logic (and grant your UI superpowers)_
256
- - 🎨 **UI Kit** _modern & deeply-integrated components_
257
- - 🌐 **Web** _“a routing & templating engine that makes sense”_
258
- - 🖥️ **Desktop** _transforms your web app into a desktop app, plus more_
259
- - 📝 **Documentation** _markdown-based documentation, auto-generated_
260
- - 📚 **Library** _auto-builds & manages component & function libraries_
261
- - ⚡️ Powered by Bun, Nitro, Tauri, UnoCSS, Vite & Vue
262
-
263
- ### Backend Development
264
-
265
- _Develop serverless (or server) functions with countless helpers to build scalable & fast APIs._
266
-
267
- - 🪄 **AI** _deep AI integrations & foundational model access_
268
- - 🤖 **APIs** _scalability & maintainability built-in_
269
- - 🏎️ **Cache** _Redis, DynamoDB, and more—serverless_
270
- - ⚙️ **CLIs** _create beautiful CLIs for Linux, Windows, and Mac (dependency-free binaries)_
271
- - 📀 **Database** _SQLite, MySQL, Postgres, and more_
272
- - 👾 **Errors** _native type-safe error handling_
273
- - 🗓️ **Events** _functional event (front & backend) communication_
274
- - 📢 **Notifications** _emails, SMSs, direct, and push notifications & webhooks_
275
- - 🗺️ **ORM** _supercharged, fully-typed models & relations (including automated migrations)_
276
- - 💳 **Payments** _unified API for one-off & subscription billing methods for Stripe_
277
- - ⚙️ **Queues** _run any heavy workload in the background_
278
- - 🛠️ **Query Builder** _powerful, type-safe SQL query builder_
279
- - 💬 **Realtime** _“everything you need to build dynamic real-time apps”_
280
- - 🧭 **Router** _smart routing, file-based or Laravel-like_
281
- - 🔎 **Search Engine** _smart searching, advanced filtering & sorting, pagination, headless UI_
282
- - 💾 **Storage** _a secure-by-default File API that feels right_
283
- - 🧪 **Tinker** _a powerful TypeScript REPL_
284
- - 🌪️ **Validation** _e2e type-safety (true frontend & backend harmony)_
285
- - 🎯 **X-Ray** _all you need to debug, log & analyze_
286
-
287
- ### Cloud Development
288
-
289
- _Develop & maintain cloud infrastructure with ease. “Imagine Vercel, Vapor and Forge having been unified.”_
290
-
291
- - ☁️ **Server** _local development server & production-ready servers out-of-the-box_
292
- - ⛅️ **Serverless** _on-demand, auto-scaling, zero maintenance_
293
- - ⏰ **Alarms** _built-in cloud infrastructure monitoring to avoid surprises_
294
- - 🚏 **CDN** _zero-config, low-latency, request life-cycle hooks, optimized request compressions (Brotli & gzip)_
295
- - 🔀 **Domain** _version-controlled & zero-config domain management (e.g. DNS management)_
296
- - 🤖 **AI** _fine-tune a foundational model using your application data_
297
- - 📧 **Email** _secure & zero-setup <easy-peasy@custom-domains.com> mailboxes_
298
- - 🔐 **Firewall** _native web application firewall support_
299
- - 📦 **Storage** _unlimited cloud storage & automatic backups_
300
- - 🚜 **Maintenance** _maintain your cloud infrastructure with ease using Buddy & Stacks_
301
- - 🚦 **Infrastructure as Code** _version-controlled cloud infrastructure (AWS, Google next?)_
302
-
303
- ### CI/CD
304
-
305
- _Focus on coding, not publishing._
306
-
307
- - 🚀 **Deployment Manager** _takes the sweat out of production deployments—zero-setup push-to-deploy_
308
- - 0️⃣ **Zero Downtime** _deploy with confidence using a zero-downtime deployment strategy_
309
- - 📫 **Release Manager** _libraries (component & function) auto-published to npm, git helpers, and more_
310
-
311
- ### Developer Experience (DX)
312
-
313
- Convention over configuration, while staying wholly configurable. _No more boilerplate._
314
-
315
- - 💎 **Automated Upgrades** _no need to worry about upgrading to the latest versions, Stacks upgrades you_
316
- - 🦋 **Pretty Dev URLs** _your-project.localhost instead of localhost:3000_
317
- - 💡 **IDE Integration** _auto-completions, inline docs & a powerful VS Code setup_
318
- - 🪄 **Zero-Config** _yet highly configurable—convention over configuration_
319
- - 💅 **Linter & Formatter** _auto-configured & built into your IDE_
320
- - 💪🏼 **Type Strong** _built-in e2e type-safety_
321
- - ✨ **Git Workflows** _committing with ease_
322
- - 🚗 **Auto Imports** _your components & functions, including date, string, array, & object helpers_
323
- - ⏩ **Code Snippets** _goodbye to the boilerplate code—thank you Sarah Drasner_
324
- - 🔤 **Spell Checker** _be notified once there are typos_
325
- - 🛠️ **Essential Utilities** _powers at your fingertips. Collections, VueUse, and more_
326
- - 👥 **Team Management** _manage your team & their permissions_
327
- - 🧪 **Streamlined Testing** _unit & e2e tests powered by Bun, Vitest & Playwright_
328
-
329
- No matter whether you are a beginner or an expert, the approachable Stacks design allows you to learn at your own pace, using our thorough documentation covering every aspect of the framework. Stacks is extremely beginner & expert-friendly.
330
-
331
- Develop beautiful, reactive, composable UIs without learning a new set of languages. HTML, CSS, and minimal JavaScript—that’s all you need to dive in now! _Or TypeScript ✌🏼_
332
-
333
- > _An actual rapid application development framework for all Full Stack needs. Next-level simplicity & DX._
334
-
335
- ## Testing
336
-
337
- ```bash
338
- ./buddy test
339
- ```
340
-
341
- ## Changelog
342
-
343
- Please see our [releases](https://github.com/stacksjs/stacks/releases) page for more information on what has changed recently.
344
-
345
- ## Contributing
346
-
347
- Please see the [Contributing Guide](https://github.com/stacksjs/contributing) for details.
348
-
349
- ## Community
350
-
351
- For help, discussion about best practices, or any other conversation that would benefit from being searchable:
352
-
353
- [Discussions on GitHub](https://github.com/stacksjs/stacks/discussions)
354
-
355
- For casual chit-chat with others using this package:
356
-
357
- [Join the Stacks Discord Server](https://discord.gg/stacksjs)
358
-
359
- ## Postcardware
360
-
361
- Two things are true: Stacks OSS will always stay open-source, and we do/would love to receive postcards from wherever Stacks is used! 🌍 _And we also publish them on our website. -Thank you, Spatie_
362
-
363
- Our address: Stacks.js, 12665 Village Ln #2306, Playa Vista, CA 90094, United States
364
-
365
- ## Sponsors
366
-
367
- We would like to extend our thanks to the following sponsors for funding Stacks development. If you are interested in becoming a sponsor, please reach out to us.
368
-
369
- - [JetBrains](https://www.jetbrains.com/)
370
- - [The Solana Foundation](https://solana.com/)
371
-
372
- ## Credits
373
-
374
- - [Chris Breuer](https://github.com/chrisbbreuer)
375
- - [All Contributors](../../contributors)
376
-
377
- And a special thanks to [Dan Scanlon](https://twitter.com/danscan) for donating the `stacks` name on npm ✨
378
-
379
- ## License
380
-
381
- The MIT License (MIT). Please see [LICENSE](LICENSE.md) for more information.
382
-
383
- Made with 💙
384
-
385
- <!-- Badges -->
386
- [npm-version-src]: https://img.shields.io/npm/v/stacks?style=flat-square
387
- [npm-version-href]: https://npmjs.com/package/stacks
388
-
389
- [npm-downloads-src]: https://img.shields.io/npm/dm/stacks?style=flat-square
390
- [npm-downloads-href]: https://npmjs.com/package/stacks
391
-
392
- [github-actions-src]: https://img.shields.io/github/actions/workflow/status/stacksjs/stacks/ci.yml?style=flat-square&branch=main
393
- [github-actions-href]: https://github.com/stacksjs/stacks/actions?query=workflow%3Aci
394
-
395
- <!-- [codecov-src]: https://img.shields.io/codecov/c/gh/stacksjs/stacks/main?style=flat-square
396
- [codecov-href]: https://codecov.io/gh/stacksjs/buddy -->
Binary file
package/buddy/bin/cli.ts DELETED
@@ -1,85 +0,0 @@
1
- import { $ } from 'bun'
2
- import { existsSync, readdirSync, statSync } from 'node:fs'
3
- import { join } from 'node:path'
4
- import process from 'node:process'
5
- import { cac } from 'cac'
6
- import { version } from '../package.json'
7
-
8
- const cli = cac('stacks')
9
-
10
- cli
11
- .command('new', 'Create a new Stacks project')
12
- .alias('create')
13
- .action(() => {
14
- const buddyCli = 'buddy'
15
-
16
- if (existsSync(buddyCli))
17
- $`${buddyCli} ${process.argv.slice(2).join(' ')}`
18
-
19
- let currentDir = process.cwd()
20
- let found = false
21
-
22
- while (currentDir !== '/') {
23
- if (existsSync(`${currentDir}/storage/framework/core/buddy`)) {
24
- // if the buddy directory exists, we know we are in a stacks project
25
- found = true
26
- break
27
- }
28
- currentDir = currentDir.split('/').slice(0, -1).join('/')
29
- }
30
-
31
- if (!found) {
32
- console.error('No stacks project found. Do you want to create a new stacks project?')
33
- // TODO: add prompt for user input
34
- process.exit(1)
35
- }
36
-
37
- $`bunx --bun stacks new ${process.argv.slice(2).join(' ')}`
38
- })
39
-
40
- cli
41
- .command('cd <project>', 'Change the current working directory to a different Stacks project')
42
- .action((project: string) => {
43
- const findProjectPath = (base: any, target: any) => {
44
- const queue = [base]
45
-
46
- while (queue.length) {
47
- const currentPath = queue.shift()
48
- console.log(`Checking ${currentPath}...`)
49
- const directoryContents = readdirSync(currentPath)
50
-
51
- for (const content of directoryContents) {
52
- const contentPath = join(currentPath, content)
53
- const isDirectory = statSync(contentPath).isDirectory()
54
-
55
- if (isDirectory) {
56
- if (contentPath.includes(target))
57
- return contentPath // Found the target directory
58
-
59
- queue.push(contentPath)
60
- }
61
- }
62
- }
63
-
64
- return null // Target directory not found
65
- }
66
-
67
- const projectPath = findProjectPath('/', `${project}/storage/framework/core/buddy/`)
68
-
69
- if (projectPath) {
70
- console.log(`Project found at ${projectPath}.`)
71
- console.log(`Run 'cd ${projectPath}' to navigate to the project directory.`)
72
- // $`cd ${projectPath}`
73
- }
74
- else {
75
- console.error('Project directory not found.')
76
- }
77
- })
78
-
79
- cli.command('version', 'Show the version of the Stacks CLI').action(() => {
80
- console.log(version)
81
- })
82
-
83
- cli.version(version)
84
- cli.help()
85
- cli.parse()
package/buddy/build.ts DELETED
@@ -1,43 +0,0 @@
1
- import { dts } from 'bun-plugin-dts-auto'
2
- import { intro, outro } from '../build/src'
3
-
4
- const { startTime } = await intro({
5
- dir: import.meta.dir,
6
- })
7
-
8
- const result = await Bun.build({
9
- entrypoints: ['./src/index.ts', './src/cli.ts'],
10
-
11
- outdir: './dist',
12
- format: 'esm',
13
- target: 'bun',
14
- // sourcemap: 'linked',
15
- minify: true,
16
- splitting: true,
17
-
18
- external: [
19
- '@stacksjs/ai',
20
- '@stacksjs/actions',
21
- '@stacksjs/enums',
22
- '@stacksjs/config',
23
- '@stacksjs/dns',
24
- '@stacksjs/error-handling',
25
- '@stacksjs/cli',
26
- '@stacksjs/cloud',
27
- '@stacksjs/logging',
28
- '@stacksjs/utils',
29
- '@stacksjs/validation',
30
- '@stacksjs/path',
31
- '@stacksjs/storage',
32
- '@stacksjs/types',
33
- 'bun',
34
- ],
35
-
36
- plugins: [dts({ root: './src', outdir: './dist' })],
37
- })
38
-
39
- await outro({
40
- dir: import.meta.dir,
41
- startTime,
42
- result,
43
- })
@@ -1,128 +0,0 @@
1
- {
2
- "name": "@stacksjs/buddy",
3
- "type": "module",
4
- "version": "0.67.0",
5
- "description": "Meet Buddy. The Stacks runtime.",
6
- "author": "Chris Breuer",
7
- "contributors": ["Chris Breuer <chris@stacksjs.org>"],
8
- "license": "MIT",
9
- "funding": "https://github.com/sponsors/chrisbbreuer",
10
- "homepage": "https://github.com/stacksjs/stacks/tree/main/stacks#readme",
11
- "repository": {
12
- "type": "git",
13
- "url": "git+https://github.com/stacksjs/stacks.git",
14
- "directory": "./storage/framework/core/buddy"
15
- },
16
- "bugs": {
17
- "url": "https://github.com/stacksjs/stacks/issues"
18
- },
19
- "keywords": [
20
- "stacks",
21
- "buddy",
22
- "runtime",
23
- "vite",
24
- "component",
25
- "composables",
26
- "functions",
27
- "headless",
28
- "api",
29
- "ssg",
30
- "pwa",
31
- "modern",
32
- "library",
33
- "vue",
34
- "web components",
35
- "typescript",
36
- "javascript",
37
- "starter kit"
38
- ],
39
- "exports": {
40
- ".": {
41
- "import": "./dist/index.js"
42
- },
43
- "./cli": {
44
- "types": "./dist/cli.d.ts",
45
- "import": "./dist/cli.js"
46
- },
47
- "./*": {
48
- "bun": "./*"
49
- }
50
- },
51
- "module": "dist/index.js",
52
- "types": "dist/index.d.ts",
53
- "bin": {
54
- "stacks": "dist/cli.mjs",
55
- "stx": "dist/cli.mjs",
56
- "buddy": "dist/cli.mjs",
57
- "bud": "dist/cli.mjs"
58
- },
59
- "files": ["README.md", "dist"],
60
- "scripts": {
61
- "buddy": "bunx --bun ./src/cli.ts",
62
- "build": "bun build.ts && bun run compile",
63
- "compile": "bun build ./bin/cli.ts --compile --minify --sourcemap --outfile dist/stacks",
64
- "compile:linux:x64-modern": "bun build ./bin/cli.ts --compile --target=bun-linux-x64-modern --minify --sourcemap --outfile dist/stacks",
65
- "compile:linux:x64-baseline": "bun build ./bin/cli.ts --compile --target=bun-linux-x64-baseline --minify --sourcemap --outfile dist/stacks",
66
- "compile:linux:arm64": "bun build ./bin/cli.ts --compile --target=bun-linux-arm64 --minify --sourcemap --outfile dist/stacks",
67
- "compile:windows:x64-modern": "bun build ./bin/cli.ts --compile --target=bun-windows-x64-modern --minify --sourcemap --outfile dist/stacks",
68
- "compile:windows:x64-baseline": "bun build ./bin/cli.ts --compile --target=bun-windows-x64-baseline --minify --sourcemap --outfile dist/stacks",
69
- "compile:mac:arm64": "bun build ./bin/cli.ts --compile --target=bun-darwin-arm64 --minify --sourcemap --outfile dist/stacks",
70
- "compile:mac:x64": "bun build ./bin/cli.ts --compile --target=bun-darwin-x64 --minify --sourcemap --outfile dist/stacks",
71
- "typecheck": "bun tsc --noEmit",
72
- "prepublishOnly": "bun run build"
73
- },
74
- "dependencies": {
75
- "@stacksjs/actions": "workspace:*",
76
- "@stacksjs/ai": "workspace:*",
77
- "@stacksjs/alias": "workspace:*",
78
- "@stacksjs/arrays": "workspace:*",
79
- "@stacksjs/auth": "workspace:*",
80
- "@stacksjs/build": "workspace:*",
81
- "@stacksjs/cache": "workspace:*",
82
- "@stacksjs/cli": "workspace:*",
83
- "@stacksjs/cloud": "workspace:*",
84
- "@stacksjs/collections": "workspace:*",
85
- "@stacksjs/config": "workspace:*",
86
- "@stacksjs/database": "workspace:*",
87
- "@stacksjs/desktop": "workspace:*",
88
- "@stacksjs/development": "workspace:*",
89
- "@stacksjs/dns": "workspace:*",
90
- "@stacksjs/docs": "workspace:*",
91
- "@stacksjs/email": "workspace:*",
92
- "@stacksjs/enums": "workspace:*",
93
- "@stacksjs/error-handling": "workspace:*",
94
- "@stacksjs/events": "workspace:*",
95
- "@stacksjs/faker": "workspace:*",
96
- "@stacksjs/git": "workspace:*",
97
- "@stacksjs/health": "workspace:*",
98
- "@stacksjs/lint": "workspace:*",
99
- "@stacksjs/logging": "workspace:*",
100
- "@stacksjs/notifications": "workspace:*",
101
- "@stacksjs/objects": "workspace:*",
102
- "@stacksjs/orm": "workspace:*",
103
- "@stacksjs/path": "workspace:*",
104
- "@stacksjs/payments": "workspace:*",
105
- "@stacksjs/realtime": "workspace:*",
106
- "@stacksjs/router": "workspace:*",
107
- "@stacksjs/search-engine": "workspace:*",
108
- "@stacksjs/security": "workspace:*",
109
- "@stacksjs/server": "workspace:*",
110
- "@stacksjs/storage": "workspace:*",
111
- "@stacksjs/strings": "workspace:*",
112
- "@stacksjs/testing": "workspace:*",
113
- "@stacksjs/tunnel": "workspace:*",
114
- "@stacksjs/types": "workspace:*",
115
- "@stacksjs/ui": "workspace:*",
116
- "@stacksjs/utils": "workspace:*",
117
- "@stacksjs/validation": "workspace:*"
118
- },
119
- "devDependencies": {
120
- "@stacksjs/development": "workspace:*"
121
- },
122
- "config": {
123
- "commitizen": {
124
- "path": "node_modules/cz-git"
125
- }
126
- },
127
- "web-types": "./web-types.json"
128
- }