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.
- package/package.json +7 -2
- package/buddy/README.md +0 -396
- package/buddy/art/social.jpg +0 -0
- package/buddy/bin/cli.ts +0 -85
- package/buddy/build.ts +0 -43
- package/buddy/package.json +0 -128
- package/buddy/src/cli.ts +0 -105
- package/buddy/src/commands/add.ts +0 -71
- package/buddy/src/commands/build.ts +0 -299
- package/buddy/src/commands/changelog.ts +0 -52
- package/buddy/src/commands/clean.ts +0 -46
- package/buddy/src/commands/cloud.ts +0 -553
- package/buddy/src/commands/commit.ts +0 -26
- package/buddy/src/commands/configure.ts +0 -84
- package/buddy/src/commands/create.ts +0 -143
- package/buddy/src/commands/deploy.ts +0 -194
- package/buddy/src/commands/dev.ts +0 -292
- package/buddy/src/commands/dns.ts +0 -86
- package/buddy/src/commands/domains.ts +0 -255
- package/buddy/src/commands/fresh.ts +0 -48
- package/buddy/src/commands/generate.ts +0 -202
- package/buddy/src/commands/http.ts +0 -57
- package/buddy/src/commands/index.ts +0 -33
- package/buddy/src/commands/install.ts +0 -30
- package/buddy/src/commands/key.ts +0 -36
- package/buddy/src/commands/lint.ts +0 -54
- package/buddy/src/commands/list.ts +0 -42
- package/buddy/src/commands/make.ts +0 -352
- package/buddy/src/commands/migrate.ts +0 -105
- package/buddy/src/commands/outdated.ts +0 -31
- package/buddy/src/commands/ports.ts +0 -188
- package/buddy/src/commands/prepublish.ts +0 -28
- package/buddy/src/commands/projects.ts +0 -54
- package/buddy/src/commands/release.ts +0 -47
- package/buddy/src/commands/route.ts +0 -39
- package/buddy/src/commands/seed.ts +0 -47
- package/buddy/src/commands/setup.ts +0 -145
- package/buddy/src/commands/test.ts +0 -214
- package/buddy/src/commands/tinker.ts +0 -42
- package/buddy/src/commands/types.ts +0 -35
- package/buddy/src/commands/upgrade.ts +0 -200
- package/buddy/src/commands/version.ts +0 -29
- package/buddy/src/custom-cli.ts +0 -35
- package/buddy/src/index.ts +0 -1
- 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.
|
|
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": ["
|
|
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
|
-

|
|
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
|
-
[](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
|
-
<!--  -->
|
|
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 -->
|
package/buddy/art/social.jpg
DELETED
|
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
|
-
})
|
package/buddy/package.json
DELETED
|
@@ -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
|
-
}
|