create-raclette-app 0.0.5 → 0.0.7
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/README.md +88 -17
- package/package.json +2 -1
- package/templates/.gitignore +3 -5
- package/templates/package.json +12 -11
- package/templates/raclette.config.js +21 -13
- package/templates/services/frontend/src/orchestrator/WelcomeScreen.vue +17 -0
- package/dist/index.js +0 -12
- package/templates/.npmrc +0 -2
- package/templates/.yarnrc +0 -1
- package/templates/client/src/orchestrator/WelcomeScreen.vue +0 -15
package/README.md
CHANGED
|
@@ -1,29 +1,72 @@
|
|
|
1
1
|
# create-raclette-app
|
|
2
2
|
|
|
3
|
-
A CLI tool to quickly scaffold new raclette applications
|
|
4
|
-
|
|
3
|
+
A CLI tool to quickly scaffold new [**raclette**](https://raclettejs.com/) applications - the framework for building platforms and portals faster than ever.
|
|
4
|
+
|
|
5
|
+
## What is **raclette**?
|
|
6
|
+
|
|
7
|
+
**raclette** is a full-stack TypeScript meta-framework designed for building **platforms and portals** with minimal setup. It comes with bootstrapped features like authentication, WebSockets, database handling, containerization, and provides an easy-to-use, opinionated environment.
|
|
8
|
+
|
|
9
|
+
**Perfect for:**
|
|
10
|
+
|
|
11
|
+
- 🚀 **SaaS platforms** - Get to market faster with built-in auth and user management
|
|
12
|
+
- 🏢 **Customer/Supplier portals** - Enterprise-ready from day one
|
|
13
|
+
- 🛠️ **Internal business tools** - Focus on business logic, not infrastructure
|
|
14
|
+
- ⚡ **MVPs that can scale** - Start fast, grow clean with the plugin architecture
|
|
15
|
+
|
|
16
|
+
**Key Features:**
|
|
17
|
+
|
|
18
|
+
- **Widget-based frontend** (Vue.js + Vite, React support coming)
|
|
19
|
+
- **Plugin architecture** for reusable business logic
|
|
20
|
+
- **Built-in workbench** - Admin interface out of the box
|
|
21
|
+
- **Full-stack development** with Fastify backend + MongoDB
|
|
22
|
+
- **Docker containerization** for easy deployment
|
|
5
23
|
|
|
6
24
|
## Usage
|
|
7
25
|
|
|
26
|
+
### Interactive Mode (Recommended)
|
|
27
|
+
|
|
8
28
|
```bash
|
|
9
29
|
npx create-raclette-app
|
|
10
30
|
```
|
|
11
31
|
|
|
12
|
-
|
|
32
|
+
### Quick Start with Project Name
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
npx create-raclette-app my-awesome-platform
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Create in Current Directory
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
mkdir my-project && cd my-project
|
|
42
|
+
npx create-raclette-app .
|
|
43
|
+
```
|
|
13
44
|
|
|
14
|
-
-
|
|
15
|
-
- GitLab deploy token (optional, but currently required to download raclette)
|
|
16
|
-
- Whether to include the raclette dashboard (highly recommended)
|
|
45
|
+
### Non-Interactive Mode
|
|
17
46
|
|
|
18
|
-
|
|
47
|
+
```bash
|
|
48
|
+
npx create-raclette-app my-platform --non-interactive
|
|
49
|
+
```
|
|
19
50
|
|
|
20
|
-
##
|
|
51
|
+
## Wizard Questions
|
|
21
52
|
|
|
22
|
-
|
|
23
|
-
- minimal raclette.config file
|
|
24
|
-
- development scripts ready to go
|
|
53
|
+
The interactive wizard will ask you:
|
|
25
54
|
|
|
26
|
-
|
|
55
|
+
1. **Project name** - Used for folder name (converted to kebab-case) and configuration
|
|
56
|
+
2. **ESLint configuration** - Choose between standard or recommended (opinionated) config
|
|
57
|
+
|
|
58
|
+
## What You Get
|
|
59
|
+
|
|
60
|
+
- ✅ **raclette core & workbench** dependencies with dev dependencies
|
|
61
|
+
- ✅ **raclette.config.js** - Main configuration file
|
|
62
|
+
- ✅ **Development scripts** ready to go
|
|
63
|
+
- ✅ **ESLint + Prettier** configuration
|
|
64
|
+
- ✅ **TypeScript** setup
|
|
65
|
+
- ✅ **Docker-ready** development environment
|
|
66
|
+
|
|
67
|
+
## Getting Started
|
|
68
|
+
|
|
69
|
+
After running the CLI:
|
|
27
70
|
|
|
28
71
|
```bash
|
|
29
72
|
cd your-project-name
|
|
@@ -31,15 +74,43 @@ yarn install
|
|
|
31
74
|
yarn dev
|
|
32
75
|
```
|
|
33
76
|
|
|
34
|
-
|
|
35
|
-
|
|
77
|
+
**⏳ First start note:** The initial `yarn dev` might take a few minutes as Docker containers are built and started.
|
|
78
|
+
|
|
79
|
+
Once running, you'll have:
|
|
80
|
+
|
|
81
|
+
- **Your app frontend**: http://localhost:8081
|
|
82
|
+
- **raclette workbench**: http://localhost:8083
|
|
83
|
+
|
|
84
|
+
**Important:** Visit the workbench first (http://localhost:8083) to create your admin user before accessing the main app.
|
|
85
|
+
|
|
86
|
+
## Next Steps
|
|
87
|
+
|
|
88
|
+
1. Create your admin user in the workbench
|
|
89
|
+
2. Explore the documentation: [docs.raclettejs.com](https://docs.raclettejs.com/docs/introduction/getting-started)
|
|
90
|
+
3. Start building your platform with plugins and widgets!
|
|
91
|
+
|
|
92
|
+
## Troubleshooting
|
|
93
|
+
|
|
94
|
+
Having Docker issues? Check the [troubleshooting guide](https://docs.raclettejs.com/docs/introduction/getting-started) in our documentation.
|
|
36
95
|
|
|
37
96
|
## Requirements
|
|
38
97
|
|
|
39
|
-
- Node.js
|
|
40
|
-
- yarn (for raclette)
|
|
41
|
-
- npm (for npx)
|
|
98
|
+
- **Node.js** 24+ (might work with lower versions as well)
|
|
99
|
+
- **yarn** (for **raclette**)
|
|
100
|
+
- **npm** (for npx)
|
|
101
|
+
- **Docker** (for development environment)
|
|
102
|
+
|
|
103
|
+
## Links
|
|
104
|
+
|
|
105
|
+
- 🌐 [Website](https://raclettejs.com/)
|
|
106
|
+
- 📚 [Documentation](https://docs.raclettejs.com/)
|
|
107
|
+
- 🚀 [GitLab](https://gitlab.com/raclettejs) (source code)
|
|
108
|
+
- 📦 [npm](https://www.npmjs.com/org/raclettejs) (packages)
|
|
42
109
|
|
|
43
110
|
## License
|
|
44
111
|
|
|
45
112
|
MIT
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
**Stop building from scratch. Start with **raclette**.** 🧀
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-raclette-app",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.7",
|
|
4
4
|
"description": "CLI tool to create a raclette application boilerplate",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -54,6 +54,7 @@
|
|
|
54
54
|
"jest": "^29.7.0",
|
|
55
55
|
"prettier": "^3.3.2",
|
|
56
56
|
"ts-jest": "^29.3.4",
|
|
57
|
+
"ts-jest-mock-import-meta": "^1.3.1",
|
|
57
58
|
"ts-node": "^10.9.2",
|
|
58
59
|
"typescript": "^5.2.2",
|
|
59
60
|
"typescript-eslint": "^8.33.0"
|
package/templates/.gitignore
CHANGED
|
@@ -8,7 +8,7 @@ vim-session
|
|
|
8
8
|
.DS_Store
|
|
9
9
|
.vscode
|
|
10
10
|
|
|
11
|
-
# just in case
|
|
11
|
+
# just in case prevent pushing keys
|
|
12
12
|
**/keys
|
|
13
13
|
keys
|
|
14
14
|
/ssh
|
|
@@ -18,6 +18,7 @@ id_rsa.pub
|
|
|
18
18
|
|
|
19
19
|
# ignore env files
|
|
20
20
|
.env*
|
|
21
|
+
!.env.local
|
|
21
22
|
|
|
22
23
|
# ignore reference folder
|
|
23
24
|
**/*-ref
|
|
@@ -26,7 +27,4 @@ node_modules
|
|
|
26
27
|
**/node_modules
|
|
27
28
|
|
|
28
29
|
# raclette related
|
|
29
|
-
.raclette
|
|
30
|
-
|
|
31
|
-
.npmrc
|
|
32
|
-
.yarnrc
|
|
30
|
+
.raclette
|
package/templates/package.json
CHANGED
|
@@ -2,33 +2,34 @@
|
|
|
2
2
|
"name": "{{PROJECT_NAME_KEBAB}}",
|
|
3
3
|
"version": "0.0.1",
|
|
4
4
|
"description": "A boilerplate for creating applications with raclettejs",
|
|
5
|
-
"main": "index.js",
|
|
6
5
|
"author": "Pacifico Digital Explorations GmbH",
|
|
7
6
|
"license": "MIT",
|
|
8
7
|
"type": "module",
|
|
9
8
|
"scripts": {
|
|
9
|
+
"raclette": "raclette",
|
|
10
10
|
"dev": "raclette dev",
|
|
11
|
+
"build": "raclette build",
|
|
11
12
|
"down": "raclette down",
|
|
12
13
|
"update": "raclette update",
|
|
13
14
|
"restart": "raclette restart",
|
|
14
|
-
"add-package": "raclette add"
|
|
15
|
+
"add-package": "raclette add-package",
|
|
16
|
+
"lint": "eslint",
|
|
17
|
+
"lint:fix": "eslint --fix"
|
|
15
18
|
},
|
|
16
19
|
"dependencies": {
|
|
17
|
-
|
|
18
|
-
"@raclettejs/
|
|
19
|
-
{{/if}}
|
|
20
|
-
"@raclettejs/raclette-core": "latest"
|
|
20
|
+
"@raclettejs/workbench": "latest",
|
|
21
|
+
"@raclettejs/core": "latest"
|
|
21
22
|
},
|
|
22
23
|
"devDependencies": {
|
|
23
24
|
"@eslint/js": "^9.26.0",
|
|
24
|
-
"@raclettejs/
|
|
25
|
+
"@raclettejs/types": "^0.0.1",
|
|
25
26
|
"@sinclair/typebox": "^0.34.31",
|
|
26
27
|
"@typescript-eslint/eslint-plugin": "^8.32.1",
|
|
27
28
|
"@typescript-eslint/parser": "^8.32.1",
|
|
28
29
|
"@vue/eslint-config-prettier": "^10.2.0",
|
|
29
30
|
"@vue/eslint-config-typescript": "^14.5.0",
|
|
30
|
-
"@vueuse/core": "13.0.0",
|
|
31
31
|
"axios": "^1.7.9",
|
|
32
|
+
"eslint": "^9.26.0",
|
|
32
33
|
"eslint-config-prettier": "^10.1.5",
|
|
33
34
|
"eslint-config-standard": "^17.1.0",
|
|
34
35
|
"eslint-flat-config-utils": "^2.0.1",
|
|
@@ -36,16 +37,16 @@
|
|
|
36
37
|
"eslint-plugin-prefer-arrow-functions": "^3.6.2",
|
|
37
38
|
"eslint-plugin-prettier": "^5.4.0",
|
|
38
39
|
"eslint-plugin-vue": "^10.1.0",
|
|
39
|
-
"eslint": "^9.26.0",
|
|
40
40
|
"fastify": "^4.28.1",
|
|
41
41
|
"globals": "^16.1.0",
|
|
42
42
|
"prettier": "^3.5.3",
|
|
43
|
-
"
|
|
43
|
+
"ramda": "^0.31.3",
|
|
44
44
|
"typescript": "^5.4.2",
|
|
45
|
+
"typescript-eslint": "^8.32.1",
|
|
45
46
|
"uuid": "^11.1.0",
|
|
46
47
|
"vite": "^6.0.5",
|
|
47
|
-
"vue-eslint-parser": "^10.1.3",
|
|
48
48
|
"vue": "^3.5.13",
|
|
49
|
+
"vue-eslint-parser": "^10.1.3",
|
|
49
50
|
"vuetify": "^3.8.1"
|
|
50
51
|
}
|
|
51
52
|
}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { defineRacletteConfig } from "@raclettejs/
|
|
1
|
+
import { defineRacletteConfig } from "@raclettejs/core"
|
|
2
2
|
|
|
3
3
|
export default defineRacletteConfig({
|
|
4
4
|
name: "{{PROJECT_NAME_KEBAB}}",
|
|
5
5
|
|
|
6
6
|
services: {
|
|
7
|
-
|
|
7
|
+
frontend: {
|
|
8
8
|
enabled: true,
|
|
9
9
|
port: 8081,
|
|
10
10
|
},
|
|
11
|
-
|
|
11
|
+
backend: {
|
|
12
12
|
enabled: true,
|
|
13
13
|
port: 8082,
|
|
14
|
-
enableDebug:
|
|
14
|
+
enableDebug: process.env.ENABLE_DEBUG,
|
|
15
15
|
},
|
|
16
16
|
mongodb: {
|
|
17
17
|
name: "raclette-mongodb",
|
|
@@ -20,26 +20,34 @@ export default defineRacletteConfig({
|
|
|
20
20
|
volume: "raclette-mongodb",
|
|
21
21
|
databaseName: "raclette",
|
|
22
22
|
},
|
|
23
|
-
|
|
24
|
-
name: "raclette-
|
|
25
|
-
volume: "raclette-
|
|
23
|
+
cache: {
|
|
24
|
+
name: "raclette-cache",
|
|
25
|
+
volume: "raclette-cache",
|
|
26
26
|
enabled: true,
|
|
27
27
|
port: 6379,
|
|
28
28
|
},
|
|
29
|
-
{
|
|
30
|
-
dashboard: {
|
|
29
|
+
workbench: {
|
|
31
30
|
enabled: true,
|
|
32
31
|
portFrontend: 8083,
|
|
33
32
|
portBackend: 8084,
|
|
33
|
+
debugPort: process.env.ENABLE_DEBUG ? 9228 : undefined,
|
|
34
34
|
withLogs: false,
|
|
35
35
|
},
|
|
36
|
-
|
|
36
|
+
},
|
|
37
|
+
|
|
38
|
+
env: {
|
|
39
|
+
development: {
|
|
40
|
+
RACLETTE_DEBUG_MODE: true,
|
|
41
|
+
},
|
|
37
42
|
},
|
|
38
43
|
|
|
39
44
|
frontend: {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
plugins: ["vue-router"],
|
|
45
|
+
meta: {
|
|
46
|
+
title: "{{PROJECT_NAME}}",
|
|
43
47
|
},
|
|
44
48
|
},
|
|
49
|
+
|
|
50
|
+
eslint: {
|
|
51
|
+
useRecommended: {{USE_RECOMMENDED_ESLINT}}
|
|
52
|
+
}
|
|
45
53
|
})
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="tw-p-4">
|
|
3
|
+
<h1>Welcome to the <span class="raclette">raclette</span> boilerplate!</h1>
|
|
4
|
+
|
|
5
|
+
<p>
|
|
6
|
+
<span>Get all the information you need from our </span>
|
|
7
|
+
<a
|
|
8
|
+
href="https://docs.raclettejs.com/"
|
|
9
|
+
taret="_blank"
|
|
10
|
+
>docs</a
|
|
11
|
+
> or visit your
|
|
12
|
+
<a href="http://localhost:8083">
|
|
13
|
+
workbench
|
|
14
|
+
</a> to configure your first page.
|
|
15
|
+
</p>
|
|
16
|
+
</div>
|
|
17
|
+
</template>
|
package/dist/index.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
3
|
-
var Ae=Object.create;var z=Object.defineProperty;var Be=Object.getOwnPropertyDescriptor;var Ie=Object.getOwnPropertyNames;var Te=Object.getPrototypeOf,_e=Object.prototype.hasOwnProperty;var U=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var b=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Fe=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ie(t))!_e.call(e,o)&&o!==n&&z(e,o,{get:()=>t[o],enumerable:!(r=Be(t,o))||r.enumerable});return e};var W=(e,t,n)=>(n=e!=null?Ae(Te(e)):{},Fe(t||!e||!e.__esModule?z(n,"default",{value:e,enumerable:!0}):n,e));var V=b((dt,Y)=>{"use strict";Y.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var I=b((pt,X)=>{var C=V(),K={};for(let e of Object.keys(C))K[C[e]]=e;var i={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};X.exports=i;for(let e of Object.keys(i)){if(!("channels"in i[e]))throw new Error("missing channels property: "+e);if(!("labels"in i[e]))throw new Error("missing channel labels property: "+e);if(i[e].labels.length!==i[e].channels)throw new Error("channel and label counts mismatch: "+e);let{channels:t,labels:n}=i[e];delete i[e].channels,delete i[e].labels,Object.defineProperty(i[e],"channels",{value:t}),Object.defineProperty(i[e],"labels",{value:n})}i.rgb.hsl=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,o=Math.min(t,n,r),s=Math.max(t,n,r),l=s-o,c,a;s===o?c=0:t===s?c=(n-r)/l:n===s?c=2+(r-t)/l:r===s&&(c=4+(t-n)/l),c=Math.min(c*60,360),c<0&&(c+=360);let u=(o+s)/2;return s===o?a=0:u<=.5?a=l/(s+o):a=l/(2-s-o),[c,a*100,u*100]};i.rgb.hsv=function(e){let t,n,r,o,s,l=e[0]/255,c=e[1]/255,a=e[2]/255,u=Math.max(l,c,a),d=u-Math.min(l,c,a),g=function(Pe){return(u-Pe)/6/d+1/2};return d===0?(o=0,s=0):(s=d/u,t=g(l),n=g(c),r=g(a),l===u?o=r-n:c===u?o=1/3+t-r:a===u&&(o=2/3+n-t),o<0?o+=1:o>1&&(o-=1)),[o*360,s*100,u*100]};i.rgb.hwb=function(e){let t=e[0],n=e[1],r=e[2],o=i.rgb.hsl(e)[0],s=1/255*Math.min(t,Math.min(n,r));return r=1-1/255*Math.max(t,Math.max(n,r)),[o,s*100,r*100]};i.rgb.cmyk=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,o=Math.min(1-t,1-n,1-r),s=(1-t-o)/(1-o)||0,l=(1-n-o)/(1-o)||0,c=(1-r-o)/(1-o)||0;return[s*100,l*100,c*100,o*100]};function Se(e,t){return(e[0]-t[0])**2+(e[1]-t[1])**2+(e[2]-t[2])**2}i.rgb.keyword=function(e){let t=K[e];if(t)return t;let n=1/0,r;for(let o of Object.keys(C)){let s=C[o],l=Se(e,s);l<n&&(n=l,r=o)}return r};i.keyword.rgb=function(e){return C[e]};i.rgb.xyz=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255;t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92;let o=t*.4124+n*.3576+r*.1805,s=t*.2126+n*.7152+r*.0722,l=t*.0193+n*.1192+r*.9505;return[o*100,s*100,l*100]};i.rgb.lab=function(e){let t=i.rgb.xyz(e),n=t[0],r=t[1],o=t[2];n/=95.047,r/=100,o/=108.883,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,o=o>.008856?o**(1/3):7.787*o+16/116;let s=116*r-16,l=500*(n-r),c=200*(r-o);return[s,l,c]};i.hsl.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100,o,s,l;if(n===0)return l=r*255,[l,l,l];r<.5?o=r*(1+n):o=r+n-r*n;let c=2*r-o,a=[0,0,0];for(let u=0;u<3;u++)s=t+1/3*-(u-1),s<0&&s++,s>1&&s--,6*s<1?l=c+(o-c)*6*s:2*s<1?l=o:3*s<2?l=c+(o-c)*(2/3-s)*6:l=c,a[u]=l*255;return a};i.hsl.hsv=function(e){let t=e[0],n=e[1]/100,r=e[2]/100,o=n,s=Math.max(r,.01);r*=2,n*=r<=1?r:2-r,o*=s<=1?s:2-s;let l=(r+n)/2,c=r===0?2*o/(s+o):2*n/(r+n);return[t,c*100,l*100]};i.hsv.rgb=function(e){let t=e[0]/60,n=e[1]/100,r=e[2]/100,o=Math.floor(t)%6,s=t-Math.floor(t),l=255*r*(1-n),c=255*r*(1-n*s),a=255*r*(1-n*(1-s));switch(r*=255,o){case 0:return[r,a,l];case 1:return[c,r,l];case 2:return[l,r,a];case 3:return[l,c,r];case 4:return[a,l,r];case 5:return[r,l,c]}};i.hsv.hsl=function(e){let t=e[0],n=e[1]/100,r=e[2]/100,o=Math.max(r,.01),s,l;l=(2-n)*r;let c=(2-n)*o;return s=n*o,s/=c<=1?c:2-c,s=s||0,l/=2,[t,s*100,l*100]};i.hwb.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100,o=n+r,s;o>1&&(n/=o,r/=o);let l=Math.floor(6*t),c=1-r;s=6*t-l,(l&1)!==0&&(s=1-s);let a=n+s*(c-n),u,d,g;switch(l){default:case 6:case 0:u=c,d=a,g=n;break;case 1:u=a,d=c,g=n;break;case 2:u=n,d=c,g=a;break;case 3:u=n,d=a,g=c;break;case 4:u=a,d=n,g=c;break;case 5:u=c,d=n,g=a;break}return[u*255,d*255,g*255]};i.cmyk.rgb=function(e){let t=e[0]/100,n=e[1]/100,r=e[2]/100,o=e[3]/100,s=1-Math.min(1,t*(1-o)+o),l=1-Math.min(1,n*(1-o)+o),c=1-Math.min(1,r*(1-o)+o);return[s*255,l*255,c*255]};i.xyz.rgb=function(e){let t=e[0]/100,n=e[1]/100,r=e[2]/100,o,s,l;return o=t*3.2406+n*-1.5372+r*-.4986,s=t*-.9689+n*1.8758+r*.0415,l=t*.0557+n*-.204+r*1.057,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,l=l>.0031308?1.055*l**(1/2.4)-.055:l*12.92,o=Math.min(Math.max(0,o),1),s=Math.min(Math.max(0,s),1),l=Math.min(Math.max(0,l),1),[o*255,s*255,l*255]};i.xyz.lab=function(e){let t=e[0],n=e[1],r=e[2];t/=95.047,n/=100,r/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116;let o=116*n-16,s=500*(t-n),l=200*(n-r);return[o,s,l]};i.lab.xyz=function(e){let t=e[0],n=e[1],r=e[2],o,s,l;s=(t+16)/116,o=n/500+s,l=s-r/200;let c=s**3,a=o**3,u=l**3;return s=c>.008856?c:(s-16/116)/7.787,o=a>.008856?a:(o-16/116)/7.787,l=u>.008856?u:(l-16/116)/7.787,o*=95.047,s*=100,l*=108.883,[o,s,l]};i.lab.lch=function(e){let t=e[0],n=e[1],r=e[2],o;o=Math.atan2(r,n)*360/2/Math.PI,o<0&&(o+=360);let l=Math.sqrt(n*n+r*r);return[t,l,o]};i.lch.lab=function(e){let t=e[0],n=e[1],o=e[2]/360*2*Math.PI,s=n*Math.cos(o),l=n*Math.sin(o);return[t,s,l]};i.rgb.ansi16=function(e,t=null){let[n,r,o]=e,s=t===null?i.rgb.hsv(e)[2]:t;if(s=Math.round(s/50),s===0)return 30;let l=30+(Math.round(o/255)<<2|Math.round(r/255)<<1|Math.round(n/255));return s===2&&(l+=60),l};i.hsv.ansi16=function(e){return i.rgb.ansi16(i.hsv.rgb(e),e[2])};i.rgb.ansi256=function(e){let t=e[0],n=e[1],r=e[2];return t===n&&n===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)};i.ansi16.rgb=function(e){let t=e%10;if(t===0||t===7)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];let n=(~~(e>50)+1)*.5,r=(t&1)*n*255,o=(t>>1&1)*n*255,s=(t>>2&1)*n*255;return[r,o,s]};i.ansi256.rgb=function(e){if(e>=232){let s=(e-232)*10+8;return[s,s,s]}e-=16;let t,n=Math.floor(e/36)/5*255,r=Math.floor((t=e%36)/6)/5*255,o=t%6/5*255;return[n,r,o]};i.rgb.hex=function(e){let n=(((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255)).toString(16).toUpperCase();return"000000".substring(n.length)+n};i.hex.rgb=function(e){let t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let n=t[0];t[0].length===3&&(n=n.split("").map(c=>c+c).join(""));let r=parseInt(n,16),o=r>>16&255,s=r>>8&255,l=r&255;return[o,s,l]};i.rgb.hcg=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,o=Math.max(Math.max(t,n),r),s=Math.min(Math.min(t,n),r),l=o-s,c,a;return l<1?c=s/(1-l):c=0,l<=0?a=0:o===t?a=(n-r)/l%6:o===n?a=2+(r-t)/l:a=4+(t-n)/l,a/=6,a%=1,[a*360,l*100,c*100]};i.hsl.hcg=function(e){let t=e[1]/100,n=e[2]/100,r=n<.5?2*t*n:2*t*(1-n),o=0;return r<1&&(o=(n-.5*r)/(1-r)),[e[0],r*100,o*100]};i.hsv.hcg=function(e){let t=e[1]/100,n=e[2]/100,r=t*n,o=0;return r<1&&(o=(n-r)/(1-r)),[e[0],r*100,o*100]};i.hcg.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100;if(n===0)return[r*255,r*255,r*255];let o=[0,0,0],s=t%1*6,l=s%1,c=1-l,a=0;switch(Math.floor(s)){case 0:o[0]=1,o[1]=l,o[2]=0;break;case 1:o[0]=c,o[1]=1,o[2]=0;break;case 2:o[0]=0,o[1]=1,o[2]=l;break;case 3:o[0]=0,o[1]=c,o[2]=1;break;case 4:o[0]=l,o[1]=0,o[2]=1;break;default:o[0]=1,o[1]=0,o[2]=c}return a=(1-n)*r,[(n*o[0]+a)*255,(n*o[1]+a)*255,(n*o[2]+a)*255]};i.hcg.hsv=function(e){let t=e[1]/100,n=e[2]/100,r=t+n*(1-t),o=0;return r>0&&(o=t/r),[e[0],o*100,r*100]};i.hcg.hsl=function(e){let t=e[1]/100,r=e[2]/100*(1-t)+.5*t,o=0;return r>0&&r<.5?o=t/(2*r):r>=.5&&r<1&&(o=t/(2*(1-r))),[e[0],o*100,r*100]};i.hcg.hwb=function(e){let t=e[1]/100,n=e[2]/100,r=t+n*(1-t);return[e[0],(r-t)*100,(1-r)*100]};i.hwb.hcg=function(e){let t=e[1]/100,r=1-e[2]/100,o=r-t,s=0;return o<1&&(s=(r-o)/(1-o)),[e[0],o*100,s*100]};i.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]};i.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]};i.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]};i.gray.hsl=function(e){return[0,0,e[0]]};i.gray.hsv=i.gray.hsl;i.gray.hwb=function(e){return[0,100,e[0]]};i.gray.cmyk=function(e){return[0,0,0,e[0]]};i.gray.lab=function(e){return[e[0],0,0]};i.gray.hex=function(e){let t=Math.round(e[0]/100*255)&255,r=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(r.length)+r};i.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}});var J=b((bt,H)=>{var E=I();function Ne(){let e={},t=Object.keys(E);for(let n=t.length,r=0;r<n;r++)e[t[r]]={distance:-1,parent:null};return e}function $e(e){let t=Ne(),n=[e];for(t[e].distance=0;n.length;){let r=n.pop(),o=Object.keys(E[r]);for(let s=o.length,l=0;l<s;l++){let c=o[l],a=t[c];a.distance===-1&&(a.distance=t[r].distance+1,a.parent=r,n.unshift(c))}}return t}function qe(e,t){return function(n){return t(e(n))}}function Le(e,t){let n=[t[e].parent,e],r=E[t[e].parent][e],o=t[e].parent;for(;t[o].parent;)n.unshift(t[o].parent),r=qe(E[t[o].parent][o],r),o=t[o].parent;return r.conversion=n,r}H.exports=function(e){let t=$e(e),n={},r=Object.keys(t);for(let o=r.length,s=0;s<o;s++){let l=r[s];t[l].parent!==null&&(n[l]=Le(l,t))}return n}});var Q=b((mt,Z)=>{var T=I(),De=J(),w={},Ge=Object.keys(T);function ze(e){let t=function(...n){let r=n[0];return r==null?r:(r.length>1&&(n=r),e(n))};return"conversion"in e&&(t.conversion=e.conversion),t}function Ue(e){let t=function(...n){let r=n[0];if(r==null)return r;r.length>1&&(n=r);let o=e(n);if(typeof o=="object")for(let s=o.length,l=0;l<s;l++)o[l]=Math.round(o[l]);return o};return"conversion"in e&&(t.conversion=e.conversion),t}Ge.forEach(e=>{w[e]={},Object.defineProperty(w[e],"channels",{value:T[e].channels}),Object.defineProperty(w[e],"labels",{value:T[e].labels});let t=De(e);Object.keys(t).forEach(r=>{let o=t[r];w[e][r]=Ue(o),w[e][r].raw=ze(o)})});Z.exports=w});var se=b((yt,oe)=>{"use strict";var ee=(e,t)=>(...n)=>`\x1B[${e(...n)+t}m`,te=(e,t)=>(...n)=>{let r=e(...n);return`\x1B[${38+t};5;${r}m`},ne=(e,t)=>(...n)=>{let r=e(...n);return`\x1B[${38+t};2;${r[0]};${r[1]};${r[2]}m`},j=e=>e,re=(e,t,n)=>[e,t,n],v=(e,t,n)=>{Object.defineProperty(e,t,{get:()=>{let r=n();return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0}),r},enumerable:!0,configurable:!0})},_,k=(e,t,n,r)=>{_===void 0&&(_=Q());let o=r?10:0,s={};for(let[l,c]of Object.entries(_)){let a=l==="ansi16"?"ansi":l;l===t?s[a]=e(n,o):typeof c=="object"&&(s[a]=e(c[t],o))}return s};function We(){let e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.gray=t.color.blackBright,t.bgColor.bgGray=t.bgColor.bgBlackBright,t.color.grey=t.color.blackBright,t.bgColor.bgGrey=t.bgColor.bgBlackBright;for(let[n,r]of Object.entries(t)){for(let[o,s]of Object.entries(r))t[o]={open:`\x1B[${s[0]}m`,close:`\x1B[${s[1]}m`},r[o]=t[o],e.set(s[0],s[1]);Object.defineProperty(t,n,{value:r,enumerable:!1})}return Object.defineProperty(t,"codes",{value:e,enumerable:!1}),t.color.close="\x1B[39m",t.bgColor.close="\x1B[49m",v(t.color,"ansi",()=>k(ee,"ansi16",j,!1)),v(t.color,"ansi256",()=>k(te,"ansi256",j,!1)),v(t.color,"ansi16m",()=>k(ne,"rgb",re,!1)),v(t.bgColor,"ansi",()=>k(ee,"ansi16",j,!0)),v(t.bgColor,"ansi256",()=>k(te,"ansi256",j,!0)),v(t.bgColor,"ansi16m",()=>k(ne,"rgb",re,!0)),t}Object.defineProperty(oe,"exports",{enumerable:!0,get:We})});var ce=b((wt,le)=>{"use strict";le.exports=(e,t=process.argv)=>{let n=e.startsWith("-")?"":e.length===1?"-":"--",r=t.indexOf(n+e),o=t.indexOf("--");return r!==-1&&(o===-1||r<o)}});var ue=b((vt,ae)=>{"use strict";var Ye=U("os"),ie=U("tty"),p=ce(),{env:f}=process,m;p("no-color")||p("no-colors")||p("color=false")||p("color=never")?m=0:(p("color")||p("colors")||p("color=true")||p("color=always"))&&(m=1);"FORCE_COLOR"in f&&(f.FORCE_COLOR==="true"?m=1:f.FORCE_COLOR==="false"?m=0:m=f.FORCE_COLOR.length===0?1:Math.min(parseInt(f.FORCE_COLOR,10),3));function F(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function S(e,t){if(m===0)return 0;if(p("color=16m")||p("color=full")||p("color=truecolor"))return 3;if(p("color=256"))return 2;if(e&&!t&&m===void 0)return 0;let n=m||0;if(f.TERM==="dumb")return n;if(process.platform==="win32"){let r=Ye.release().split(".");return Number(r[0])>=10&&Number(r[2])>=10586?Number(r[2])>=14931?3:2:1}if("CI"in f)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(r=>r in f)||f.CI_NAME==="codeship"?1:n;if("TEAMCITY_VERSION"in f)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(f.TEAMCITY_VERSION)?1:0;if(f.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in f){let r=parseInt((f.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(f.TERM_PROGRAM){case"iTerm.app":return r>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(f.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(f.TERM)||"COLORTERM"in f?1:n}function Ve(e){let t=S(e,e&&e.isTTY);return F(t)}ae.exports={supportsColor:Ve,stdout:F(S(!0,ie.isatty(1))),stderr:F(S(!0,ie.isatty(2)))}});var he=b((kt,fe)=>{"use strict";var Ke=(e,t,n)=>{let r=e.indexOf(t);if(r===-1)return e;let o=t.length,s=0,l="";do l+=e.substr(s,r-s)+t+n,s=r+o,r=e.indexOf(t,s);while(r!==-1);return l+=e.substr(s),l},Xe=(e,t,n,r)=>{let o=0,s="";do{let l=e[r-1]==="\r";s+=e.substr(o,(l?r-1:r)-o)+t+(l?`\r
|
|
4
|
-
`:`
|
|
5
|
-
`)+n,o=r+1,r=e.indexOf(`
|
|
6
|
-
`,o)}while(r!==-1);return s+=e.substr(o),s};fe.exports={stringReplaceAll:Ke,stringEncaseCRLFWithFirstIndex:Xe}});var me=b((xt,be)=>{"use strict";var He=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,ge=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,Je=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,Ze=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,Qe=new Map([["n",`
|
|
7
|
-
`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function pe(e){let t=e[0]==="u",n=e[1]==="{";return t&&!n&&e.length===5||e[0]==="x"&&e.length===3?String.fromCharCode(parseInt(e.slice(1),16)):t&&n?String.fromCodePoint(parseInt(e.slice(2,-1),16)):Qe.get(e)||e}function et(e,t){let n=[],r=t.trim().split(/\s*,\s*/g),o;for(let s of r){let l=Number(s);if(!Number.isNaN(l))n.push(l);else if(o=s.match(Je))n.push(o[2].replace(Ze,(c,a,u)=>a?pe(a):u));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${e}')`)}return n}function tt(e){ge.lastIndex=0;let t=[],n;for(;(n=ge.exec(e))!==null;){let r=n[1];if(n[2]){let o=et(r,n[2]);t.push([r].concat(o))}else t.push([r])}return t}function de(e,t){let n={};for(let o of t)for(let s of o.styles)n[s[0]]=o.inverse?null:s.slice(1);let r=e;for(let[o,s]of Object.entries(n))if(Array.isArray(s)){if(!(o in r))throw new Error(`Unknown Chalk style: ${o}`);r=s.length>0?r[o](...s):r[o]}return r}be.exports=(e,t)=>{let n=[],r=[],o=[];if(t.replace(He,(s,l,c,a,u,d)=>{if(l)o.push(pe(l));else if(a){let g=o.join("");o=[],r.push(n.length===0?g:de(e,n)(g)),n.push({inverse:c,styles:tt(a)})}else if(u){if(n.length===0)throw new Error("Found extraneous } in Chalk template literal");r.push(de(e,n)(o.join(""))),o=[],n.pop()}else o.push(d)}),r.push(o.join("")),n.length>0){let s=`Chalk template literal is missing ${n.length} closing bracket${n.length===1?"":"s"} (\`}\`)`;throw new Error(s)}return r.join("")}});var G=b((Ct,Ce)=>{"use strict";var O=se(),{stdout:$,stderr:q}=ue(),{stringReplaceAll:nt,stringEncaseCRLFWithFirstIndex:rt}=he(),{isArray:M}=Array,we=["ansi","ansi","ansi256","ansi16m"],x=Object.create(null),ot=(e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let n=$?$.level:0;e.level=t.level===void 0?n:t.level},L=class{constructor(t){return ve(t)}},ve=e=>{let t={};return ot(t,e),t.template=(...n)=>xe(t.template,...n),Object.setPrototypeOf(t,R.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},t.template.Instance=L,t.template};function R(e){return ve(e)}for(let[e,t]of Object.entries(O))x[e]={get(){let n=P(this,D(t.open,t.close,this._styler),this._isEmpty);return Object.defineProperty(this,e,{value:n}),n}};x.visible={get(){let e=P(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:e}),e}};var ke=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let e of ke)x[e]={get(){let{level:t}=this;return function(...n){let r=D(O.color[we[t]][e](...n),O.color.close,this._styler);return P(this,r,this._isEmpty)}}};for(let e of ke){let t="bg"+e[0].toUpperCase()+e.slice(1);x[t]={get(){let{level:n}=this;return function(...r){let o=D(O.bgColor[we[n]][e](...r),O.bgColor.close,this._styler);return P(this,o,this._isEmpty)}}}}var st=Object.defineProperties(()=>{},{...x,level:{enumerable:!0,get(){return this._generator.level},set(e){this._generator.level=e}}}),D=(e,t,n)=>{let r,o;return n===void 0?(r=e,o=t):(r=n.openAll+e,o=t+n.closeAll),{open:e,close:t,openAll:r,closeAll:o,parent:n}},P=(e,t,n)=>{let r=(...o)=>M(o[0])&&M(o[0].raw)?ye(r,xe(r,...o)):ye(r,o.length===1?""+o[0]:o.join(" "));return Object.setPrototypeOf(r,st),r._generator=e,r._styler=t,r._isEmpty=n,r},ye=(e,t)=>{if(e.level<=0||!t)return e._isEmpty?"":t;let n=e._styler;if(n===void 0)return t;let{openAll:r,closeAll:o}=n;if(t.indexOf("\x1B")!==-1)for(;n!==void 0;)t=nt(t,n.close,n.open),n=n.parent;let s=t.indexOf(`
|
|
8
|
-
`);return s!==-1&&(t=rt(t,o,r,s)),r+t+o},N,xe=(e,...t)=>{let[n]=t;if(!M(n)||!M(n.raw))return t.join(" ");let r=t.slice(1),o=[n.raw[0]];for(let s=1;s<n.length;s++)o.push(String(r[s-1]).replace(/[{}\\]/g,"\\$&"),String(n.raw[s]));return N===void 0&&(N=me()),N(e,o.join(""))};Object.defineProperties(R.prototype,x);var A=R();A.supportsColor=$;A.stderr=R({level:q?q.level:0});A.stderr.supportsColor=q;Ce.exports=A});var Me=W(G(),1);import{Command as ht}from"commander";var h=W(G(),1);import{input as Oe,confirm as Ee}from"@inquirer/prompts";import y from"fs-extra";import B from"path";var je=async(e,t=!1)=>{let n;t?n=await lt(e):n={projectName:e||"my-raclette-app",includeDashboard:!0},console.log(h.default.blue(`\u{1F9C0} Creating Raclette app: ${n.projectName}`));let r=B.resolve(process.cwd(),n.projectName);await y.pathExists(r)&&(console.error(h.default.red(`Directory ${n.projectName} already exists!`)),process.exit(1)),await y.ensureDir(r),await ct(r,n),console.log(h.default.green("\u2705 Raclette app created successfully!")),console.log(h.default.blue(`
|
|
9
|
-
Next steps:`)),console.log(h.default.white(` cd ${n.projectName}`)),console.log(h.default.white(" yarn install")),console.log(h.default.white(" yarn dev")),console.log(h.default.white(`
|
|
10
|
-
Happy coding! \u{1F9C0}`))},lt=async e=>{console.log(h.default.blue(`\u{1F9C0} Welcome to Raclette App Interactive Setup!
|
|
11
|
-
`));let t=await Oe({message:"What is your project name?",default:e||"my-raclette-app",validate:l=>l.trim()?!0:"Project name is required"}),n=await Oe({message:"Enter your GitLab deploy token for .npmrc (leave empty to skip, but 'yarn install' won't work):",validate:l=>l&&!l.match(/^[a-zA-Z0-9_-]+$/)?"Deploy token should only contain alphanumeric characters, hyphens, and underscores":!0}),r=await Ee({message:"Do you want to include the raclette dashboard (highly recommended)?",default:!0}),o={projectName:t,deployToken:n||void 0,includeDashboard:r};return console.log(h.default.blue(`
|
|
12
|
-
\u{1F4CB} Configuration Summary:`)),console.log(h.default.white(` Project: ${o.projectName}`)),console.log(h.default.white(` Deploy Token: ${o.deployToken?"\u2713 Provided":"\u2717 Skipped"}`)),console.log(h.default.white(` Include raclette dashboard: ${o.includeDashboard}`)),await Ee({message:"Proceed with this configuration?",default:!0})||(console.log(h.default.yellow("Setup cancelled.")),process.exit(0)),o},ct=async(e,t)=>{let n=B.join(import.meta.dirname,"templates");console.log(h.default.blue("\u{1F4C1} Copying template files...")),await y.copy(n,e),await it(e,t)},it=async(e,t)=>{console.log(h.default.blue("\u{1F504} Processing template files..."));let n=await at(e);for(let r of n){let o=B.extname(r);[".png",".jpg",".jpeg",".gif",".ico",".woff",".woff2",".ttf",".eot"].includes(o)||await ut(r,t)}},at=async e=>{let t=[],n=async r=>{let o=await y.readdir(r);for(let s of o){let l=B.join(r,s);(await y.stat(l)).isDirectory()?s!=="node_modules"&&s!==".git"&&!s.startsWith(".")&&await n(l):t.push(l)}};return await n(e),t},ut=async(e,t)=>{if(!await y.pathExists(e))return;let n=await y.readFile(e,"utf-8");n=n.replace(/{{PROJECT_NAME}}/g,t.projectName),n=n.replace(/{{PROJECT_NAME_KEBAB}}/g,ft(t.projectName)),n=n.replace(/{{DEPLOY_TOKEN}}/g,t.deployToken||""),t.includeDashboard!==void 0&&(n=n.replace(/{{#if INCLUDE_DASHBOARD}}([\s\S]*?){{\/if}}/g,t.includeDashboard?"$1":""),n=n.replace(/^\s*\n/gm,"")),await y.writeFile(e,n)},ft=e=>e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[\s_]+/g,"-").toLowerCase();var Re=new ht;Re.name("create-raclette-app").description("Create a new raclette application - interactive prompts").version("1.0.0").action(async()=>{try{await je(void 0,!0)}catch(e){console.error(Me.default.red("Error creating Raclette app:"),e),process.exit(1)}});Re.parse();
|
package/templates/.npmrc
DELETED
package/templates/.yarnrc
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"@raclettejs:registry" "https://git.pacifico.cloud/api/v4/packages/npm/"
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="tw-p-4">
|
|
3
|
-
<h1>Welcome to the Raclette Boilerplate!</h1>
|
|
4
|
-
|
|
5
|
-
<p>
|
|
6
|
-
<span>Check out our awesome</span>
|
|
7
|
-
<span> </span>
|
|
8
|
-
<a
|
|
9
|
-
href="https://docs.raclettejs.com/guide/directory-structure/eslint-config"
|
|
10
|
-
taret="_blank"
|
|
11
|
-
>docs</a
|
|
12
|
-
>
|
|
13
|
-
</p>
|
|
14
|
-
</div>
|
|
15
|
-
</template>
|