balistica 0.0.1-alpha.1

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/Cargo.lock ADDED
@@ -0,0 +1,7 @@
1
+ # This file is automatically @generated by Cargo.
2
+ # It is not intended for manual editing.
3
+ version = 4
4
+
5
+ [[package]]
6
+ name = "cli"
7
+ version = "0.1.0"
package/Cargo.toml ADDED
@@ -0,0 +1,3 @@
1
+ [workspace]
2
+ resolver = "2"
3
+ members = ["cli"]
package/README.md ADDED
@@ -0,0 +1,61 @@
1
+ # Balistica 🎯
2
+
3
+ A high-performance, YAML-configured load-testing tool. Built with a fast core **Rust** engine, distributed globally via **npm** as a zero-dependency native CLI wrapper, and managed via an **Astro** web dashboard.
4
+
5
+
6
+ ## 📖 How it Works
7
+
8
+ Unlike traditional load-testing libraries, **Balistica is not a JavaScript library**. It has:
9
+ - **No JS imports** or runtime integration.
10
+ - **No `.js` source files** for writing scenarios.
11
+
12
+ Instead, scenarios and load configurations are defined entirely in **YAML**. The npm package packages and distributes pre-compiled platform-specific Rust binaries, allowing you to run performance tests instantly via `npx` or a global cli installation.
13
+
14
+ ## 📂 Project Structure
15
+
16
+ ```text
17
+ balistica/
18
+ ├── cli/ # Core Rust command line interface & engine
19
+ ├── npm/ # NPM wrapper for global CLI distribution
20
+ │ ├── platforms/ # Platform-specific pre-compiled native binaries
21
+ │ └── wrapper/ # Package manifest pointing to bin wrapper (no JS logic)
22
+ ├── web/ # Interactive web dashboard (Astro project)
23
+ ├── Cargo.toml # Rust workspace configuration
24
+ ├── package.json # PNPM workspace configuration
25
+ └── pnpm-workspace.yaml # Workspace mapping for Node/Web packages
26
+ ```
27
+
28
+
29
+
30
+ ## 🚀 Execution & Usage
31
+
32
+ ### 1. Running via NPM / NPX
33
+
34
+ You can run the CLI without installing anything globally by using `npx`:
35
+
36
+ ```bash
37
+ npx balistica run balistica.yaml
38
+ ```
39
+
40
+ Or install it globally:
41
+
42
+ ```bash
43
+ npm install -g balistica
44
+ balistica run balistica.yaml
45
+ ```
46
+
47
+ ---
48
+
49
+ ### 2. Astro Web Dashboard (`web/`)
50
+
51
+ Balistica features an optional web dashboard to configure your YAML files visually and view live test reports.
52
+
53
+ ```bash
54
+ # Install root monorepo dependencies
55
+ pnpm install
56
+
57
+ # Start the Astro dashboard
58
+ pnpm --filter web dev
59
+ ```
60
+
61
+ Visit `http://localhost:4321` in your browser. From the dashboard, you can load local YAML configurations, trigger test executions, and view real-time latency graphs (p50, p95, p99) and throughput.
package/cli/Cargo.toml ADDED
@@ -0,0 +1,6 @@
1
+ [package]
2
+ name = "cli"
3
+ version = "0.1.0"
4
+ edition = "2024"
5
+
6
+ [dependencies]
@@ -0,0 +1,3 @@
1
+ fn main() {
2
+ println!("Hello, world!");
3
+ }
File without changes
File without changes
package/package.json ADDED
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "balistica",
3
+ "version": "0.0.1-alpha.1",
4
+ "description": "",
5
+ "main": "index.js",
6
+ "keywords": [],
7
+ "author": "",
8
+ "license": "ISC",
9
+ "devEngines": {
10
+ "packageManager": {
11
+ "name": "pnpm",
12
+ "version": "^11.3.0",
13
+ "onFail": "download"
14
+ }
15
+ },
16
+ "type": "module",
17
+ "scripts": {
18
+ "test": "echo \"Error: no test specified\" && exit 1"
19
+ }
20
+ }
@@ -0,0 +1,14 @@
1
+ packages:
2
+ - "npm/**"
3
+ - "web/**"
4
+ allowBuilds:
5
+ esbuild: true
6
+ sharp: true
7
+ minimumReleaseAgeExclude:
8
+ - astro@6.3.8
9
+ nodeLinker: hoisted
10
+ preferWorkspacePackages: true
11
+ publicHoistPattern:
12
+ - '*'
13
+ sharedWorkspaceLockfile: true
14
+ strictPeerDependencies: false
@@ -0,0 +1,4 @@
1
+ {
2
+ "recommendations": ["astro-build.astro-vscode"],
3
+ "unwantedRecommendations": []
4
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "version": "0.2.0",
3
+ "configurations": [
4
+ {
5
+ "command": "./node_modules/.bin/astro dev",
6
+ "name": "Development server",
7
+ "request": "launch",
8
+ "type": "node-terminal"
9
+ }
10
+ ]
11
+ }
package/web/README.md ADDED
@@ -0,0 +1,46 @@
1
+ # Astro Starter Kit: Basics
2
+
3
+ ```sh
4
+ pnpm create astro@latest -- --template basics
5
+ ```
6
+
7
+ > 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun!
8
+
9
+ ## 🚀 Project Structure
10
+
11
+ Inside of your Astro project, you'll see the following folders and files:
12
+
13
+ ```text
14
+ /
15
+ ├── public/
16
+ │ └── favicon.svg
17
+ ├── src
18
+ │   ├── assets
19
+ │   │   └── astro.svg
20
+ │   ├── components
21
+ │   │   └── Welcome.astro
22
+ │   ├── layouts
23
+ │   │   └── Layout.astro
24
+ │   └── pages
25
+ │   └── index.astro
26
+ └── package.json
27
+ ```
28
+
29
+ To learn more about the folder structure of an Astro project, refer to [our guide on project structure](https://docs.astro.build/en/basics/project-structure/).
30
+
31
+ ## 🧞 Commands
32
+
33
+ All commands are run from the root of the project, from a terminal:
34
+
35
+ | Command | Action |
36
+ | :------------------------ | :----------------------------------------------- |
37
+ | `pnpm install` | Installs dependencies |
38
+ | `pnpm dev` | Starts local dev server at `localhost:4321` |
39
+ | `pnpm build` | Build your production site to `./dist/` |
40
+ | `pnpm preview` | Preview your build locally, before deploying |
41
+ | `pnpm astro ...` | Run CLI commands like `astro add`, `astro check` |
42
+ | `pnpm astro -- --help` | Get help using the Astro CLI |
43
+
44
+ ## 👀 Want to learn more?
45
+
46
+ Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat).
@@ -0,0 +1,5 @@
1
+ // @ts-check
2
+ import { defineConfig } from 'astro/config';
3
+
4
+ // https://astro.build/config
5
+ export default defineConfig({});
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "",
3
+ "type": "module",
4
+ "version": "0.0.1",
5
+ "engines": {
6
+ "node": ">=22.12.0"
7
+ },
8
+ "scripts": {
9
+ "dev": "astro dev",
10
+ "build": "astro build",
11
+ "preview": "astro preview",
12
+ "astro": "astro"
13
+ },
14
+ "dependencies": {
15
+ "astro": "^6.3.8"
16
+ }
17
+ }
Binary file
@@ -0,0 +1,9 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 128 128">
2
+ <path d="M50.4 78.5a75.1 75.1 0 0 0-28.5 6.9l24.2-65.7c.7-2 1.9-3.2 3.4-3.2h29c1.5 0 2.7 1.2 3.4 3.2l24.2 65.7s-11.6-7-28.5-7L67 45.5c-.4-1.7-1.6-2.8-2.9-2.8-1.3 0-2.5 1.1-2.9 2.7L50.4 78.5Zm-1.1 28.2Zm-4.2-20.2c-2 6.6-.6 15.8 4.2 20.2a17.5 17.5 0 0 1 .2-.7 5.5 5.5 0 0 1 5.7-4.5c2.8.1 4.3 1.5 4.7 4.7.2 1.1.2 2.3.2 3.5v.4c0 2.7.7 5.2 2.2 7.4a13 13 0 0 0 5.7 4.9v-.3l-.2-.3c-1.8-5.6-.5-9.5 4.4-12.8l1.5-1a73 73 0 0 0 3.2-2.2 16 16 0 0 0 6.8-11.4c.3-2 .1-4-.6-6l-.8.6-1.6 1a37 37 0 0 1-22.4 2.7c-5-.7-9.7-2-13.2-6.2Z" />
3
+ <style>
4
+ path { fill: #000; }
5
+ @media (prefers-color-scheme: dark) {
6
+ path { fill: #FFF; }
7
+ }
8
+ </style>
9
+ </svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" width="115" height="48"><path fill="#17191E" d="M7.77 36.35C6.4 35.11 6 32.51 6.57 30.62c.99 1.2 2.35 1.57 3.75 1.78 2.18.33 4.31.2 6.33-.78.23-.12.44-.27.7-.42.18.55.23 1.1.17 1.67a4.56 4.56 0 0 1-1.94 3.23c-.43.32-.9.61-1.34.91-1.38.94-1.76 2.03-1.24 3.62l.05.17a3.63 3.63 0 0 1-1.6-1.38 3.87 3.87 0 0 1-.63-2.1c0-.37 0-.74-.05-1.1-.13-.9-.55-1.3-1.33-1.32a1.56 1.56 0 0 0-1.63 1.26c0 .06-.03.12-.05.2Z"/><path fill="url(#a)" d="M7.77 36.35C6.4 35.11 6 32.51 6.57 30.62c.99 1.2 2.35 1.57 3.75 1.78 2.18.33 4.31.2 6.33-.78.23-.12.44-.27.7-.42.18.55.23 1.1.17 1.67a4.56 4.56 0 0 1-1.94 3.23c-.43.32-.9.61-1.34.91-1.38.94-1.76 2.03-1.24 3.62l.05.17a3.63 3.63 0 0 1-1.6-1.38 3.87 3.87 0 0 1-.63-2.1c0-.37 0-.74-.05-1.1-.13-.9-.55-1.3-1.33-1.32a1.56 1.56 0 0 0-1.63 1.26c0 .06-.03.12-.05.2Z"/><path fill="#17191E" d="M.02 30.31s4.02-1.95 8.05-1.95l3.04-9.4c.11-.45.44-.76.82-.76.37 0 .7.31.82.76l3.04 9.4c4.77 0 8.05 1.95 8.05 1.95L17 11.71c-.2-.56-.53-.91-.98-.91H7.83c-.44 0-.76.35-.97.9L.02 30.31Zm42.37-5.97c0 1.64-2.05 2.62-4.88 2.62-1.85 0-2.5-.45-2.5-1.41 0-1 .8-1.49 2.65-1.49 1.67 0 3.09.03 4.73.23v.05Zm.03-2.04a21.37 21.37 0 0 0-4.37-.36c-5.32 0-7.82 1.25-7.82 4.18 0 3.04 1.71 4.2 5.68 4.2 3.35 0 5.63-.84 6.46-2.92h.14c-.03.5-.05 1-.05 1.4 0 1.07.18 1.16 1.06 1.16h4.15a16.9 16.9 0 0 1-.36-4c0-1.67.06-2.93.06-4.62 0-3.45-2.07-5.64-8.56-5.64-2.8 0-5.9.48-8.26 1.19.22.93.54 2.83.7 4.06 2.04-.96 4.95-1.37 7.2-1.37 3.11 0 3.97.71 3.97 2.15v.57Zm11.37 3c-.56.07-1.33.07-2.12.07-.83 0-1.6-.03-2.12-.1l-.02.58c0 2.85 1.87 4.52 8.45 4.52 6.2 0 8.2-1.64 8.2-4.55 0-2.74-1.33-4.09-7.2-4.39-4.58-.2-4.99-.7-4.99-1.28 0-.66.59-1 3.65-1 3.18 0 4.03.43 4.03 1.35v.2a46.13 46.13 0 0 1 4.24.03l.02-.55c0-3.36-2.8-4.46-8.2-4.46-6.08 0-8.13 1.49-8.13 4.39 0 2.6 1.64 4.23 7.48 4.48 4.3.14 4.77.62 4.77 1.28 0 .7-.7 1.03-3.71 1.03-3.47 0-4.35-.48-4.35-1.47v-.13Zm19.82-12.05a17.5 17.5 0 0 1-6.24 3.48c.03.84.03 2.4.03 3.24l1.5.02c-.02 1.63-.04 3.6-.04 4.9 0 3.04 1.6 5.32 6.58 5.32 2.1 0 3.5-.23 5.23-.6a43.77 43.77 0 0 1-.46-4.13c-1.03.34-2.34.53-3.78.53-2 0-2.82-.55-2.82-2.13 0-1.37 0-2.65.03-3.84 2.57.02 5.13.07 6.64.11-.02-1.18.03-2.9.1-4.04-2.2.04-4.65.07-6.68.07l.07-2.93h-.16Zm13.46 6.04a767.33 767.33 0 0 1 .07-3.18H82.6c.07 1.96.07 3.98.07 6.92 0 2.95-.03 4.99-.07 6.93h5.18c-.09-1.37-.11-3.68-.11-5.65 0-3.1 1.26-4 4.12-4 1.33 0 2.28.16 3.1.46.03-1.16.26-3.43.4-4.43-.86-.25-1.81-.41-2.96-.41-2.46-.03-4.26.98-5.1 3.38l-.17-.02Zm22.55 3.65c0 2.5-1.8 3.66-4.64 3.66-2.81 0-4.61-1.1-4.61-3.66s1.82-3.52 4.61-3.52c2.82 0 4.64 1.03 4.64 3.52Zm4.71-.11c0-4.96-3.87-7.18-9.35-7.18-5.5 0-9.23 2.22-9.23 7.18 0 4.94 3.49 7.59 9.21 7.59 5.77 0 9.37-2.65 9.37-7.6Z"/><defs><linearGradient id="a" x1="6.33" x2="19.43" y1="40.8" y2="34.6" gradientUnits="userSpaceOnUse"><stop stop-color="#D83333"/><stop offset="1" stop-color="#F041FF"/></linearGradient></defs></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1440" height="1024" fill="none"><path fill="url(#a)" fill-rule="evenodd" d="M-217.58 475.75c91.82-72.02 225.52-29.38 341.2-44.74C240 415.56 372.33 315.14 466.77 384.9c102.9 76.02 44.74 246.76 90.31 366.31 29.83 78.24 90.48 136.14 129.48 210.23 57.92 109.99 169.67 208.23 155.9 331.77-13.52 121.26-103.42 264.33-224.23 281.37-141.96 20.03-232.72-220.96-374.06-196.99-151.7 25.73-172.68 330.24-325.85 315.72-128.6-12.2-110.9-230.73-128.15-358.76-12.16-90.14 65.87-176.25 44.1-264.57-26.42-107.2-167.12-163.46-176.72-273.45-10.15-116.29 33.01-248.75 124.87-320.79Z" clip-rule="evenodd" style="opacity:.154"/><path fill="url(#b)" fill-rule="evenodd" d="M1103.43 115.43c146.42-19.45 275.33-155.84 413.5-103.59 188.09 71.13 409 212.64 407.06 413.88-1.94 201.25-259.28 278.6-414.96 405.96-130 106.35-240.24 294.39-405.6 265.3-163.7-28.8-161.93-274.12-284.34-386.66-134.95-124.06-436-101.46-445.82-284.6-9.68-180.38 247.41-246.3 413.54-316.9 101.01-42.93 207.83 21.06 316.62 6.61Z" clip-rule="evenodd" style="opacity:.154"/><defs><linearGradient id="b" x1="373" x2="1995.44" y1="1100" y2="118.03" gradientUnits="userSpaceOnUse"><stop stop-color="#D83333"/><stop offset="1" stop-color="#F041FF"/></linearGradient><linearGradient id="a" x1="107.37" x2="1130.66" y1="1993.35" y2="1026.31" gradientUnits="userSpaceOnUse"><stop stop-color="#3245FF"/><stop offset="1" stop-color="#BC52EE"/></linearGradient></defs></svg>
@@ -0,0 +1,210 @@
1
+ ---
2
+ import astroLogo from '../assets/astro.svg';
3
+ import background from '../assets/background.svg';
4
+ ---
5
+
6
+ <div id="container">
7
+ <img id="background" src={background.src} alt="" fetchpriority="high" />
8
+ <main>
9
+ <section id="hero">
10
+ <a href="https://astro.build"
11
+ ><img src={astroLogo.src} width="115" height="48" alt="Astro Homepage" /></a
12
+ >
13
+ <h1>
14
+ To get started, open the <code><pre>src/pages</pre></code> directory in your project.
15
+ </h1>
16
+ <section id="links">
17
+ <a class="button" href="https://docs.astro.build">Read our docs</a>
18
+ <a href="https://astro.build/chat"
19
+ >Join our Discord <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 127.14 96.36"
20
+ ><path
21
+ fill="currentColor"
22
+ d="M107.7 8.07A105.15 105.15 0 0 0 81.47 0a72.06 72.06 0 0 0-3.36 6.83 97.68 97.68 0 0 0-29.11 0A72.37 72.37 0 0 0 45.64 0a105.89 105.89 0 0 0-26.25 8.09C2.79 32.65-1.71 56.6.54 80.21a105.73 105.73 0 0 0 32.17 16.15 77.7 77.7 0 0 0 6.89-11.11 68.42 68.42 0 0 1-10.85-5.18c.91-.66 1.8-1.34 2.66-2a75.57 75.57 0 0 0 64.32 0c.87.71 1.76 1.39 2.66 2a68.68 68.68 0 0 1-10.87 5.19 77 77 0 0 0 6.89 11.1 105.25 105.25 0 0 0 32.19-16.14c2.64-27.38-4.51-51.11-18.9-72.15ZM42.45 65.69C36.18 65.69 31 60 31 53s5-12.74 11.43-12.74S54 46 53.89 53s-5.05 12.69-11.44 12.69Zm42.24 0C78.41 65.69 73.25 60 73.25 53s5-12.74 11.44-12.74S96.23 46 96.12 53s-5.04 12.69-11.43 12.69Z"
23
+ ></path></svg
24
+ >
25
+ </a>
26
+ </section>
27
+ </section>
28
+ </main>
29
+
30
+ <a href="https://astro.build/blog/astro-6-beta/" id="news" class="box">
31
+ <svg width="32" height="32" fill="none" xmlns="http://www.w3.org/2000/svg"
32
+ ><path
33
+ d="M24.667 12c1.333 1.414 2 3.192 2 5.334 0 4.62-4.934 5.7-7.334 12C18.444 28.567 18 27.456 18 26c0-4.642 6.667-7.053 6.667-14Zm-5.334-5.333c1.6 1.65 2.4 3.43 2.4 5.333 0 6.602-8.06 7.59-6.4 17.334C13.111 27.787 12 25.564 12 22.666c0-4.434 7.333-8 7.333-16Zm-6-5.333C15.111 3.555 16 5.556 16 7.333c0 8.333-11.333 10.962-5.333 22-3.488-.774-6-4-6-8 0-8.667 8.666-10 8.666-20Z"
34
+ fill="#111827"></path></svg
35
+ >
36
+ <h2>What's New in Astro 6.0?</h2>
37
+ <p>
38
+ Redesigned dev server, fonts, live collections, built-in CSP support, and more! Click to
39
+ explore Astro 6.0's new features.
40
+ </p>
41
+ </a>
42
+ </div>
43
+
44
+ <style>
45
+ #background {
46
+ position: fixed;
47
+ top: 0;
48
+ left: 0;
49
+ width: 100%;
50
+ height: 100%;
51
+ z-index: -1;
52
+ filter: blur(100px);
53
+ }
54
+
55
+ #container {
56
+ font-family: Inter, Roboto, 'Helvetica Neue', 'Arial Nova', 'Nimbus Sans', Arial, sans-serif;
57
+ height: 100%;
58
+ }
59
+
60
+ main {
61
+ height: 100%;
62
+ display: flex;
63
+ justify-content: center;
64
+ }
65
+
66
+ #hero {
67
+ display: flex;
68
+ align-items: start;
69
+ flex-direction: column;
70
+ justify-content: center;
71
+ padding: 16px;
72
+ }
73
+
74
+ h1 {
75
+ font-size: 22px;
76
+ margin-top: 0.25em;
77
+ }
78
+
79
+ #links {
80
+ display: flex;
81
+ gap: 16px;
82
+ }
83
+
84
+ #links a {
85
+ display: flex;
86
+ align-items: center;
87
+ padding: 10px 12px;
88
+ color: #111827;
89
+ text-decoration: none;
90
+ transition: color 0.2s;
91
+ }
92
+
93
+ #links a:hover {
94
+ color: rgb(78, 80, 86);
95
+ }
96
+
97
+ #links a svg {
98
+ height: 1em;
99
+ margin-left: 8px;
100
+ }
101
+
102
+ #links a.button {
103
+ color: white;
104
+ background: linear-gradient(83.21deg, #3245ff 0%, #bc52ee 100%);
105
+ box-shadow:
106
+ inset 0 0 0 1px rgba(255, 255, 255, 0.12),
107
+ inset 0 -2px 0 rgba(0, 0, 0, 0.24);
108
+ border-radius: 10px;
109
+ }
110
+
111
+ #links a.button:hover {
112
+ color: rgb(230, 230, 230);
113
+ box-shadow: none;
114
+ }
115
+
116
+ pre {
117
+ font-family:
118
+ ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, 'DejaVu Sans Mono',
119
+ monospace;
120
+ font-weight: normal;
121
+ background: linear-gradient(14deg, #d83333 0%, #f041ff 100%);
122
+ -webkit-background-clip: text;
123
+ -webkit-text-fill-color: transparent;
124
+ background-clip: text;
125
+ margin: 0;
126
+ }
127
+
128
+ h2 {
129
+ margin: 0 0 1em;
130
+ font-weight: normal;
131
+ color: #111827;
132
+ font-size: 20px;
133
+ }
134
+
135
+ p {
136
+ color: #4b5563;
137
+ font-size: 16px;
138
+ line-height: 24px;
139
+ letter-spacing: -0.006em;
140
+ margin: 0;
141
+ }
142
+
143
+ code {
144
+ display: inline-block;
145
+ background:
146
+ linear-gradient(66.77deg, #f3cddd 0%, #f5cee7 100%) padding-box,
147
+ linear-gradient(155deg, #d83333 0%, #f041ff 18%, #f5cee7 45%) border-box;
148
+ border-radius: 8px;
149
+ border: 1px solid transparent;
150
+ padding: 6px 8px;
151
+ }
152
+
153
+ .box {
154
+ padding: 16px;
155
+ background: rgba(255, 255, 255, 1);
156
+ border-radius: 16px;
157
+ border: 1px solid white;
158
+ }
159
+
160
+ #news {
161
+ position: absolute;
162
+ bottom: 16px;
163
+ right: 16px;
164
+ max-width: 300px;
165
+ text-decoration: none;
166
+ transition: background 0.2s;
167
+ backdrop-filter: blur(50px);
168
+ }
169
+
170
+ #news:hover {
171
+ background: rgba(255, 255, 255, 0.55);
172
+ }
173
+
174
+ @media screen and (max-height: 368px) {
175
+ #news {
176
+ display: none;
177
+ }
178
+ }
179
+
180
+ @media screen and (max-width: 768px) {
181
+ #container {
182
+ display: flex;
183
+ flex-direction: column;
184
+ }
185
+
186
+ #hero {
187
+ display: block;
188
+ padding-top: 10%;
189
+ }
190
+
191
+ #links {
192
+ flex-wrap: wrap;
193
+ }
194
+
195
+ #links a.button {
196
+ padding: 14px 18px;
197
+ }
198
+
199
+ #news {
200
+ right: 16px;
201
+ left: 16px;
202
+ bottom: 2.5rem;
203
+ max-width: 100%;
204
+ }
205
+
206
+ h1 {
207
+ line-height: 1.5;
208
+ }
209
+ }
210
+ </style>
@@ -0,0 +1,23 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width" />
6
+ <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
7
+ <link rel="icon" href="/favicon.ico" />
8
+ <meta name="generator" content={Astro.generator} />
9
+ <title>Astro Basics</title>
10
+ </head>
11
+ <body>
12
+ <slot />
13
+ </body>
14
+ </html>
15
+
16
+ <style>
17
+ html,
18
+ body {
19
+ margin: 0;
20
+ width: 100%;
21
+ height: 100%;
22
+ }
23
+ </style>
@@ -0,0 +1,11 @@
1
+ ---
2
+ import Welcome from '../components/Welcome.astro';
3
+ import Layout from '../layouts/Layout.astro';
4
+
5
+ // Welcome to Astro! Wondering what to do next? Check out the Astro documentation at https://docs.astro.build
6
+ // Don't want to use any of this? Delete everything in this file, the `assets`, `components`, and `layouts` directories, and start fresh.
7
+ ---
8
+
9
+ <Layout>
10
+ <Welcome />
11
+ </Layout>
@@ -0,0 +1,5 @@
1
+ {
2
+ "extends": "astro/tsconfigs/strict",
3
+ "include": [".astro/types.d.ts", "**/*"],
4
+ "exclude": ["dist"]
5
+ }