Compare commits
No commits in common. "main" and "check-tests" have entirely different histories.
main
...
check-test
8
.Dockerfile
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
FROM gitpod/workspace-node
|
||||||
|
|
||||||
|
# Install latest pnpm
|
||||||
|
RUN curl -fsSL https://get.pnpm.io/install.sh | SHELL=`which bash` bash -
|
||||||
|
|
||||||
|
# Install deno in gitpod
|
||||||
|
RUN curl -fsSL https://deno.land/x/install/install.sh | sh
|
||||||
|
RUN /home/gitpod/.deno/bin/deno completions bash > /home/gitpod/.bashrc.d/90-deno && echo 'export DENO_INSTALL="/home/gitpod/.deno"' >> /home/gitpod/.bashrc.d/90-deno && echo 'export PATH="$DENO_INSTALL/bin:$PATH"' >> /home/gitpod/.bashrc.d/90-deno
|
|
@ -6,7 +6,5 @@
|
||||||
"access": "public",
|
"access": "public",
|
||||||
"baseBranch": "main",
|
"baseBranch": "main",
|
||||||
"updateInternalDependencies": "patch",
|
"updateInternalDependencies": "patch",
|
||||||
"___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": {
|
"ignore": ["@example/*", "@test/*"]
|
||||||
"onlyUpdatePeerDependentsWhenOutOfRange": true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
5
.changeset/cyan-chefs-marry.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
'astro': patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Update vite-jsx-plugin for jsx export
|
|
@ -1,5 +0,0 @@
|
||||||
---
|
|
||||||
'astro': patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Fixed an issue where the transitions router did not work within framework components.
|
|
5
.changeset/four-eggs-compare.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
'astro': minor
|
||||||
|
---
|
||||||
|
|
||||||
|
Adds a new "astro:build:generated" hook that runs after SSG builds finish but **before** build artifacts are cleaned up. This is a very specific use case, "astro:build:done" is probably what you're looking for.
|
5
.changeset/healthy-ears-compete.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
'astro': minor
|
||||||
|
---
|
||||||
|
|
||||||
|
astro-island now correctly passes Uint8Array/Uint16Array/Uint32Array
|
22
.changeset/itchy-tigers-help.md
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
---
|
||||||
|
'@astrojs/preact': minor
|
||||||
|
'astro': patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Shared state in Preact components with signals
|
||||||
|
|
||||||
|
This makes it possible to share client state between Preact islands via signals.
|
||||||
|
|
||||||
|
For example, you can create a signals in an Astro component and then pass it to multiple islands:
|
||||||
|
|
||||||
|
```astro
|
||||||
|
---
|
||||||
|
// Component Imports
|
||||||
|
import Counter from '../components/Counter';
|
||||||
|
import { signal } from '@preact/signals';
|
||||||
|
const count = signal(0);
|
||||||
|
---
|
||||||
|
|
||||||
|
<Count count={count} />
|
||||||
|
<Count count={count} />
|
||||||
|
```
|
49
.changeset/silent-comics-hang.md
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
---
|
||||||
|
'astro': minor
|
||||||
|
---
|
||||||
|
|
||||||
|
Allows Responses to be passed to set:html
|
||||||
|
|
||||||
|
This expands the abilities of `set:html` to ultimate service this use-case:
|
||||||
|
|
||||||
|
```astro
|
||||||
|
<div set:html={fetch('/legacy-post.html')}></div>
|
||||||
|
```
|
||||||
|
|
||||||
|
This means you can take a legacy app that has been statically generated to HTML and directly consume that HTML within your templates. As is always the case with `set:html`, this should only be used on trusted content.
|
||||||
|
|
||||||
|
To make this possible, you can also pass several other types into `set:html` now:
|
||||||
|
|
||||||
|
* `Response` objects, since that is what fetch() returns:
|
||||||
|
```astro
|
||||||
|
<div set:html={new Response('<span>Hello world</span>', {
|
||||||
|
headers: {
|
||||||
|
'content-type': 'text/html'
|
||||||
|
}
|
||||||
|
})}></div>
|
||||||
|
```
|
||||||
|
* `ReadableStream`s:
|
||||||
|
```astro
|
||||||
|
<div set:html={new ReadableStream({
|
||||||
|
start(controller) {
|
||||||
|
controller.enqueue(`<span>read me</span>`);
|
||||||
|
controller.close();
|
||||||
|
}
|
||||||
|
})}></div>
|
||||||
|
```
|
||||||
|
* `AsyncIterable`s:
|
||||||
|
```astro
|
||||||
|
<div set:html={(async function * () {
|
||||||
|
for await (const num of [1, 2, 3, 4, 5]) {
|
||||||
|
yield `<li>${num}</li>`;
|
||||||
|
}
|
||||||
|
})()}>
|
||||||
|
```
|
||||||
|
* `Iterable`s (non-async):
|
||||||
|
```astro
|
||||||
|
<div set:html={(function * () {
|
||||||
|
for (const num of [1, 2, 3, 4, 5]) {
|
||||||
|
yield `<li>${num}</li>`;
|
||||||
|
}
|
||||||
|
})()}>
|
||||||
|
```
|
5
.changeset/sour-steaks-rule.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
'astro': patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Update `astro check` to latest version of the language server
|
|
@ -1,5 +0,0 @@
|
||||||
---
|
|
||||||
'@astrojs/cloudflare': patch
|
|
||||||
---
|
|
||||||
|
|
||||||
fixes `AdvancedRuntime` & `DirectoryRuntime` types to work woth Cloudflare caches
|
|
5
.changeset/violet-tigers-shake.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
'astro': patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Refactor server url logs
|
|
@ -1,13 +0,0 @@
|
||||||
FROM mcr.microsoft.com/devcontainers/javascript-node:0-18
|
|
||||||
|
|
||||||
# Install playwright
|
|
||||||
RUN npm install -g @playwright/test
|
|
||||||
|
|
||||||
# Install latest pnpm
|
|
||||||
RUN npm install -g pnpm
|
|
||||||
|
|
||||||
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
|
|
||||||
&& curl -sSL https://dl.google.com/linux/direct/google-chrome-stable_current_$(dpkg --print-architecture).deb -o /tmp/chrome.deb \
|
|
||||||
&& apt-get -y install /tmp/chrome.deb
|
|
||||||
|
|
||||||
COPY welcome-message.txt /usr/local/etc/vscode-dev-containers/first-run-notice.txt
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Basics",
|
|
||||||
"build": {
|
|
||||||
"dockerfile": "../examples.Dockerfile"
|
|
||||||
},
|
|
||||||
|
|
||||||
"workspaceFolder": "/workspaces/astro/examples/basics",
|
|
||||||
|
|
||||||
"portsAttributes": {
|
|
||||||
"4321": {
|
|
||||||
"label": "Application",
|
|
||||||
"onAutoForward": "openPreview"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"forwardPorts": [4321],
|
|
||||||
|
|
||||||
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
|
|
||||||
|
|
||||||
"waitFor": "postCreateCommand",
|
|
||||||
|
|
||||||
"postAttachCommand": {
|
|
||||||
"Server": "pnpm start --host"
|
|
||||||
},
|
|
||||||
|
|
||||||
"customizations": {
|
|
||||||
"codespaces": {
|
|
||||||
"openFiles": ["src/pages/index.astro"]
|
|
||||||
},
|
|
||||||
"vscode": {
|
|
||||||
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Blog",
|
|
||||||
"build": {
|
|
||||||
"dockerfile": "../examples.Dockerfile"
|
|
||||||
},
|
|
||||||
|
|
||||||
"workspaceFolder": "/workspaces/astro/examples/blog",
|
|
||||||
|
|
||||||
"portsAttributes": {
|
|
||||||
"4321": {
|
|
||||||
"label": "Application",
|
|
||||||
"onAutoForward": "openPreview"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"forwardPorts": [4321],
|
|
||||||
|
|
||||||
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
|
|
||||||
|
|
||||||
"waitFor": "postCreateCommand",
|
|
||||||
|
|
||||||
"postAttachCommand": {
|
|
||||||
"Server": "pnpm start --host"
|
|
||||||
},
|
|
||||||
|
|
||||||
"customizations": {
|
|
||||||
"codespaces": {
|
|
||||||
"openFiles": ["src/pages/index.astro"]
|
|
||||||
},
|
|
||||||
"vscode": {
|
|
||||||
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Component Template",
|
|
||||||
"build": {
|
|
||||||
"dockerfile": "../examples.Dockerfile"
|
|
||||||
},
|
|
||||||
|
|
||||||
"workspaceFolder": "/workspaces/astro/examples/component",
|
|
||||||
|
|
||||||
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
|
|
||||||
|
|
||||||
"waitFor": "postCreateCommand",
|
|
||||||
|
|
||||||
"customizations": {
|
|
||||||
"codespaces": {
|
|
||||||
"openFiles": ["src/MyComponent.astro"]
|
|
||||||
},
|
|
||||||
"vscode": {
|
|
||||||
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,27 +1,26 @@
|
||||||
|
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
|
||||||
|
// https://github.com/microsoft/vscode-dev-containers/tree/v0.238.1/containers/docker-existing-dockerfile
|
||||||
{
|
{
|
||||||
"name": "Contribute to Astro",
|
"name": "Contribute to Astro CodeSpaces",
|
||||||
"build": {
|
|
||||||
"dockerfile": "Dockerfile"
|
|
||||||
},
|
|
||||||
|
|
||||||
"features": {
|
// Sets the run context to one level up instead of the .devcontainer folder.
|
||||||
"ghcr.io/devcontainers/features/desktop-lite:1": {}
|
"context": "..",
|
||||||
},
|
|
||||||
|
|
||||||
"postCreateCommand": "pnpm install && pnpm run build",
|
// Update the 'dockerFile' property if you aren't using the standard 'Dockerfile' filename.
|
||||||
|
"dockerFile": "../.Dockerfile",
|
||||||
|
|
||||||
"waitFor": "postCreateCommand",
|
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
||||||
|
// "forwardPorts": [],
|
||||||
|
|
||||||
"postAttachCommand": {
|
// Uncomment the next line to run commands after the container is created - for example installing curl.
|
||||||
"Astro tests": "pnpm run test"
|
"postCreateCommand": "pnpm install"
|
||||||
},
|
|
||||||
|
|
||||||
"customizations": {
|
// Uncomment when using a ptrace-based debugger like C++, Go, and Rust
|
||||||
"codespaces": {
|
// "runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined" ],
|
||||||
"openFiles": ["README.md", "CONTRIBUTING.md"]
|
|
||||||
},
|
// Uncomment to use the Docker CLI from inside the container. See https://aka.ms/vscode-remote/samples/docker-from-docker.
|
||||||
"vscode": {
|
// "mounts": [ "source=/var/run/docker.sock,target=/var/run/docker.sock,type=bind" ],
|
||||||
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
|
|
||||||
}
|
// Uncomment to connect as a non-root user if you've added one. See https://aka.ms/vscode-remote/containers/non-root.
|
||||||
}
|
// "remoteUser": "vscode"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Docs Site",
|
|
||||||
"build": {
|
|
||||||
"dockerfile": "../examples.Dockerfile"
|
|
||||||
},
|
|
||||||
|
|
||||||
"workspaceFolder": "/workspaces/astro/examples/docs",
|
|
||||||
|
|
||||||
"portsAttributes": {
|
|
||||||
"4321": {
|
|
||||||
"label": "Application",
|
|
||||||
"onAutoForward": "openPreview"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"forwardPorts": [4321],
|
|
||||||
|
|
||||||
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
|
|
||||||
|
|
||||||
"waitFor": "postCreateCommand",
|
|
||||||
|
|
||||||
"postAttachCommand": {
|
|
||||||
"Server": "pnpm start --host"
|
|
||||||
},
|
|
||||||
|
|
||||||
"customizations": {
|
|
||||||
"codespaces": {
|
|
||||||
"openFiles": ["src/pages/index.astro"]
|
|
||||||
},
|
|
||||||
"vscode": {
|
|
||||||
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
👋 Welcome to "Astro" in GitHub Codespaces!
|
|
||||||
|
|
||||||
🛠️ Your environment is fully setup with all the required software.
|
|
||||||
|
|
||||||
🚀 The example app should automatically start soon in a new terminal tab.
|
|
|
@ -1,6 +0,0 @@
|
||||||
FROM mcr.microsoft.com/devcontainers/javascript-node:0-18
|
|
||||||
|
|
||||||
# Install latest pnpm
|
|
||||||
RUN npm install -g pnpm
|
|
||||||
|
|
||||||
COPY example-welcome-message.txt /usr/local/etc/vscode-dev-containers/first-run-notice.txt
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Alpine",
|
|
||||||
"build": {
|
|
||||||
"dockerfile": "../examples.Dockerfile"
|
|
||||||
},
|
|
||||||
|
|
||||||
"workspaceFolder": "/workspaces/astro/examples/framework-alpine",
|
|
||||||
|
|
||||||
"portsAttributes": {
|
|
||||||
"4321": {
|
|
||||||
"label": "Application",
|
|
||||||
"onAutoForward": "openPreview"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"forwardPorts": [4321],
|
|
||||||
|
|
||||||
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
|
|
||||||
|
|
||||||
"waitFor": "postCreateCommand",
|
|
||||||
|
|
||||||
"postAttachCommand": {
|
|
||||||
"Server": "pnpm start --host"
|
|
||||||
},
|
|
||||||
|
|
||||||
"customizations": {
|
|
||||||
"codespaces": {
|
|
||||||
"openFiles": ["src/pages/index.astro"]
|
|
||||||
},
|
|
||||||
"vscode": {
|
|
||||||
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Lit",
|
|
||||||
"build": {
|
|
||||||
"dockerfile": "../examples.Dockerfile"
|
|
||||||
},
|
|
||||||
|
|
||||||
"workspaceFolder": "/workspaces/astro/examples/framework-lit",
|
|
||||||
|
|
||||||
"portsAttributes": {
|
|
||||||
"4321": {
|
|
||||||
"label": "Application",
|
|
||||||
"onAutoForward": "openPreview"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"forwardPorts": [4321],
|
|
||||||
|
|
||||||
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
|
|
||||||
|
|
||||||
"waitFor": "postCreateCommand",
|
|
||||||
|
|
||||||
"postAttachCommand": {
|
|
||||||
"Server": "pnpm start --host"
|
|
||||||
},
|
|
||||||
|
|
||||||
"customizations": {
|
|
||||||
"codespaces": {
|
|
||||||
"openFiles": ["src/pages/index.astro"]
|
|
||||||
},
|
|
||||||
"vscode": {
|
|
||||||
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Kitchen Sink (Multiple Frameworks)",
|
|
||||||
"build": {
|
|
||||||
"dockerfile": "../examples.Dockerfile"
|
|
||||||
},
|
|
||||||
|
|
||||||
"workspaceFolder": "/workspaces/astro/examples/framework-multiple",
|
|
||||||
|
|
||||||
"portsAttributes": {
|
|
||||||
"4321": {
|
|
||||||
"label": "Application",
|
|
||||||
"onAutoForward": "openPreview"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"forwardPorts": [4321],
|
|
||||||
|
|
||||||
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
|
|
||||||
|
|
||||||
"waitFor": "postCreateCommand",
|
|
||||||
|
|
||||||
"postAttachCommand": {
|
|
||||||
"Server": "pnpm start --host"
|
|
||||||
},
|
|
||||||
|
|
||||||
"customizations": {
|
|
||||||
"codespaces": {
|
|
||||||
"openFiles": ["src/pages/index.astro"]
|
|
||||||
},
|
|
||||||
"vscode": {
|
|
||||||
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Preact",
|
|
||||||
"build": {
|
|
||||||
"dockerfile": "../examples.Dockerfile"
|
|
||||||
},
|
|
||||||
|
|
||||||
"workspaceFolder": "/workspaces/astro/examples/framework-preact",
|
|
||||||
|
|
||||||
"portsAttributes": {
|
|
||||||
"4321": {
|
|
||||||
"label": "Application",
|
|
||||||
"onAutoForward": "openPreview"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"forwardPorts": [4321],
|
|
||||||
|
|
||||||
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
|
|
||||||
|
|
||||||
"waitFor": "postCreateCommand",
|
|
||||||
|
|
||||||
"postAttachCommand": {
|
|
||||||
"Server": "pnpm start --host"
|
|
||||||
},
|
|
||||||
|
|
||||||
"customizations": {
|
|
||||||
"codespaces": {
|
|
||||||
"openFiles": ["src/pages/index.astro"]
|
|
||||||
},
|
|
||||||
"vscode": {
|
|
||||||
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
"name": "React",
|
|
||||||
"build": {
|
|
||||||
"dockerfile": "../examples.Dockerfile"
|
|
||||||
},
|
|
||||||
|
|
||||||
"workspaceFolder": "/workspaces/astro/examples/framework-react",
|
|
||||||
|
|
||||||
"portsAttributes": {
|
|
||||||
"4321": {
|
|
||||||
"label": "Application",
|
|
||||||
"onAutoForward": "openPreview"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"forwardPorts": [4321],
|
|
||||||
|
|
||||||
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
|
|
||||||
|
|
||||||
"waitFor": "postCreateCommand",
|
|
||||||
|
|
||||||
"postAttachCommand": {
|
|
||||||
"Server": "pnpm start --host"
|
|
||||||
},
|
|
||||||
|
|
||||||
"customizations": {
|
|
||||||
"codespaces": {
|
|
||||||
"openFiles": ["src/pages/index.astro"]
|
|
||||||
},
|
|
||||||
"vscode": {
|
|
||||||
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Solid",
|
|
||||||
"build": {
|
|
||||||
"dockerfile": "../examples.Dockerfile"
|
|
||||||
},
|
|
||||||
|
|
||||||
"workspaceFolder": "/workspaces/astro/examples/framework-solid",
|
|
||||||
|
|
||||||
"portsAttributes": {
|
|
||||||
"4321": {
|
|
||||||
"label": "Application",
|
|
||||||
"onAutoForward": "openPreview"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"forwardPorts": [4321],
|
|
||||||
|
|
||||||
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
|
|
||||||
|
|
||||||
"waitFor": "postCreateCommand",
|
|
||||||
|
|
||||||
"postAttachCommand": {
|
|
||||||
"Server": "pnpm start --host"
|
|
||||||
},
|
|
||||||
|
|
||||||
"customizations": {
|
|
||||||
"codespaces": {
|
|
||||||
"openFiles": ["src/pages/index.astro"]
|
|
||||||
},
|
|
||||||
"vscode": {
|
|
||||||
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Svelte",
|
|
||||||
"build": {
|
|
||||||
"dockerfile": "../examples.Dockerfile"
|
|
||||||
},
|
|
||||||
|
|
||||||
"workspaceFolder": "/workspaces/astro/examples/framework-svelte",
|
|
||||||
|
|
||||||
"portsAttributes": {
|
|
||||||
"4321": {
|
|
||||||
"label": "Application",
|
|
||||||
"onAutoForward": "openPreview"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"forwardPorts": [4321],
|
|
||||||
|
|
||||||
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
|
|
||||||
|
|
||||||
"waitFor": "postCreateCommand",
|
|
||||||
|
|
||||||
"postAttachCommand": {
|
|
||||||
"Server": "pnpm start --host"
|
|
||||||
},
|
|
||||||
|
|
||||||
"customizations": {
|
|
||||||
"codespaces": {
|
|
||||||
"openFiles": ["src/pages/index.astro"]
|
|
||||||
},
|
|
||||||
"vscode": {
|
|
||||||
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Vue",
|
|
||||||
"build": {
|
|
||||||
"dockerfile": "../examples.Dockerfile"
|
|
||||||
},
|
|
||||||
|
|
||||||
"workspaceFolder": "/workspaces/astro/examples/framework-vue",
|
|
||||||
|
|
||||||
"portsAttributes": {
|
|
||||||
"4321": {
|
|
||||||
"label": "Application",
|
|
||||||
"onAutoForward": "openPreview"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"forwardPorts": [4321],
|
|
||||||
|
|
||||||
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
|
|
||||||
|
|
||||||
"waitFor": "postCreateCommand",
|
|
||||||
|
|
||||||
"postAttachCommand": {
|
|
||||||
"Server": "pnpm start --host"
|
|
||||||
},
|
|
||||||
|
|
||||||
"customizations": {
|
|
||||||
"codespaces": {
|
|
||||||
"openFiles": ["src/pages/index.astro"]
|
|
||||||
},
|
|
||||||
"vscode": {
|
|
||||||
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Hackernews",
|
|
||||||
"build": {
|
|
||||||
"dockerfile": "../examples.Dockerfile"
|
|
||||||
},
|
|
||||||
|
|
||||||
"workspaceFolder": "/workspaces/astro/examples/hackernews",
|
|
||||||
|
|
||||||
"portsAttributes": {
|
|
||||||
"4321": {
|
|
||||||
"label": "Application",
|
|
||||||
"onAutoForward": "openPreview"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"forwardPorts": [4321],
|
|
||||||
|
|
||||||
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
|
|
||||||
|
|
||||||
"waitFor": "postCreateCommand",
|
|
||||||
|
|
||||||
"postAttachCommand": {
|
|
||||||
"Server": "pnpm start --host"
|
|
||||||
},
|
|
||||||
|
|
||||||
"customizations": {
|
|
||||||
"codespaces": {
|
|
||||||
"openFiles": ["src/pages/[...stories].astro"]
|
|
||||||
},
|
|
||||||
"vscode": {
|
|
||||||
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Integration Package",
|
|
||||||
"build": {
|
|
||||||
"dockerfile": "../examples.Dockerfile"
|
|
||||||
},
|
|
||||||
|
|
||||||
"workspaceFolder": "/workspaces/astro/examples/integration",
|
|
||||||
|
|
||||||
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
|
|
||||||
|
|
||||||
"waitFor": "postCreateCommand",
|
|
||||||
|
|
||||||
"customizations": {
|
|
||||||
"codespaces": {
|
|
||||||
"openFiles": ["index.ts"]
|
|
||||||
},
|
|
||||||
"vscode": {
|
|
||||||
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Minimal",
|
|
||||||
"build": {
|
|
||||||
"dockerfile": "../examples.Dockerfile"
|
|
||||||
},
|
|
||||||
|
|
||||||
"workspaceFolder": "/workspaces/astro/examples/minimal",
|
|
||||||
|
|
||||||
"portsAttributes": {
|
|
||||||
"4321": {
|
|
||||||
"label": "Application",
|
|
||||||
"onAutoForward": "openPreview"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"forwardPorts": [4321],
|
|
||||||
|
|
||||||
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
|
|
||||||
|
|
||||||
"waitFor": "postCreateCommand",
|
|
||||||
|
|
||||||
"postAttachCommand": {
|
|
||||||
"Server": "pnpm start --host"
|
|
||||||
},
|
|
||||||
|
|
||||||
"customizations": {
|
|
||||||
"codespaces": {
|
|
||||||
"openFiles": ["src/pages/index.astro"]
|
|
||||||
},
|
|
||||||
"vscode": {
|
|
||||||
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Non-HTML Pages",
|
|
||||||
"build": {
|
|
||||||
"dockerfile": "../examples.Dockerfile"
|
|
||||||
},
|
|
||||||
|
|
||||||
"workspaceFolder": "/workspaces/astro/examples/non-html-pages",
|
|
||||||
|
|
||||||
"portsAttributes": {
|
|
||||||
"4321": {
|
|
||||||
"label": "Application",
|
|
||||||
"onAutoForward": "openPreview"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"forwardPorts": [4321],
|
|
||||||
|
|
||||||
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
|
|
||||||
|
|
||||||
"waitFor": "postCreateCommand",
|
|
||||||
|
|
||||||
"postAttachCommand": {
|
|
||||||
"Server": "pnpm start --host"
|
|
||||||
},
|
|
||||||
|
|
||||||
"customizations": {
|
|
||||||
"codespaces": {
|
|
||||||
"openFiles": ["src/pages/index.astro"]
|
|
||||||
},
|
|
||||||
"vscode": {
|
|
||||||
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Portfolio",
|
|
||||||
"build": {
|
|
||||||
"dockerfile": "../examples.Dockerfile"
|
|
||||||
},
|
|
||||||
|
|
||||||
"workspaceFolder": "/workspaces/astro/examples/portfolio",
|
|
||||||
|
|
||||||
"portsAttributes": {
|
|
||||||
"4321": {
|
|
||||||
"label": "Application",
|
|
||||||
"onAutoForward": "openPreview"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"forwardPorts": [4321],
|
|
||||||
|
|
||||||
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
|
|
||||||
|
|
||||||
"waitFor": "postCreateCommand",
|
|
||||||
|
|
||||||
"postAttachCommand": {
|
|
||||||
"Server": "pnpm start --host"
|
|
||||||
},
|
|
||||||
|
|
||||||
"customizations": {
|
|
||||||
"codespaces": {
|
|
||||||
"openFiles": ["src/pages/index.astro"]
|
|
||||||
},
|
|
||||||
"vscode": {
|
|
||||||
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
"name": "SSR",
|
|
||||||
"build": {
|
|
||||||
"dockerfile": "../examples.Dockerfile"
|
|
||||||
},
|
|
||||||
|
|
||||||
"workspaceFolder": "/workspaces/astro/examples/ssr",
|
|
||||||
|
|
||||||
"portsAttributes": {
|
|
||||||
"4321": {
|
|
||||||
"label": "Application",
|
|
||||||
"onAutoForward": "openPreview"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"forwardPorts": [4321],
|
|
||||||
|
|
||||||
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
|
|
||||||
|
|
||||||
"waitFor": "postCreateCommand",
|
|
||||||
|
|
||||||
"postAttachCommand": {
|
|
||||||
"Server": "pnpm start --host"
|
|
||||||
},
|
|
||||||
|
|
||||||
"customizations": {
|
|
||||||
"codespaces": {
|
|
||||||
"openFiles": ["src/pages/index.astro"]
|
|
||||||
},
|
|
||||||
"vscode": {
|
|
||||||
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,4 +0,0 @@
|
||||||
👋 Welcome to Astro!
|
|
||||||
|
|
||||||
🛠️ Your environment is fully setup with all required software installed. Tests will
|
|
||||||
be running shortly in a separate terminal tab.
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Markdown with Plugins",
|
|
||||||
"build": {
|
|
||||||
"dockerfile": "../examples.Dockerfile"
|
|
||||||
},
|
|
||||||
|
|
||||||
"workspaceFolder": "/workspaces/astro/examples/with-markdown-plugins",
|
|
||||||
|
|
||||||
"portsAttributes": {
|
|
||||||
"4321": {
|
|
||||||
"label": "Application",
|
|
||||||
"onAutoForward": "openPreview"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"forwardPorts": [4321],
|
|
||||||
|
|
||||||
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
|
|
||||||
|
|
||||||
"waitFor": "postCreateCommand",
|
|
||||||
|
|
||||||
"postAttachCommand": {
|
|
||||||
"Server": "pnpm start --host"
|
|
||||||
},
|
|
||||||
|
|
||||||
"customizations": {
|
|
||||||
"codespaces": {
|
|
||||||
"openFiles": ["src/pages/index.md"]
|
|
||||||
},
|
|
||||||
"vscode": {
|
|
||||||
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Markdown with Shiki",
|
|
||||||
"build": {
|
|
||||||
"dockerfile": "../examples.Dockerfile"
|
|
||||||
},
|
|
||||||
|
|
||||||
"workspaceFolder": "/workspaces/astro/examples/with-markdown-shiki",
|
|
||||||
|
|
||||||
"portsAttributes": {
|
|
||||||
"4321": {
|
|
||||||
"label": "Application",
|
|
||||||
"onAutoForward": "openPreview"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"forwardPorts": [4321],
|
|
||||||
|
|
||||||
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
|
|
||||||
|
|
||||||
"waitFor": "postCreateCommand",
|
|
||||||
|
|
||||||
"postAttachCommand": {
|
|
||||||
"Server": "pnpm start --host"
|
|
||||||
},
|
|
||||||
|
|
||||||
"customizations": {
|
|
||||||
"codespaces": {
|
|
||||||
"openFiles": ["src/pages/index.md"]
|
|
||||||
},
|
|
||||||
"vscode": {
|
|
||||||
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
"name": "MDX",
|
|
||||||
"build": {
|
|
||||||
"dockerfile": "../examples.Dockerfile"
|
|
||||||
},
|
|
||||||
|
|
||||||
"workspaceFolder": "/workspaces/astro/examples/with-mdx",
|
|
||||||
|
|
||||||
"portsAttributes": {
|
|
||||||
"4321": {
|
|
||||||
"label": "Application",
|
|
||||||
"onAutoForward": "openPreview"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"forwardPorts": [4321],
|
|
||||||
|
|
||||||
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
|
|
||||||
|
|
||||||
"waitFor": "postCreateCommand",
|
|
||||||
|
|
||||||
"postAttachCommand": {
|
|
||||||
"Server": "pnpm start --host"
|
|
||||||
},
|
|
||||||
|
|
||||||
"customizations": {
|
|
||||||
"codespaces": {
|
|
||||||
"openFiles": ["src/pages/index.mdx"]
|
|
||||||
},
|
|
||||||
"vscode": {
|
|
||||||
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Nanostores",
|
|
||||||
"build": {
|
|
||||||
"dockerfile": "../examples.Dockerfile"
|
|
||||||
},
|
|
||||||
|
|
||||||
"workspaceFolder": "/workspaces/astro/examples/with-nanostores",
|
|
||||||
|
|
||||||
"portsAttributes": {
|
|
||||||
"4321": {
|
|
||||||
"label": "Application",
|
|
||||||
"onAutoForward": "openPreview"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"forwardPorts": [4321],
|
|
||||||
|
|
||||||
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
|
|
||||||
|
|
||||||
"waitFor": "postCreateCommand",
|
|
||||||
|
|
||||||
"postAttachCommand": {
|
|
||||||
"Server": "pnpm start --host"
|
|
||||||
},
|
|
||||||
|
|
||||||
"customizations": {
|
|
||||||
"codespaces": {
|
|
||||||
"openFiles": ["src/pages/index.astro"]
|
|
||||||
},
|
|
||||||
"vscode": {
|
|
||||||
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Tailwind",
|
|
||||||
"build": {
|
|
||||||
"dockerfile": "../examples.Dockerfile"
|
|
||||||
},
|
|
||||||
|
|
||||||
"workspaceFolder": "/workspaces/astro/examples/with-tailwindcss",
|
|
||||||
|
|
||||||
"portsAttributes": {
|
|
||||||
"4321": {
|
|
||||||
"label": "Application",
|
|
||||||
"onAutoForward": "openPreview"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"forwardPorts": [4321],
|
|
||||||
|
|
||||||
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
|
|
||||||
|
|
||||||
"waitFor": "postCreateCommand",
|
|
||||||
|
|
||||||
"postAttachCommand": {
|
|
||||||
"Server": "pnpm start --host"
|
|
||||||
},
|
|
||||||
|
|
||||||
"customizations": {
|
|
||||||
"codespaces": {
|
|
||||||
"openFiles": ["src/pages/index.astro"]
|
|
||||||
},
|
|
||||||
"vscode": {
|
|
||||||
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Vite PWA",
|
|
||||||
"build": {
|
|
||||||
"dockerfile": "../examples.Dockerfile"
|
|
||||||
},
|
|
||||||
|
|
||||||
"workspaceFolder": "/workspaces/astro/examples/with-vite-plugin-pwa",
|
|
||||||
|
|
||||||
"portsAttributes": {
|
|
||||||
"4321": {
|
|
||||||
"label": "Application",
|
|
||||||
"onAutoForward": "openPreview"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"forwardPorts": [4321],
|
|
||||||
|
|
||||||
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
|
|
||||||
|
|
||||||
"waitFor": "postCreateCommand",
|
|
||||||
|
|
||||||
"postAttachCommand": {
|
|
||||||
"Server": "pnpm start --host"
|
|
||||||
},
|
|
||||||
|
|
||||||
"customizations": {
|
|
||||||
"codespaces": {
|
|
||||||
"openFiles": ["src/pages/index.astro"]
|
|
||||||
},
|
|
||||||
"vscode": {
|
|
||||||
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Vitest",
|
|
||||||
"build": {
|
|
||||||
"dockerfile": "../examples.Dockerfile"
|
|
||||||
},
|
|
||||||
|
|
||||||
"workspaceFolder": "/workspaces/astro/examples/with-vitest",
|
|
||||||
|
|
||||||
"portsAttributes": {
|
|
||||||
"4321": {
|
|
||||||
"label": "Application",
|
|
||||||
"onAutoForward": "openPreview"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"forwardPorts": [4321],
|
|
||||||
|
|
||||||
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
|
|
||||||
|
|
||||||
"waitFor": "postCreateCommand",
|
|
||||||
|
|
||||||
"postAttachCommand": {
|
|
||||||
"Server": "pnpm start --host"
|
|
||||||
},
|
|
||||||
|
|
||||||
"customizations": {
|
|
||||||
"codespaces": {
|
|
||||||
"openFiles": ["src/pages/index.astro"]
|
|
||||||
},
|
|
||||||
"vscode": {
|
|
||||||
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,7 +1,7 @@
|
||||||
**/*.d.ts
|
**/*.d.ts
|
||||||
packages/**/*.min.js
|
|
||||||
packages/**/dist/**/*
|
packages/**/dist/**/*
|
||||||
packages/**/fixtures/**/*
|
packages/**/fixtures/**/*
|
||||||
|
packages/webapi/**/*
|
||||||
packages/astro/vendor/vite/**/*
|
packages/astro/vendor/vite/**/*
|
||||||
examples/**/*
|
examples/**/*
|
||||||
scripts/**/*
|
scripts/**/*
|
||||||
|
|
|
@ -1,74 +1,25 @@
|
||||||
const { builtinModules } = require('module');
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
extends: [
|
|
||||||
'plugin:@typescript-eslint/recommended-type-checked',
|
|
||||||
'plugin:@typescript-eslint/stylistic-type-checked',
|
|
||||||
'prettier',
|
|
||||||
],
|
|
||||||
parser: '@typescript-eslint/parser',
|
parser: '@typescript-eslint/parser',
|
||||||
parserOptions: {
|
extends: ['plugin:@typescript-eslint/recommended', 'prettier'],
|
||||||
project: ['./packages/*/tsconfig.json', './tsconfig.eslint.json'],
|
|
||||||
tsconfigRootDir: __dirname,
|
|
||||||
},
|
|
||||||
plugins: ['@typescript-eslint', 'prettier', 'no-only-tests'],
|
plugins: ['@typescript-eslint', 'prettier', 'no-only-tests'],
|
||||||
rules: {
|
rules: {
|
||||||
// These off/configured-differently-by-default rules fit well for us
|
|
||||||
'@typescript-eslint/array-type': ['error', { default: 'array-simple' }],
|
|
||||||
'@typescript-eslint/no-unused-vars': [
|
|
||||||
'error',
|
|
||||||
{ argsIgnorePattern: '^_', ignoreRestSiblings: true },
|
|
||||||
],
|
|
||||||
'no-only-tests/no-only-tests': 'error',
|
|
||||||
'@typescript-eslint/no-shadow': ['error'],
|
|
||||||
'no-console': 'warn',
|
|
||||||
|
|
||||||
// Todo: do we want these?
|
|
||||||
'@typescript-eslint/array-type': 'off',
|
|
||||||
'@typescript-eslint/ban-ts-comment': 'off',
|
'@typescript-eslint/ban-ts-comment': 'off',
|
||||||
'@typescript-eslint/class-literal-property-style': 'off',
|
'@typescript-eslint/camelcase': 'off',
|
||||||
'@typescript-eslint/consistent-indexed-object-style': 'off',
|
'@typescript-eslint/explicit-module-boundary-types': 'off',
|
||||||
'@typescript-eslint/consistent-type-definitions': 'off',
|
|
||||||
'@typescript-eslint/dot-notation': 'off',
|
|
||||||
'@typescript-eslint/no-base-to-string': 'off',
|
|
||||||
'@typescript-eslint/no-empty-function': 'off',
|
'@typescript-eslint/no-empty-function': 'off',
|
||||||
'@typescript-eslint/no-floating-promises': 'off',
|
|
||||||
'@typescript-eslint/no-misused-promises': 'off',
|
|
||||||
'@typescript-eslint/no-redundant-type-constituents': 'off',
|
|
||||||
'@typescript-eslint/no-this-alias': 'off',
|
|
||||||
'@typescript-eslint/no-unsafe-argument': 'off',
|
|
||||||
'@typescript-eslint/no-unsafe-assignment': 'off',
|
|
||||||
'@typescript-eslint/no-unsafe-call': 'off',
|
|
||||||
'@typescript-eslint/no-unsafe-member-access': 'off',
|
|
||||||
'@typescript-eslint/no-unsafe-return': 'off',
|
|
||||||
'@typescript-eslint/prefer-nullish-coalescing': 'off',
|
|
||||||
'@typescript-eslint/prefer-optional-chain': 'off',
|
|
||||||
'@typescript-eslint/prefer-string-starts-ends-with': 'off',
|
|
||||||
'@typescript-eslint/require-await': 'off',
|
|
||||||
'@typescript-eslint/restrict-plus-operands': 'off',
|
|
||||||
'@typescript-eslint/restrict-template-expressions': 'off',
|
|
||||||
'@typescript-eslint/sort-type-constituents': 'off',
|
|
||||||
'@typescript-eslint/unbound-method': 'off',
|
|
||||||
'@typescript-eslint/no-explicit-any': 'off',
|
'@typescript-eslint/no-explicit-any': 'off',
|
||||||
|
'@typescript-eslint/no-non-null-assertion': 'off',
|
||||||
// These rules enabled by the preset configs don't work well for us
|
'@typescript-eslint/no-unused-vars': 'off',
|
||||||
'@typescript-eslint/await-thenable': 'off',
|
'@typescript-eslint/no-use-before-define': 'off',
|
||||||
|
'@typescript-eslint/no-var-requires': 'off',
|
||||||
|
'@typescript-eslint/no-this-alias': 'off',
|
||||||
|
'no-console': 'warn',
|
||||||
'prefer-const': 'off',
|
'prefer-const': 'off',
|
||||||
|
'no-shadow': 'off',
|
||||||
|
'@typescript-eslint/no-shadow': ['error'],
|
||||||
|
'no-only-tests/no-only-tests': 'error',
|
||||||
},
|
},
|
||||||
overrides: [
|
overrides: [
|
||||||
{
|
|
||||||
// Ensure Node builtins aren't included in Astro's server runtime
|
|
||||||
files: ['packages/astro/src/runtime/**/*.ts'],
|
|
||||||
rules: {
|
|
||||||
'no-restricted-imports': [
|
|
||||||
'error',
|
|
||||||
{
|
|
||||||
paths: [...builtinModules],
|
|
||||||
patterns: ['node:*'],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
files: ['packages/**/test/*.js', 'packages/**/*.js'],
|
files: ['packages/**/test/*.js', 'packages/**/*.js'],
|
||||||
env: {
|
env: {
|
||||||
|
@ -81,18 +32,5 @@ module.exports = {
|
||||||
'no-console': 'off',
|
'no-console': 'off',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
|
||||||
files: ['packages/integrations/**/*.ts'],
|
|
||||||
rules: {
|
|
||||||
'no-console': ['error', { allow: ['warn', 'error', 'info', 'debug'] }],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
files: ['benchmark/**/*.js'],
|
|
||||||
rules: {
|
|
||||||
'@typescript-eslint/no-unused-vars': 'off',
|
|
||||||
'no-console': 'off',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
1
.github/CODEOWNERS
vendored
|
@ -1,3 +1,2 @@
|
||||||
README.md @withastro/maintainers-docs
|
README.md @withastro/maintainers-docs
|
||||||
packages/astro/src/@types/astro.ts @withastro/maintainers-docs
|
packages/astro/src/@types/astro.ts @withastro/maintainers-docs
|
||||||
packages/astro/src/core/errors/errors-data.ts @withastro/maintainers-docs
|
|
||||||
|
|
42
.github/ISSUE_TEMPLATE/---01-bug-report.yml
vendored
|
@ -10,20 +10,35 @@ body:
|
||||||
Thank you for taking the time to file a bug report! Please fill out this form as completely as possible.
|
Thank you for taking the time to file a bug report! Please fill out this form as completely as possible.
|
||||||
|
|
||||||
✅ I am using the **latest version of Astro** and all plugins.
|
✅ I am using the **latest version of Astro** and all plugins.
|
||||||
✅ I am using a version of Node that Astro supports (`>=18.14.1`)
|
✅ I am using a version of Node that supports ESM (`v14.18.0+`, or `v16.12.0+`)
|
||||||
- type: textarea
|
- type: input
|
||||||
id: astro-info
|
id: astro-version
|
||||||
attributes:
|
attributes:
|
||||||
label: Astro Info
|
label: What version of `astro` are you using?
|
||||||
description: Run the command `astro info` in your terminal and paste the output here. Please review the data before submitting in case there is any sensitive information you don't want to share.
|
placeholder: 0.0.0
|
||||||
render: block
|
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: input
|
- type: input
|
||||||
id: browser
|
id: ssr-adapter
|
||||||
attributes:
|
attributes:
|
||||||
label: If this issue only occurs in one browser, which browser is a problem?
|
label: Are you using an SSR adapter? If so, which one?
|
||||||
placeholder: Chrome, Firefox, Safari
|
placeholder: None, or Netlify, Vercel, Cloudflare, etc.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: input
|
||||||
|
id: package-manager
|
||||||
|
attributes:
|
||||||
|
label: What package manager are you using?
|
||||||
|
placeholder: npm, yarn, pnpm
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: input
|
||||||
|
id: os
|
||||||
|
attributes:
|
||||||
|
label: What operating system are you using?
|
||||||
|
placeholder: Mac, Windows, Linux
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: bug-description
|
id: bug-description
|
||||||
attributes:
|
attributes:
|
||||||
|
@ -31,18 +46,11 @@ body:
|
||||||
description: A clear and concise description of what the bug is.
|
description: A clear and concise description of what the bug is.
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: textarea
|
|
||||||
id: bug-expectation
|
|
||||||
attributes:
|
|
||||||
label: What's the expected result?
|
|
||||||
description: Describe what you expect to happen.
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: input
|
- type: input
|
||||||
id: bug-reproduction
|
id: bug-reproduction
|
||||||
attributes:
|
attributes:
|
||||||
label: Link to Minimal Reproducible Example
|
label: Link to Minimal Reproducible Example
|
||||||
description: 'Use [astro.new](https://astro.new) to create a minimal reproduction of the problem. **A minimal reproduction is required** so that others can help debug your issue. If a report is vague (e.g. just a generic error message) and has no reproduction, it may be auto-closed. Not sure how to create a minimal example? [Read our guide](https://docs.astro.build/en/guides/troubleshooting/#creating-minimal-reproductions)'
|
description: 'Use [astro.new](https://astro.new) to create a minimal reproduction of the problem. **A minimal reproduction is required** so that others can help debug your issue. If a report is vague (e.g. just a generic error message) and has no reproduction, it may be auto-closed.'
|
||||||
placeholder: 'https://stackblitz.com/abcd1234'
|
placeholder: 'https://stackblitz.com/abcd1234'
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|
2
.github/ISSUE_TEMPLATE/config.yml
vendored
|
@ -4,7 +4,7 @@ contact_links:
|
||||||
url: https://github.com/withastro/docs
|
url: https://github.com/withastro/docs
|
||||||
about: File an issue or make an improvement to the docs website.
|
about: File an issue or make an improvement to the docs website.
|
||||||
- name: 💡 Ideas for New Features, Improvements and RFCs
|
- name: 💡 Ideas for New Features, Improvements and RFCs
|
||||||
url: https://github.com/withastro/roadmap/discussions
|
url: https://github.com/withastro/rfcs/discussions
|
||||||
about: Propose and discuss future improvements to Astro
|
about: Propose and discuss future improvements to Astro
|
||||||
- name: 👾 Chat
|
- name: 👾 Chat
|
||||||
url: https://astro.build/chat
|
url: https://astro.build/chat
|
||||||
|
|
BIN
.github/assets/banner.png
vendored
Before Width: | Height: | Size: 2.1 MiB |
1
.github/assets/deepgram-dark.svg
vendored
Before Width: | Height: | Size: 8.8 KiB |
1
.github/assets/deepgram.svg
vendored
Before Width: | Height: | Size: 8.8 KiB |
1
.github/assets/monogram-dark.svg
vendored
|
@ -1 +0,0 @@
|
||||||
<svg fill="none" height="40" viewBox="0 0 240 40" width="240" xmlns="http://www.w3.org/2000/svg"><g fill="#fff"><path clip-rule="evenodd" d="m31 40-4-10.6-4 10.6h-2l5-13.2-4-10.5-9 23.7h-2l10-26.4-4.5-11.8-14.5 38.2h-2l15.2-40h2.6l4.2 11 4.2-11h2.6l3.7 9.7 3.7-9.7h2.6l4.2 11 4.2-11h2.6l15.2 40h-2l-14.5-38.2-4.5 11.8 10 26.4h-2l-9-23.7-4 10.5 5 13.2h-2l-4-10.6-4 10.6zm1.5-25-4.5 11.7 4.5 11.9 4.5-11.8zm-5-13.2-4.5 11.8 4 10.6 4.5-11.9zm10 0-4 10.5 4.5 11.9 4-10.6z" fill-rule="evenodd"/><path d="m97.7259 17.956v11.044h2.7061v-15.4h-2.8821l-4.686 7.282-4.686-7.282h-2.882v15.4h2.662v-11l4.818 7.216h.088z"/><path d="m121.687 21.278c0-1.0853-.198-2.112-.594-3.08s-.946-1.8113-1.65-2.53-1.547-1.2833-2.53-1.694c-.982-.4253-2.068-.638-3.256-.638s-2.273.2127-3.256.638c-.982.4253-1.833 1.0047-2.552 1.738-.718.7187-1.276 1.562-1.672 2.53s-.594 1.9947-.594 3.08.198 2.112.594 3.08.946 1.8113 1.65 2.53 1.548 1.2907 2.53 1.716c.983.4107 2.068.616 3.256.616s2.274-.2127 3.256-.638c.983-.4253 1.834-.9973 2.552-1.716.719-.7333 1.276-1.584 1.672-2.552s.594-1.9947.594-3.08zm-2.838.044c0 .748-.132 1.4593-.396 2.134-.249.66-.601 1.2393-1.056 1.738-.454.484-1.004.8727-1.65 1.166-.63.2787-1.327.418-2.09.418-.762 0-1.466-.1467-2.112-.44-.645-.2933-1.202-.6893-1.672-1.188-.454-.4987-.814-1.078-1.078-1.738-.249-.6747-.374-1.386-.374-2.134s.125-1.452.374-2.112c.264-.6747.624-1.254 1.078-1.738.455-.4987.998-.8873 1.628-1.166.646-.2933 1.35-.44 2.112-.44.763 0 1.467.1467 2.112.44.646.2933 1.196.6893 1.65 1.188.47.4987.829 1.0853 1.078 1.76.264.66.396 1.364.396 2.112z"/><path d="m137.585 24.248-8.25-10.648h-2.508v15.4h2.662v-10.956l8.492 10.956h2.266v-15.4h-2.662z"/><path d="m161.5 21.278c0-1.0853-.198-2.112-.594-3.08s-.946-1.8113-1.65-2.53-1.548-1.2833-2.53-1.694c-.983-.4253-2.068-.638-3.256-.638s-2.274.2127-3.256.638c-.983.4253-1.834 1.0047-2.552 1.738-.719.7187-1.276 1.562-1.672 2.53s-.594 1.9947-.594 3.08.198 2.112.594 3.08.946 1.8113 1.65 2.53 1.547 1.2907 2.53 1.716c.982.4107 2.068.616 3.256.616s2.273-.2127 3.256-.638c.982-.4253 1.833-.9973 2.552-1.716.718-.7333 1.276-1.584 1.672-2.552s.594-1.9947.594-3.08zm-2.838.044c0 .748-.132 1.4593-.396 2.134-.25.66-.602 1.2393-1.056 1.738-.455.484-1.005.8727-1.65 1.166-.631.2787-1.328.418-2.09.418-.763 0-1.467-.1467-2.112-.44-.646-.2933-1.203-.6893-1.672-1.188-.455-.4987-.814-1.078-1.078-1.738-.25-.6747-.374-1.386-.374-2.134s.124-1.452.374-2.112c.264-.6747.623-1.254 1.078-1.738.454-.4987.997-.8873 1.628-1.166.645-.2933 1.349-.44 2.112-.44.762 0 1.466.1467 2.112.44.645.2933 1.195.6893 1.65 1.188.469.4987.828 1.0853 1.078 1.76.264.66.396 1.364.396 2.112z"/><path d="m180.367 26.866v-6.468h-6.556v2.354h3.938v2.882c-.469.352-1.027.638-1.672.858-.631.2053-1.313.308-2.046.308-.792 0-1.511-.1393-2.156-.418-.631-.2787-1.181-.66-1.65-1.144-.455-.4987-.807-1.0853-1.056-1.76s-.374-1.408-.374-2.2c0-.748.125-1.452.374-2.112.264-.66.616-1.2393 1.056-1.738.455-.4987.983-.8873 1.584-1.166.616-.2933 1.276-.44 1.98-.44.484 0 .924.044 1.32.132.411.0733.785.1833 1.122.33.337.132.66.3007.968.506s.609.4327.902.682l1.716-2.046c-.396-.3373-.807-.6307-1.232-.88-.411-.264-.851-.484-1.32-.66s-.983-.308-1.54-.396c-.543-.1027-1.151-.154-1.826-.154-1.159 0-2.229.2127-3.212.638-.968.4253-1.804 1.0047-2.508 1.738-.704.7187-1.254 1.562-1.65 2.53-.381.968-.572 1.9947-.572 3.08 0 1.1293.191 2.178.572 3.146s.917 1.8113 1.606 2.53c.704.704 1.547 1.2613 2.53 1.672.983.396 2.075.594 3.278.594.675 0 1.32-.066 1.936-.198.616-.1173 1.188-.286 1.716-.506.543-.22 1.041-.4767 1.496-.77.469-.2933.895-.6013 1.276-.924z"/><path d="m198.829 29-4.158-5.83c.543-.1467 1.034-.352 1.474-.616.455-.2787.843-.6087 1.166-.99.323-.396.572-.8433.748-1.342.191-.5133.286-1.0927.286-1.738 0-.748-.132-1.4227-.396-2.024-.264-.616-.645-1.1293-1.144-1.54-.484-.4253-1.085-.748-1.804-.968-.704-.2347-1.496-.352-2.376-.352h-6.864v15.4h2.706v-5.368h3.388l3.784 5.368zm-3.234-10.362c0 .792-.286 1.4227-.858 1.892s-1.342.704-2.31.704h-3.96v-5.17h3.938c1.012 0 1.797.22 2.354.66.557.4253.836 1.0633.836 1.914z"/><path d="m211.934 13.49h-2.508l-6.776 15.51h2.772l1.584-3.718h7.282l1.562 3.718h2.86zm1.364 9.394h-5.302l2.64-6.16z"/><path d="m236.31 17.956v11.044h2.706v-15.4h-2.882l-4.686 7.282-4.686-7.282h-2.882v15.4h2.662v-11l4.818 7.216h.088z"/></g></svg>
|
|
Before Width: | Height: | Size: 4.2 KiB |
1
.github/assets/monogram.svg
vendored
|
@ -1 +0,0 @@
|
||||||
<svg fill="none" height="40" viewBox="0 0 240 40" width="240" xmlns="http://www.w3.org/2000/svg"><g fill="#000"><path clip-rule="evenodd" d="m31 40-4-10.6-4 10.6h-2l5-13.2-4-10.5-9 23.7h-2l10-26.4-4.5-11.8-14.5 38.2h-2l15.2-40h2.6l4.2 11 4.2-11h2.6l3.7 9.7 3.7-9.7h2.6l4.2 11 4.2-11h2.6l15.2 40h-2l-14.5-38.2-4.5 11.8 10 26.4h-2l-9-23.7-4 10.5 5 13.2h-2l-4-10.6-4 10.6zm1.5-25-4.5 11.7 4.5 11.9 4.5-11.8zm-5-13.2-4.5 11.8 4 10.6 4.5-11.9zm10 0-4 10.5 4.5 11.9 4-10.6z" fill-rule="evenodd"/><path d="m97.7259 17.956v11.044h2.7061v-15.4h-2.8821l-4.686 7.282-4.686-7.282h-2.882v15.4h2.662v-11l4.818 7.216h.088z"/><path d="m121.687 21.278c0-1.0853-.198-2.112-.594-3.08s-.946-1.8113-1.65-2.53-1.547-1.2833-2.53-1.694c-.982-.4253-2.068-.638-3.256-.638s-2.273.2127-3.256.638c-.982.4253-1.833 1.0047-2.552 1.738-.718.7187-1.276 1.562-1.672 2.53s-.594 1.9947-.594 3.08.198 2.112.594 3.08.946 1.8113 1.65 2.53 1.548 1.2907 2.53 1.716c.983.4107 2.068.616 3.256.616s2.274-.2127 3.256-.638c.983-.4253 1.834-.9973 2.552-1.716.719-.7333 1.276-1.584 1.672-2.552s.594-1.9947.594-3.08zm-2.838.044c0 .748-.132 1.4593-.396 2.134-.249.66-.601 1.2393-1.056 1.738-.454.484-1.004.8727-1.65 1.166-.63.2787-1.327.418-2.09.418-.762 0-1.466-.1467-2.112-.44-.645-.2933-1.202-.6893-1.672-1.188-.454-.4987-.814-1.078-1.078-1.738-.249-.6747-.374-1.386-.374-2.134s.125-1.452.374-2.112c.264-.6747.624-1.254 1.078-1.738.455-.4987.998-.8873 1.628-1.166.646-.2933 1.35-.44 2.112-.44.763 0 1.467.1467 2.112.44.646.2933 1.196.6893 1.65 1.188.47.4987.829 1.0853 1.078 1.76.264.66.396 1.364.396 2.112z"/><path d="m137.585 24.248-8.25-10.648h-2.508v15.4h2.662v-10.956l8.492 10.956h2.266v-15.4h-2.662z"/><path d="m161.5 21.278c0-1.0853-.198-2.112-.594-3.08s-.946-1.8113-1.65-2.53-1.548-1.2833-2.53-1.694c-.983-.4253-2.068-.638-3.256-.638s-2.274.2127-3.256.638c-.983.4253-1.834 1.0047-2.552 1.738-.719.7187-1.276 1.562-1.672 2.53s-.594 1.9947-.594 3.08.198 2.112.594 3.08.946 1.8113 1.65 2.53 1.547 1.2907 2.53 1.716c.982.4107 2.068.616 3.256.616s2.273-.2127 3.256-.638c.982-.4253 1.833-.9973 2.552-1.716.718-.7333 1.276-1.584 1.672-2.552s.594-1.9947.594-3.08zm-2.838.044c0 .748-.132 1.4593-.396 2.134-.25.66-.602 1.2393-1.056 1.738-.455.484-1.005.8727-1.65 1.166-.631.2787-1.328.418-2.09.418-.763 0-1.467-.1467-2.112-.44-.646-.2933-1.203-.6893-1.672-1.188-.455-.4987-.814-1.078-1.078-1.738-.25-.6747-.374-1.386-.374-2.134s.124-1.452.374-2.112c.264-.6747.623-1.254 1.078-1.738.454-.4987.997-.8873 1.628-1.166.645-.2933 1.349-.44 2.112-.44.762 0 1.466.1467 2.112.44.645.2933 1.195.6893 1.65 1.188.469.4987.828 1.0853 1.078 1.76.264.66.396 1.364.396 2.112z"/><path d="m180.367 26.866v-6.468h-6.556v2.354h3.938v2.882c-.469.352-1.027.638-1.672.858-.631.2053-1.313.308-2.046.308-.792 0-1.511-.1393-2.156-.418-.631-.2787-1.181-.66-1.65-1.144-.455-.4987-.807-1.0853-1.056-1.76s-.374-1.408-.374-2.2c0-.748.125-1.452.374-2.112.264-.66.616-1.2393 1.056-1.738.455-.4987.983-.8873 1.584-1.166.616-.2933 1.276-.44 1.98-.44.484 0 .924.044 1.32.132.411.0733.785.1833 1.122.33.337.132.66.3007.968.506s.609.4327.902.682l1.716-2.046c-.396-.3373-.807-.6307-1.232-.88-.411-.264-.851-.484-1.32-.66s-.983-.308-1.54-.396c-.543-.1027-1.151-.154-1.826-.154-1.159 0-2.229.2127-3.212.638-.968.4253-1.804 1.0047-2.508 1.738-.704.7187-1.254 1.562-1.65 2.53-.381.968-.572 1.9947-.572 3.08 0 1.1293.191 2.178.572 3.146s.917 1.8113 1.606 2.53c.704.704 1.547 1.2613 2.53 1.672.983.396 2.075.594 3.278.594.675 0 1.32-.066 1.936-.198.616-.1173 1.188-.286 1.716-.506.543-.22 1.041-.4767 1.496-.77.469-.2933.895-.6013 1.276-.924z"/><path d="m198.829 29-4.158-5.83c.543-.1467 1.034-.352 1.474-.616.455-.2787.843-.6087 1.166-.99.323-.396.572-.8433.748-1.342.191-.5133.286-1.0927.286-1.738 0-.748-.132-1.4227-.396-2.024-.264-.616-.645-1.1293-1.144-1.54-.484-.4253-1.085-.748-1.804-.968-.704-.2347-1.496-.352-2.376-.352h-6.864v15.4h2.706v-5.368h3.388l3.784 5.368zm-3.234-10.362c0 .792-.286 1.4227-.858 1.892s-1.342.704-2.31.704h-3.96v-5.17h3.938c1.012 0 1.797.22 2.354.66.557.4253.836 1.0633.836 1.914z"/><path d="m211.934 13.49h-2.508l-6.776 15.51h2.772l1.584-3.718h7.282l1.562 3.718h2.86zm1.364 9.394h-5.302l2.64-6.16z"/><path d="m236.31 17.956v11.044h2.706v-15.4h-2.882l-4.686 7.282-4.686-7.282h-2.882v15.4h2.662v-11l4.818 7.216h.088z"/></g></svg>
|
|
Before Width: | Height: | Size: 4.2 KiB |
2
.github/assets/netlify-dark.svg
vendored
|
@ -1 +1 @@
|
||||||
<svg viewBox="0 0 147 40" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><radialGradient id="a" cx="-779.0521" cy="1839.7205" gradientTransform="matrix(0 38.301 44.1228 0 -81154.2578 29839.2441)" gradientUnits="userSpaceOnUse" r="1.0011"><stop offset="0" stop-color="#20c6b7"/><stop offset="1" stop-color="#4d9abf"/></radialGradient><path clip-rule="evenodd" d="m53.37 12.98.12 2.2c1.4-1.7 3.24-2.55 5.53-2.55 3.95 0 5.96 2.27 6.03 6.8v12.57h-4.26v-12.32c0-1.21-.26-2.1-.78-2.68s-1.37-.87-2.55-.87c-1.72 0-3 .78-3.84 2.34v13.53h-4.26v-19.02zm24.38 19.37c-2.7 0-4.89-.85-6.57-2.56-1.68-1.7-2.52-3.98-2.52-6.81v-.53c0-1.9.36-3.59 1.1-5.09.73-1.49 1.76-2.66 3.08-3.49s2.79-1.25 4.42-1.25c2.58 0 4.58.83 5.99 2.48s2.11 3.99 2.11 7.01v1.72h-12.4c.13 1.57.65 2.81 1.57 3.73s2.07 1.37 3.46 1.37c1.95 0 3.54-.79 4.77-2.37l2.3 2.2c-.76 1.14-1.77 2.02-3.04 2.65s-2.69.94-4.27.94zm-.51-16.29c-1.17 0-2.11.41-2.83 1.23s-1.18 1.96-1.38 3.43h8.12v-.32c-.09-1.43-.47-2.51-1.14-3.24-.67-.74-1.59-1.1-2.77-1.1zm16.76-7.7v4.62h3.35v3.16h-3.35v10.62c0 .73.14 1.25.43 1.57s.8.48 1.54.48c.5 0 1-.06 1.49-.18v3.31c-.97.27-1.9.4-2.81.4-3.27 0-4.91-1.81-4.91-5.43v-10.77h-3.12v-3.16h3.12v-4.63zm11.14 23.64h-4.26v-27h4.26zm9.17 0h-4.26v-19.02h4.26zm-4.52-23.96c0-.65.21-1.2.62-1.63.42-.43 1.01-.65 1.78-.65s1.37.22 1.79.65.63.98.63 1.64c0 .64-.21 1.18-.63 1.61s-1.02.64-1.79.64-1.36-.21-1.78-.64c-.41-.44-.62-.98-.62-1.62zm10.66 23.96v-15.86h-2.89v-3.16h2.89v-1.74c0-2.11.58-3.74 1.75-4.89s2.81-1.72 4.91-1.72c.75 0 1.54.11 2.39.32l-.1 3.34c-.54-.1-1.08-.15-1.63-.14-2.04 0-3.05 1.05-3.05 3.15v1.69h3.86v3.16h-3.86v15.85zm17.87-6.12 3.86-12.9h4.54l-7.54 21.9c-1.16 3.2-3.12 4.8-5.89 4.8-.62 0-1.3-.11-2.05-.32v-3.31l.81.05c1.07 0 1.88-.2 2.43-.59.54-.39.97-1.05 1.29-1.98l.61-1.64-6.66-18.93h4.6z" fill="#fff" fill-rule="evenodd"/><path d="m27.89 14.14-.01-.01c-.01 0-.02-.01-.02-.01-.02-.02-.03-.06-.03-.09l.77-4.73 3.62 3.63-3.77 1.6c-.01 0-.02.01-.03.01h-.02s-.01-.01-.02-.02c-.14-.16-.31-.29-.49-.38zm5.26-.29 3.88 3.88c.81.81 1.21 1.21 1.35 1.67.02.07.04.14.05.21l-9.26-3.92s-.01 0-.01-.01c-.04-.02-.08-.03-.08-.07s.04-.06.08-.07l.01-.01zm5.12 7c-.2.38-.59.77-1.25 1.43l-4.37 4.37-5.65-1.18-.03-.01c-.05-.01-.1-.02-.1-.06-.04-.47-.28-.9-.66-1.19-.02-.02-.02-.06-.01-.09v-.01l1.06-6.53v-.02c.01-.05.01-.11.06-.11.46-.06.88-.3 1.16-.67.01-.01.01-.02.03-.03.03-.01.07 0 .1.01zm-6.62 6.8-7.19 7.19 1.23-7.56v-.01c0-.01 0-.02.01-.03.01-.02.04-.03.06-.04h.01c.27-.11.51-.29.69-.52.02-.03.05-.06.09-.06h.03zm-8.71 8.71-.81.81-8.95-12.94s-.01-.01-.01-.01c-.01-.02-.03-.04-.03-.06s.01-.03.02-.04l.01-.01c.03-.04.05-.08.07-.12l.02-.03c.01-.02.03-.05.05-.06s.05-.01.07 0l9.92 2.05c.03 0 .05.02.08.03.01.01.02.03.02.04.14.53.52.97 1.03 1.17.03.01.02.05 0 .08-.01.01-.01.03-.01.05-.12.74-1.19 7.27-1.48 9.04zm-1.69 1.69c-.6.59-.95.9-1.35 1.03-.39.12-.81.12-1.21 0-.47-.15-.87-.55-1.67-1.36l-8.99-8.99 2.35-3.64c.01-.02.02-.03.04-.05s.06-.01.09 0c.54.16 1.12.13 1.64-.08.03-.01.05-.02.07 0l.03.03zm-14.09-10.19-2.06-2.06 4.07-1.74c.01 0 .02-.01.03-.01.03 0 .05.03.07.07.04.06.08.12.13.18l.01.02c.01.02 0 .03-.01.05zm-2.98-2.97-2.61-2.61c-.44-.44-.77-.77-.99-1.04l7.94 1.65h.03c.05.01.1.02.1.06 0 .05-.06.07-.11.09l-.02.01zm-4.05-5c.01-.17.04-.33.09-.5.15-.47.55-.87 1.36-1.67l3.34-3.34c1.54 2.23 3.08 4.46 4.63 6.69.03.04.06.08.03.11-.15.16-.29.34-.4.53-.01.02-.03.05-.05.06-.01.01-.03 0-.04 0zm5.68-6.4 4.49-4.49c.42.19 1.96.83 3.33 1.41 1.04.44 1.99.84 2.29.97.03.01.06.02.07.05.01.02 0 .04 0 .06-.14.66.05 1.35.52 1.83.03.03 0 .07-.03.11l-.01.02-4.56 7.06c-.01.02-.02.04-.04.05s-.06.01-.09 0c-.18-.05-.36-.07-.54-.07-.16 0-.34.03-.52.06-.02 0-.04.01-.05 0-.02-.01-.03-.03-.05-.05zm5.4-5.4 5.81-5.81c.81-.81 1.21-1.21 1.67-1.36.39-.12.81-.12 1.21 0 .47.15.87.55 1.67 1.36l1.26 1.26-4.14 6.4c-.01.02-.02.03-.04.05s-.06.01-.09 0c-.66-.2-1.38-.06-1.92.37-.03.03-.07.01-.1 0-.53-.24-4.73-2.01-5.33-2.27zm12.5-3.67 3.82 3.82-.92 5.7v.02c0 .01 0 .03-.01.04-.01.02-.03.02-.05.03-.2.06-.38.15-.55.27-.01.01-.01.01-.02.02s-.02.02-.04.02c-.01 0-.03 0-.04-.01l-5.82-2.47-.01-.01c-.04-.02-.08-.03-.08-.07-.03-.32-.14-.64-.31-.91-.03-.05-.06-.09-.03-.14zm-3.93 8.6 5.45 2.31c.03.01.06.03.08.06.01.02.01.04 0 .06-.02.08-.03.17-.03.26v.15c0 .04-.04.05-.08.07h-.01c-.86.37-12.13 5.17-12.15 5.17s-.03 0-.05-.02c-.03-.03 0-.07.03-.11 0-.01.01-.01.01-.02l4.48-6.94.01-.01c.03-.04.06-.09.1-.09l.05.01c.1.01.19.03.28.03.68 0 1.31-.33 1.69-.9.01-.02.02-.03.03-.04.04-.01.08 0 .11.01zm-6.25 9.19 12.28-5.24s.02 0 .03.02c.07.07.12.11.18.15l.03.02c.02.01.05.03.05.06v.02l-1.05 6.46v.03c-.01.05-.01.11-.06.11-.57.04-1.08.36-1.37.85v.01c-.01.02-.03.05-.05.06s-.05.01-.07 0l-9.79-2.02c-.02-.02-.16-.53-.18-.53z" fill="url(#a)"/></svg>
|
<svg viewBox="0 0 147 40" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><radialGradient id="a" cx="-779.0521" cy="1839.7205" gradientTransform="matrix(0 38.301 44.1228 0 -81154.2578 29839.2441)" gradientUnits="userSpaceOnUse" r="1.0011"><stop offset="0" stop-color="#20c6b7"/><stop offset="1" stop-color="#4d9abf"/></radialGradient><path clip-rule="evenodd" d="m53.37 12.98.12 2.2c1.4-1.7 3.24-2.55 5.53-2.55 3.95 0 5.96 2.27 6.03 6.8v12.57h-4.26v-12.32c0-1.21-.26-2.1-.78-2.68s-1.37-.87-2.55-.87c-1.72 0-3 .78-3.84 2.34v13.53h-4.26v-19.02zm24.38 19.37c-2.7 0-4.89-.85-6.57-2.56-1.68-1.7-2.52-3.98-2.52-6.81v-.53c0-1.9.36-3.59 1.1-5.09.73-1.49 1.76-2.66 3.08-3.49s2.79-1.25 4.42-1.25c2.58 0 4.58.83 5.99 2.48s2.11 3.99 2.11 7.01v1.72h-12.4c.13 1.57.65 2.81 1.57 3.73s2.07 1.37 3.46 1.37c1.95 0 3.54-.79 4.77-2.37l2.3 2.2c-.76 1.14-1.77 2.02-3.04 2.65s-2.69.94-4.27.94zm-.51-16.29c-1.17 0-2.11.41-2.83 1.23s-1.18 1.96-1.38 3.43h8.12v-.32c-.09-1.43-.47-2.51-1.14-3.24-.67-.74-1.59-1.1-2.77-1.1zm16.76-7.7v4.62h3.35v3.16h-3.35v10.62c0 .73.14 1.25.43 1.57s.8.48 1.54.48c.5 0 1-.06 1.49-.18v3.31c-.97.27-1.9.4-2.81.4-3.27 0-4.91-1.81-4.91-5.43v-10.77h-3.12v-3.16h3.12v-4.63zm11.14 23.64h-4.26v-27h4.26zm9.17 0h-4.26v-19.02h4.26zm-4.52-23.96c0-.65.21-1.2.62-1.63.42-.43 1.01-.65 1.78-.65s1.37.22 1.79.65.63.98.63 1.64c0 .64-.21 1.18-.63 1.61s-1.02.64-1.79.64-1.36-.21-1.78-.64c-.41-.44-.62-.98-.62-1.62zm10.66 23.96v-15.86h-2.89v-3.16h2.89v-1.74c0-2.11.58-3.74 1.75-4.89s2.81-1.72 4.91-1.72c.75 0 1.54.11 2.39.32l-.1 3.34c-.54-.1-1.08-.15-1.63-.14-2.04 0-3.05 1.05-3.05 3.15v1.69h3.86v3.16h-3.86v15.85zm17.87-6.12 3.86-12.9h4.54l-7.54 21.9c-1.16 3.2-3.12 4.8-5.89 4.8-.62 0-1.3-.11-2.05-.32v-3.31l.81.05c1.07 0 1.88-.2 2.43-.59.54-.39.97-1.05 1.29-1.98l.61-1.64-6.66-18.93h4.6z" fill="#ffffff" fill-rule="evenodd"/><path d="m27.89 14.14-.01-.01c-.01 0-.02-.01-.02-.01-.02-.02-.03-.06-.03-.09l.77-4.73 3.62 3.63-3.77 1.6c-.01 0-.02.01-.03.01h-.02s-.01-.01-.02-.02c-.14-.16-.31-.29-.49-.38zm5.26-.29 3.88 3.88c.81.81 1.21 1.21 1.35 1.67.02.07.04.14.05.21l-9.26-3.92s-.01 0-.01-.01c-.04-.02-.08-.03-.08-.07s.04-.06.08-.07l.01-.01zm5.12 7c-.2.38-.59.77-1.25 1.43l-4.37 4.37-5.65-1.18-.03-.01c-.05-.01-.1-.02-.1-.06-.04-.47-.28-.9-.66-1.19-.02-.02-.02-.06-.01-.09v-.01l1.06-6.53v-.02c.01-.05.01-.11.06-.11.46-.06.88-.3 1.16-.67.01-.01.01-.02.03-.03.03-.01.07 0 .1.01zm-6.62 6.8-7.19 7.19 1.23-7.56v-.01c0-.01 0-.02.01-.03.01-.02.04-.03.06-.04h.01c.27-.11.51-.29.69-.52.02-.03.05-.06.09-.06h.03zm-8.71 8.71-.81.81-8.95-12.94s-.01-.01-.01-.01c-.01-.02-.03-.04-.03-.06s.01-.03.02-.04l.01-.01c.03-.04.05-.08.07-.12l.02-.03c.01-.02.03-.05.05-.06s.05-.01.07 0l9.92 2.05c.03 0 .05.02.08.03.01.01.02.03.02.04.14.53.52.97 1.03 1.17.03.01.02.05 0 .08-.01.01-.01.03-.01.05-.12.74-1.19 7.27-1.48 9.04zm-1.69 1.69c-.6.59-.95.9-1.35 1.03-.39.12-.81.12-1.21 0-.47-.15-.87-.55-1.67-1.36l-8.99-8.99 2.35-3.64c.01-.02.02-.03.04-.05s.06-.01.09 0c.54.16 1.12.13 1.64-.08.03-.01.05-.02.07 0l.03.03zm-14.09-10.19-2.06-2.06 4.07-1.74c.01 0 .02-.01.03-.01.03 0 .05.03.07.07.04.06.08.12.13.18l.01.02c.01.02 0 .03-.01.05zm-2.98-2.97-2.61-2.61c-.44-.44-.77-.77-.99-1.04l7.94 1.65h.03c.05.01.1.02.1.06 0 .05-.06.07-.11.09l-.02.01zm-4.05-5c.01-.17.04-.33.09-.5.15-.47.55-.87 1.36-1.67l3.34-3.34c1.54 2.23 3.08 4.46 4.63 6.69.03.04.06.08.03.11-.15.16-.29.34-.4.53-.01.02-.03.05-.05.06-.01.01-.03 0-.04 0zm5.68-6.4 4.49-4.49c.42.19 1.96.83 3.33 1.41 1.04.44 1.99.84 2.29.97.03.01.06.02.07.05.01.02 0 .04 0 .06-.14.66.05 1.35.52 1.83.03.03 0 .07-.03.11l-.01.02-4.56 7.06c-.01.02-.02.04-.04.05s-.06.01-.09 0c-.18-.05-.36-.07-.54-.07-.16 0-.34.03-.52.06-.02 0-.04.01-.05 0-.02-.01-.03-.03-.05-.05zm5.4-5.4 5.81-5.81c.81-.81 1.21-1.21 1.67-1.36.39-.12.81-.12 1.21 0 .47.15.87.55 1.67 1.36l1.26 1.26-4.14 6.4c-.01.02-.02.03-.04.05s-.06.01-.09 0c-.66-.2-1.38-.06-1.92.37-.03.03-.07.01-.1 0-.53-.24-4.73-2.01-5.33-2.27zm12.5-3.67 3.82 3.82-.92 5.7v.02c0 .01 0 .03-.01.04-.01.02-.03.02-.05.03-.2.06-.38.15-.55.27-.01.01-.01.01-.02.02s-.02.02-.04.02c-.01 0-.03 0-.04-.01l-5.82-2.47-.01-.01c-.04-.02-.08-.03-.08-.07-.03-.32-.14-.64-.31-.91-.03-.05-.06-.09-.03-.14zm-3.93 8.6 5.45 2.31c.03.01.06.03.08.06.01.02.01.04 0 .06-.02.08-.03.17-.03.26v.15c0 .04-.04.05-.08.07h-.01c-.86.37-12.13 5.17-12.15 5.17s-.03 0-.05-.02c-.03-.03 0-.07.03-.11 0-.01.01-.01.01-.02l4.48-6.94.01-.01c.03-.04.06-.09.1-.09l.05.01c.1.01.19.03.28.03.68 0 1.31-.33 1.69-.9.01-.02.02-.03.03-.04.04-.01.08 0 .11.01zm-6.25 9.19 12.28-5.24s.02 0 .03.02c.07.07.12.11.18.15l.03.02c.02.01.05.03.05.06v.02l-1.05 6.46v.03c-.01.05-.01.11-.06.11-.57.04-1.08.36-1.37.85v.01c-.01.02-.03.05-.05.06s-.05.01-.07 0l-9.79-2.02c-.02-.02-.16-.53-.18-.53z" fill="url(#a)"/></svg>
|
||||||
|
|
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.6 KiB |
BIN
.github/assets/qoddi-dark.png
vendored
Before Width: | Height: | Size: 2 KiB |
BIN
.github/assets/qoddi.png
vendored
Before Width: | Height: | Size: 3.1 KiB |
1
.github/assets/sentry-dark.svg
vendored
|
@ -1 +0,0 @@
|
||||||
<svg viewBox="0 0 360.27 79.35" xmlns="http://www.w3.org/2000/svg"><g fill="#fff"><path d="m52.16 4.07c-2.4-3.98-7.57-5.26-11.55-2.86-1.17.71-2.16 1.69-2.86 2.86l-11.86 20.31c18.43 9.2 30.6 27.48 31.98 48.04h-8.32c-1.38-17.62-11.98-33.19-27.86-40.94l-10.97 18.97c8.92 4 15.18 12.26 16.63 21.93h-19.12c-.75-.05-1.32-.71-1.27-1.46.01-.19.07-.37.15-.54l5.3-9.01c-1.79-1.5-3.85-2.66-6.05-3.42l-5.24 9.01c-2.28 3.9-.96 8.91 2.95 11.19.03.02.07.04.1.06 1.24.7 2.64 1.07 4.07 1.08h26.18c.98-12.21-4.49-24.04-14.42-31.2l4.16-7.21c12.54 8.61 19.6 23.22 18.56 38.4h22.18c1.05-23-10.21-44.83-29.57-57.3l8.41-14.41c.39-.65 1.23-.87 1.89-.49.96.52 36.57 62.65 37.23 63.37.37.66.13 1.49-.53 1.86-.21.12-.45.18-.7.17h-8.58c.11 2.29.11 4.58 0 6.86h8.61c4.57.03 8.29-3.65 8.32-8.22 0-.03 0-.06 0-.09 0-1.44-.38-2.86-1.12-4.11z"/><path d="m223.91 50.96-26.59-34.34h-6.63v46.04h6.72v-35.29l27.35 35.28h5.87v-46.04h-6.72zm-66.98-8.54h23.84v-5.98h-23.86v-13.86h26.9v-5.98h-33.75v46.05h34.09v-5.98h-27.24zm-28.03-5.84c-9.28-2.23-11.87-4-11.87-8.29 0-3.86 3.41-6.47 8.49-6.47 4.63.14 9.09 1.75 12.74 4.59l3.6-5.1c-4.62-3.62-10.35-5.53-16.22-5.41-9.12 0-15.48 5.41-15.48 13.1 0 8.29 5.41 11.15 15.24 13.55 8.76 2.02 11.44 3.89 11.44 8.09s-3.6 6.79-9.17 6.79c-5.54-.03-10.88-2.12-14.95-5.87l-4.05 4.85c5.22 4.49 11.89 6.95 18.77 6.94 9.87 0 16.22-5.32 16.22-13.53-.06-6.95-4.17-10.68-14.76-13.24zm223.62-19.97-13.86 21.62-13.76-21.62h-8.04l18.18 27.84v18.22h6.92v-18.43l18.31-27.62zm-116.45 6.24h15.08v39.82h6.92v-39.82h15.08v-6.23h-37.06zm69.08 21.84c6.95-1.93 10.81-6.79 10.81-13.75 0-8.85-6.47-14.41-16.9-14.41h-20.47v46.11h6.85v-16.55h11.62l11.68 16.58h8l-12.61-17.69zm-19.73-4.51v-17.48h12.92c6.74 0 10.59 3.19 10.59 8.72s-4.13 8.76-10.52 8.76z"/></g></svg>
|
|
Before Width: | Height: | Size: 1.7 KiB |
1
.github/assets/shipshape-dark.svg
vendored
Before Width: | Height: | Size: 8.3 KiB |
1
.github/assets/shipshape.svg
vendored
Before Width: | Height: | Size: 8.3 KiB |
2
.github/assets/stackup-dark.svg
vendored
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 8.9 KiB |
2
.github/assets/stackup.svg
vendored
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 8.9 KiB |
1
.github/assets/storyblok-dark.svg
vendored
Before Width: | Height: | Size: 7.9 KiB |
1
.github/assets/storyblok.svg
vendored
Before Width: | Height: | Size: 7.9 KiB |
2
.github/assets/vercel-dark.svg
vendored
|
@ -1 +1 @@
|
||||||
<svg fill="#fff" viewBox="0 0 284 65" xmlns="http://www.w3.org/2000/svg"><path d="m37.59.25 36.95 64h-73.9z"/><path d="m129.97 5.25-27.71 48-27.71-48h10.39l17.32 30 17.32-30z"/><path d="m188.88 17.25v9.69c-1-.29-2.06-.49-3.2-.49-5.81 0-10 4-10 10v14.8h-9v-34h9v9.2c0-5.08 5.91-9.2 13.2-9.2z"/><path d="m200.88 34.25c0 6 3.92 10 10 10 4.12 0 7.21-1.87 8.8-4.92l7.68 4.43c-3.18 5.3-9.14 8.49-16.48 8.49-11.05 0-19-7.2-19-18s7.96-18 19-18c7.34 0 13.29 3.19 16.48 8.49l-7.68 4.43c-1.59-3.05-4.68-4.92-8.8-4.92-6.07 0-10 4-10 10z"/><path d="m274.36 5.25h9v46h-9z"/><path d="m268.36 34.24c0-10.79-7.96-17.99-19-17.99s-19 7.2-19 18 8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5zm-28.45-3.49c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5z"/><path d="m141.68 16.25c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.46 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5z"/></svg>
|
<svg fill="#ffffff" viewBox="0 0 284 65" xmlns="http://www.w3.org/2000/svg"><path d="m37.59.25 36.95 64h-73.9z"/><path d="m129.97 5.25-27.71 48-27.71-48h10.39l17.32 30 17.32-30z"/><path d="m188.88 17.25v9.69c-1-.29-2.06-.49-3.2-.49-5.81 0-10 4-10 10v14.8h-9v-34h9v9.2c0-5.08 5.91-9.2 13.2-9.2z"/><path d="m200.88 34.25c0 6 3.92 10 10 10 4.12 0 7.21-1.87 8.8-4.92l7.68 4.43c-3.18 5.3-9.14 8.49-16.48 8.49-11.05 0-19-7.2-19-18s7.96-18 19-18c7.34 0 13.29 3.19 16.48 8.49l-7.68 4.43c-1.59-3.05-4.68-4.92-8.8-4.92-6.07 0-10 4-10 10z"/><path d="m274.36 5.25h9v46h-9z"/><path d="m268.36 34.24c0-10.79-7.96-17.99-19-17.99-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5zm-28.45-3.49c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5z"/><path d="m141.68 16.25c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.46 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5z"/></svg>
|
||||||
|
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
2
.github/assets/vercel.svg
vendored
|
@ -1 +1 @@
|
||||||
<svg viewBox="0 0 284 65" xmlns="http://www.w3.org/2000/svg"><path d="m37.59.25 36.95 64h-73.9z"/><path d="m129.97 5.25-27.71 48-27.71-48h10.39l17.32 30 17.32-30z"/><path d="m188.88 17.25v9.69c-1-.29-2.06-.49-3.2-.49-5.81 0-10 4-10 10v14.8h-9v-34h9v9.2c0-5.08 5.91-9.2 13.2-9.2z"/><path d="m200.88 34.25c0 6 3.92 10 10 10 4.12 0 7.21-1.87 8.8-4.92l7.68 4.43c-3.18 5.3-9.14 8.49-16.48 8.49-11.05 0-19-7.2-19-18s7.96-18 19-18c7.34 0 13.29 3.19 16.48 8.49l-7.68 4.43c-1.59-3.05-4.68-4.92-8.8-4.92-6.07 0-10 4-10 10z"/><path d="m274.36 5.25h9v46h-9z"/><path d="m268.36 34.24c0-10.79-7.96-17.99-19-17.99s-19 7.2-19 18 8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5zm-28.45-3.49c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5z"/><path d="m141.68 16.25c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.46 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5z"/></svg>
|
<svg viewBox="0 0 284 65" xmlns="http://www.w3.org/2000/svg"><path d="m37.59.25 36.95 64h-73.9z"/><path d="m129.97 5.25-27.71 48-27.71-48h10.39l17.32 30 17.32-30z"/><path d="m188.88 17.25v9.69c-1-.29-2.06-.49-3.2-.49-5.81 0-10 4-10 10v14.8h-9v-34h9v9.2c0-5.08 5.91-9.2 13.2-9.2z"/><path d="m200.88 34.25c0 6 3.92 10 10 10 4.12 0 7.21-1.87 8.8-4.92l7.68 4.43c-3.18 5.3-9.14 8.49-16.48 8.49-11.05 0-19-7.2-19-18s7.96-18 19-18c7.34 0 13.29 3.19 16.48 8.49l-7.68 4.43c-1.59-3.05-4.68-4.92-8.8-4.92-6.07 0-10 4-10 10z"/><path d="m274.36 5.25h9v46h-9z"/><path d="m268.36 34.24c0-10.79-7.96-17.99-19-17.99-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5zm-28.45-3.49c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5z"/><path d="m141.68 16.25c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.46 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5z"/></svg>
|
||||||
|
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
22
.github/labeler.yml
vendored
|
@ -1,37 +1,37 @@
|
||||||
# See https://github.com/actions/labeler
|
# See https://github.com/actions/labeler
|
||||||
|
|
||||||
'pkg: example':
|
example:
|
||||||
- examples/**/*
|
- examples/**/*
|
||||||
|
|
||||||
'🚨 action':
|
'🚨 action':
|
||||||
- .github/workflows/**
|
- .github/workflows/**
|
||||||
|
|
||||||
'pkg: astro':
|
core:
|
||||||
- packages/astro/**
|
- packages/astro/**
|
||||||
|
|
||||||
'pkg: create-astro':
|
create-astro:
|
||||||
- packages/create-astro/**
|
- packages/create-astro/**
|
||||||
|
|
||||||
'feat: markdown':
|
markdown:
|
||||||
- packages/markdown/**
|
- packages/markdown/**
|
||||||
|
|
||||||
'pkg: integration':
|
integration:
|
||||||
- packages/integrations/**
|
- packages/integrations/**
|
||||||
|
|
||||||
'pkg: lit':
|
framework-lit:
|
||||||
- packages/integrations/lit/**
|
- packages/integrations/lit/**
|
||||||
|
|
||||||
'pkg: preact':
|
framework-preact:
|
||||||
- packages/integrations/preact/**
|
- packages/integrations/preact/**
|
||||||
|
|
||||||
'pkg: react':
|
framework-react:
|
||||||
- packages/integrations/react/**
|
- packages/integrations/react/**
|
||||||
|
|
||||||
'pkg: solid':
|
framework-solid:
|
||||||
- packages/integrations/solid/**
|
- packages/integrations/solid/**
|
||||||
|
|
||||||
'pkg: svelte':
|
framework-svelte:
|
||||||
- packages/integrations/svelte/**
|
- packages/integrations/svelte/**
|
||||||
|
|
||||||
'pkg: vue':
|
framework-vue:
|
||||||
- packages/integrations/vue/**
|
- packages/integrations/vue/**
|
||||||
|
|
6
.github/scripts/bundle-size.mjs
vendored
|
@ -1,5 +1,5 @@
|
||||||
import { build } from 'esbuild';
|
import { build } from 'esbuild';
|
||||||
import { existsSync } from 'node:fs';
|
import { existsSync } from 'fs';
|
||||||
|
|
||||||
const CLIENT_RUNTIME_PATH = 'packages/astro/src/runtime/client/';
|
const CLIENT_RUNTIME_PATH = 'packages/astro/src/runtime/client/';
|
||||||
|
|
||||||
|
@ -23,9 +23,7 @@ export default async function checkBundleSize({ github, context }) {
|
||||||
...context.repo,
|
...context.repo,
|
||||||
pull_number: PR_NUM,
|
pull_number: PR_NUM,
|
||||||
});
|
});
|
||||||
const clientRuntimeFiles = files.filter((file) => {
|
const clientRuntimeFiles = files.filter(({ filename }) => filename.startsWith(CLIENT_RUNTIME_PATH));
|
||||||
return file.filename.startsWith(CLIENT_RUNTIME_PATH) && file.status !== 'removed'
|
|
||||||
});
|
|
||||||
if (clientRuntimeFiles.length === 0) return;
|
if (clientRuntimeFiles.length === 0) return;
|
||||||
|
|
||||||
const table = [
|
const table = [
|
||||||
|
|
105
.github/workflows/benchmark.yml
vendored
|
@ -1,105 +0,0 @@
|
||||||
name: Benchmark
|
|
||||||
|
|
||||||
on:
|
|
||||||
issue_comment:
|
|
||||||
types: [created]
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
env:
|
|
||||||
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
|
||||||
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
|
|
||||||
FORCE_COLOR: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
benchmark:
|
|
||||||
if: ${{ github.repository_owner == 'withastro' && github.event.issue.pull_request && startsWith(github.event.comment.body, '!bench') }}
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
outputs:
|
|
||||||
PR-BENCH: ${{ steps.benchmark-pr.outputs.BENCH_RESULT }}
|
|
||||||
MAIN-BENCH: ${{ steps.benchmark-main.outputs.BENCH_RESULT }}
|
|
||||||
steps:
|
|
||||||
# https://github.com/actions/checkout/issues/331#issuecomment-1438220926
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
ref: refs/pull/${{ github.event.issue.number }}/head
|
|
||||||
|
|
||||||
- name: Setup PNPM
|
|
||||||
uses: pnpm/action-setup@v2
|
|
||||||
|
|
||||||
- name: Setup Node
|
|
||||||
uses: actions/setup-node@v3
|
|
||||||
with:
|
|
||||||
node-version: ${{ matrix.node-version }}
|
|
||||||
cache: "pnpm"
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: pnpm install
|
|
||||||
|
|
||||||
- name: Build Packages
|
|
||||||
run: pnpm run build
|
|
||||||
|
|
||||||
- name: Get bench command
|
|
||||||
id: bench-command
|
|
||||||
env:
|
|
||||||
# protects from untrusted user input and command injection
|
|
||||||
COMMENT: ${{ github.event.comment.body }}
|
|
||||||
run: |
|
|
||||||
benchcmd=$(echo "$COMMENT" | grep '!bench' | awk -F ' ' '{print $2}')
|
|
||||||
echo "bench=$benchcmd" >> $GITHUB_OUTPUT
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Run benchmark
|
|
||||||
id: benchmark-pr
|
|
||||||
run: |
|
|
||||||
result=$(pnpm run --silent benchmark ${{ steps.bench-command.outputs.bench }})
|
|
||||||
processed=$(node ./benchmark/ci-helper.js "$result")
|
|
||||||
echo "BENCH_RESULT<<BENCHEOF" >> $GITHUB_OUTPUT
|
|
||||||
echo "### PR Benchmark" >> $GITHUB_OUTPUT
|
|
||||||
echo "$processed" >> $GITHUB_OUTPUT
|
|
||||||
echo "BENCHEOF" >> $GITHUB_OUTPUT
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
# main benchmark
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
ref: "main"
|
|
||||||
|
|
||||||
- name: Install
|
|
||||||
run: |
|
|
||||||
pnpm install
|
|
||||||
|
|
||||||
- name: Build Packages
|
|
||||||
run: pnpm run build
|
|
||||||
|
|
||||||
- name: Run benchmark
|
|
||||||
id: benchmark-main
|
|
||||||
run: |
|
|
||||||
result=$(pnpm run --silent benchmark ${{ steps.bench-command.outputs.bench }})
|
|
||||||
processed=$(node ./benchmark/ci-helper.js "$result")
|
|
||||||
echo "BENCH_RESULT<<BENCHEOF" >> $GITHUB_OUTPUT
|
|
||||||
echo "### Main Benchmark" >> $GITHUB_OUTPUT
|
|
||||||
echo "$processed" >> $GITHUB_OUTPUT
|
|
||||||
echo "BENCHEOF" >> $GITHUB_OUTPUT
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
output-benchmark:
|
|
||||||
if: ${{ github.repository_owner == 'withastro' && github.event.issue.pull_request && startsWith(github.event.comment.body, '!bench') }}
|
|
||||||
needs: [benchmark]
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
permissions:
|
|
||||||
pull-requests: write
|
|
||||||
steps:
|
|
||||||
- name: Comment PR
|
|
||||||
uses: peter-evans/create-or-update-comment@v2
|
|
||||||
continue-on-error: true
|
|
||||||
with:
|
|
||||||
issue-number: ${{ github.event.issue.number }}
|
|
||||||
body: |
|
|
||||||
${{ needs.benchmark.outputs.PR-BENCH }}
|
|
||||||
|
|
||||||
${{ needs.benchmark.outputs.MAIN-BENCH }}
|
|
||||||
edit-mode: replace
|
|
88
.github/workflows/check-merge.yml
vendored
|
@ -1,88 +0,0 @@
|
||||||
name: Check mergeability
|
|
||||||
|
|
||||||
on: pull_request
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
pull-requests: write
|
|
||||||
checks: write
|
|
||||||
statuses: write
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
check:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Check if there is already a block on this PR
|
|
||||||
id: blocked
|
|
||||||
uses: actions/github-script@v6
|
|
||||||
env:
|
|
||||||
issue_number: ${{ github.event.number }}
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
const { data: reviews } = await github.rest.pulls.listReviews({
|
|
||||||
owner: context.repo.owner,
|
|
||||||
repo: context.repo.repo,
|
|
||||||
pull_number: process.env.issue_number,
|
|
||||||
});
|
|
||||||
|
|
||||||
for (const review of reviews) {
|
|
||||||
if (review.user.login === 'github-actions[bot]' && review.state === 'CHANGES_REQUESTED') {
|
|
||||||
return 'true'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 'false'
|
|
||||||
result-encoding: string
|
|
||||||
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
if: steps.blocked.outputs.result != 'true'
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Get changed files in the .changeset folder
|
|
||||||
id: changed-files
|
|
||||||
uses: tj-actions/changed-files@v35
|
|
||||||
if: steps.blocked.outputs.result != 'true'
|
|
||||||
with:
|
|
||||||
files: |
|
|
||||||
.changeset/**/*.md
|
|
||||||
|
|
||||||
- name: Check if any changesets contain minor changes
|
|
||||||
id: minor
|
|
||||||
if: steps.blocked.outputs.result != 'true'
|
|
||||||
run: |
|
|
||||||
echo "Checking for changesets marked as minor"
|
|
||||||
echo '::set-output name=found::false'
|
|
||||||
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
|
|
||||||
if grep -q "'astro': minor" "$file"; then
|
|
||||||
echo '::set-output name=found::true'
|
|
||||||
echo "$file has a minor release tag"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
- name: Add label
|
|
||||||
uses: actions/github-script@v6
|
|
||||||
if: steps.minor.outputs.found == 'true'
|
|
||||||
env:
|
|
||||||
issue_number: ${{ github.event.number }}
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
github.rest.issues.addLabels({
|
|
||||||
issue_number: process.env.issue_number,
|
|
||||||
owner: context.repo.owner,
|
|
||||||
repo: context.repo.repo,
|
|
||||||
labels: ['semver: minor']
|
|
||||||
});
|
|
||||||
|
|
||||||
- name: Change PR Status
|
|
||||||
uses: actions/github-script@v6
|
|
||||||
if: steps.minor.outputs.found == 'true'
|
|
||||||
env:
|
|
||||||
issue_number: ${{ github.event.number }}
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
github.rest.pulls.createReview({
|
|
||||||
owner: context.repo.owner,
|
|
||||||
repo: context.repo.repo,
|
|
||||||
pull_number: process.env.issue_number,
|
|
||||||
event: 'REQUEST_CHANGES',
|
|
||||||
body: 'This PR is blocked because it contains a `minor` changeset. A reviewer will merge this at the next release if approved.'
|
|
||||||
});
|
|
50
.github/workflows/check.yml
vendored
|
@ -1,50 +0,0 @@
|
||||||
name: Examples astro check
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
merge_group:
|
|
||||||
pull_request:
|
|
||||||
paths:
|
|
||||||
- "examples/**"
|
|
||||||
- ".github/workflows/check.yml"
|
|
||||||
- "scripts/smoke/check.js"
|
|
||||||
- "packages/astro/src/@types/astro.ts"
|
|
||||||
|
|
||||||
env:
|
|
||||||
ASTRO_TELEMETRY_DISABLED: true
|
|
||||||
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
|
||||||
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
|
|
||||||
FORCE_COLOR: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
check:
|
|
||||||
name: astro check
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
timeout-minutes: 7
|
|
||||||
steps:
|
|
||||||
- name: Check out repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Setup PNPM
|
|
||||||
uses: pnpm/action-setup@v2
|
|
||||||
|
|
||||||
- name: Setup Node
|
|
||||||
uses: actions/setup-node@v3
|
|
||||||
with:
|
|
||||||
node-version: 18
|
|
||||||
cache: "pnpm"
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: pnpm install
|
|
||||||
|
|
||||||
- name: Build
|
|
||||||
run: pnpm run build
|
|
||||||
|
|
||||||
- name: Status
|
|
||||||
run: git status
|
|
||||||
|
|
||||||
- name: astro check
|
|
||||||
run: pnpm run test:check-examples
|
|
196
.github/workflows/ci.yml
vendored
|
@ -1,16 +1,13 @@
|
||||||
name: CI
|
name: CI
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
merge_group:
|
|
||||||
pull_request:
|
pull_request:
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- ".vscode/**"
|
- '.vscode/**'
|
||||||
- "**/*.md"
|
- '**/*.md'
|
||||||
- ".github/ISSUE_TEMPLATE/**"
|
|
||||||
|
|
||||||
# Automatically cancel older in-progress jobs on the same branch
|
# Automatically cancel older in-progress jobs on the same branch
|
||||||
concurrency:
|
concurrency:
|
||||||
|
@ -25,68 +22,78 @@ env:
|
||||||
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
|
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
|
||||||
FORCE_COLOR: true
|
FORCE_COLOR: true
|
||||||
ASTRO_TELEMETRY_DISABLED: true
|
ASTRO_TELEMETRY_DISABLED: true
|
||||||
# 7 GiB by default on GitHub, setting to 6 GiB
|
|
||||||
# https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources
|
|
||||||
NODE_OPTIONS: --max-old-space-size=6144
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
# Build primes out Turbo build cache and pnpm cache
|
|
||||||
build:
|
|
||||||
name: "Build: ${{ matrix.os }}"
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
timeout-minutes: 3
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
OS: [ubuntu-latest, windows-latest]
|
|
||||||
NODE_VERSION: [18]
|
|
||||||
fail-fast: true
|
|
||||||
steps:
|
|
||||||
# Disable crlf so all OS can share the same Turbo cache
|
|
||||||
# https://github.com/actions/checkout/issues/135
|
|
||||||
- name: Disable git crlf
|
|
||||||
run: git config --global core.autocrlf false
|
|
||||||
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Setup PNPM
|
|
||||||
uses: pnpm/action-setup@v2
|
|
||||||
|
|
||||||
- name: Setup node@${{ matrix.NODE_VERSION }}
|
|
||||||
uses: actions/setup-node@v3
|
|
||||||
with:
|
|
||||||
node-version: ${{ matrix.NODE_VERSION }}
|
|
||||||
cache: "pnpm"
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: pnpm install
|
|
||||||
|
|
||||||
# Only build in ubuntu as windows can share the build cache.
|
|
||||||
# Also only build in core repo as forks don't have access to the Turbo cache.
|
|
||||||
- name: Build Packages
|
|
||||||
if: ${{ matrix.os == 'ubuntu-latest' && github.repository_owner == 'withastro' }}
|
|
||||||
run: pnpm run build
|
|
||||||
|
|
||||||
lint:
|
lint:
|
||||||
name: Lint
|
name: Lint
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
timeout-minutes: 5
|
|
||||||
needs: build
|
|
||||||
steps:
|
steps:
|
||||||
- name: Disable git crlf
|
- name: Check out repository
|
||||||
run: git config --global core.autocrlf false
|
|
||||||
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Setup PNPM
|
- name: Setup PNPM
|
||||||
uses: pnpm/action-setup@v2
|
uses: pnpm/action-setup@v2.2.1
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
with:
|
with:
|
||||||
node-version: 18
|
node-version: 16
|
||||||
cache: "pnpm"
|
cache: 'pnpm'
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: pnpm install
|
||||||
|
|
||||||
|
- name: Status
|
||||||
|
run: git status
|
||||||
|
|
||||||
|
# Lint autofix cannot run on forks, so just skip those! See https://github.com/wearerequired/lint-action/issues/13
|
||||||
|
- name: Lint (External)
|
||||||
|
if: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.repo.owner.login != github.repository_owner }}
|
||||||
|
run: pnpm run lint
|
||||||
|
|
||||||
|
# Otherwise, run lint autofixer
|
||||||
|
- name: Lint
|
||||||
|
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.owner.login == github.repository_owner }}
|
||||||
|
uses: wearerequired/lint-action@v1.11.1
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
eslint: true
|
||||||
|
prettier: false
|
||||||
|
auto_fix: true
|
||||||
|
git_name: github-actions[bot]
|
||||||
|
git_email: github-actions[bot]@users.noreply.github.com
|
||||||
|
commit_message: 'chore(lint): ${linter} fix'
|
||||||
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
neutral_check_on_warning: true
|
||||||
|
|
||||||
|
# Checks that the formatter runs successfully on all files
|
||||||
|
# In the future, we may have this fail PRs on unformatted code
|
||||||
|
- name: Format Check
|
||||||
|
run: pnpm run format --list
|
||||||
|
|
||||||
|
# Build primes out build caches for Turbo
|
||||||
|
build:
|
||||||
|
name: 'Build: ${{ matrix.os }}'
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
OS: [ubuntu-latest]
|
||||||
|
NODE_VERSION: [14]
|
||||||
|
fail-fast: true
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Setup PNPM
|
||||||
|
uses: pnpm/action-setup@v2.2.1
|
||||||
|
|
||||||
|
- name: Setup node@${{ matrix.NODE_VERSION }}
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: ${{ matrix.NODE_VERSION }}
|
||||||
|
cache: 'pnpm'
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: pnpm install
|
run: pnpm install
|
||||||
|
@ -94,44 +101,38 @@ jobs:
|
||||||
- name: Build Packages
|
- name: Build Packages
|
||||||
run: pnpm run build
|
run: pnpm run build
|
||||||
|
|
||||||
- name: Lint
|
|
||||||
run: pnpm run lint
|
|
||||||
|
|
||||||
- name: Format Check
|
|
||||||
run: pnpm run format --check
|
|
||||||
|
|
||||||
test:
|
test:
|
||||||
name: "Test: ${{ matrix.os }} (node@${{ matrix.NODE_VERSION }})"
|
name: 'Test: ${{ matrix.os }} (node@${{ matrix.NODE_VERSION }})'
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
timeout-minutes: 25
|
|
||||||
needs: build
|
needs: build
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
OS: [ubuntu-latest]
|
OS: [ubuntu-latest, windows-latest]
|
||||||
NODE_VERSION: [18, 20.5.1]
|
# TODO: Enable node@18!
|
||||||
|
NODE_VERSION: [14, 16]
|
||||||
include:
|
include:
|
||||||
- os: macos-latest
|
- os: macos-latest
|
||||||
NODE_VERSION: 18
|
NODE_VERSION: 14
|
||||||
- os: windows-latest
|
|
||||||
NODE_VERSION: 18.17.1
|
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
env:
|
env:
|
||||||
NODE_VERSION: ${{ matrix.NODE_VERSION }}
|
NODE_VERSION: ${{ matrix.NODE_VERSION }}
|
||||||
steps:
|
steps:
|
||||||
- name: Disable git crlf
|
|
||||||
run: git config --global core.autocrlf false
|
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Setup PNPM
|
- name: Setup PNPM
|
||||||
uses: pnpm/action-setup@v2
|
uses: pnpm/action-setup@v2.2.1
|
||||||
|
|
||||||
- name: Setup node@${{ matrix.NODE_VERSION }}
|
- name: Setup node@${{ matrix.NODE_VERSION }}
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
with:
|
with:
|
||||||
node-version: ${{ matrix.NODE_VERSION }}
|
node-version: ${{ matrix.NODE_VERSION }}
|
||||||
cache: "pnpm"
|
cache: 'pnpm'
|
||||||
|
|
||||||
|
- name: Use Deno
|
||||||
|
uses: denoland/setup-deno@v1
|
||||||
|
with:
|
||||||
|
deno-version: v1.19.3
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: pnpm install
|
run: pnpm install
|
||||||
|
@ -143,32 +144,29 @@ jobs:
|
||||||
run: pnpm run test
|
run: pnpm run test
|
||||||
|
|
||||||
e2e:
|
e2e:
|
||||||
name: "Test (E2E): ${{ matrix.os }} (node@${{ matrix.NODE_VERSION }})"
|
name: 'Test (E2E): ${{ matrix.os }} (node@${{ matrix.NODE_VERSION }})'
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
timeout-minutes: 25
|
timeout-minutes: 25
|
||||||
needs: build
|
needs: build
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
OS: [ubuntu-latest, windows-latest]
|
OS: [ubuntu-latest, windows-latest]
|
||||||
NODE_VERSION: [18.17.1]
|
NODE_VERSION: [14]
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
env:
|
env:
|
||||||
NODE_VERSION: ${{ matrix.NODE_VERSION }}
|
NODE_VERSION: ${{ matrix.NODE_VERSION }}
|
||||||
steps:
|
steps:
|
||||||
- name: Disable git crlf
|
|
||||||
run: git config --global core.autocrlf false
|
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Setup PNPM
|
- name: Setup PNPM
|
||||||
uses: pnpm/action-setup@v2
|
uses: pnpm/action-setup@v2.2.1
|
||||||
|
|
||||||
- name: Setup node@${{ matrix.NODE_VERSION }}
|
- name: Setup node@${{ matrix.NODE_VERSION }}
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
with:
|
with:
|
||||||
node-version: ${{ matrix.NODE_VERSION }}
|
node-version: ${{ matrix.NODE_VERSION }}
|
||||||
cache: "pnpm"
|
cache: 'pnpm'
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: pnpm install
|
run: pnpm install
|
||||||
|
@ -180,31 +178,27 @@ jobs:
|
||||||
run: pnpm run test:e2e
|
run: pnpm run test:e2e
|
||||||
|
|
||||||
smoke:
|
smoke:
|
||||||
name: "Test (Smoke): ${{ matrix.os }} (node@${{ matrix.NODE_VERSION }})"
|
name: 'Test (Smoke): ${{ matrix.os }} (node@${{ matrix.NODE_VERSION }})'
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
timeout-minutes: 25
|
|
||||||
needs: build
|
needs: build
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
OS: [ubuntu-latest, windows-latest]
|
OS: [ubuntu-latest, windows-latest]
|
||||||
NODE_VERSION: [18]
|
NODE_VERSION: [14]
|
||||||
env:
|
env:
|
||||||
NODE_VERSION: ${{ matrix.NODE_VERSION }}
|
NODE_VERSION: ${{ matrix.NODE_VERSION }}
|
||||||
steps:
|
steps:
|
||||||
- name: Disable git crlf
|
|
||||||
run: git config --global core.autocrlf false
|
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Setup PNPM
|
- name: Setup PNPM
|
||||||
uses: pnpm/action-setup@v2
|
uses: pnpm/action-setup@v2.2.1
|
||||||
|
|
||||||
- name: Setup node@${{ matrix.NODE_VERSION }}
|
- name: Setup node@${{ matrix.NODE_VERSION }}
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
with:
|
with:
|
||||||
node-version: ${{ matrix.NODE_VERSION }}
|
node-version: ${{ matrix.NODE_VERSION }}
|
||||||
cache: "pnpm"
|
cache: 'pnpm'
|
||||||
|
|
||||||
- name: Checkout docs
|
- name: Checkout docs
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
@ -215,36 +209,8 @@ jobs:
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: pnpm install --no-frozen-lockfile
|
run: pnpm install --no-frozen-lockfile
|
||||||
|
|
||||||
# Reset lockfile changes so that Turbo can reuse the old build cache
|
|
||||||
- name: Reset lockfile changes
|
|
||||||
run: git reset --hard
|
|
||||||
|
|
||||||
- name: Build Packages
|
- name: Build Packages
|
||||||
run: pnpm run build
|
run: pnpm run build
|
||||||
|
|
||||||
- name: Remove docs translations except for English and Korean
|
|
||||||
run: find smoke/docs/src/content/docs ! -name 'en' ! -name 'ko' -type d -mindepth 1 -maxdepth 1 -exec rm -rf {} +
|
|
||||||
|
|
||||||
- name: Check if docs changed
|
|
||||||
id: changes
|
|
||||||
uses: dorny/paths-filter@v2
|
|
||||||
with:
|
|
||||||
filters: |
|
|
||||||
docs:
|
|
||||||
- 'packages/integrations/*/README.md'
|
|
||||||
- 'packages/astro/src/@types/astro.ts'
|
|
||||||
- 'packages/astro/src/core/errors/errors-data.ts'
|
|
||||||
|
|
||||||
- name: Build autogenerated docs pages from current astro branch
|
|
||||||
if: ${{ steps.changes.outputs.docs == 'true' }}
|
|
||||||
run: cd smoke/docs && pnpm docgen && pnpm docgen:errors && pnpm docgen:integrations
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
SOURCE_REPO: ${{ github.event.pull_request.head.repo.full_name || github.event.repository.full_name }}
|
|
||||||
SOURCE_BRANCH: ${{ github.head_ref || github.ref_name }}
|
|
||||||
|
|
||||||
- name: Test
|
- name: Test
|
||||||
run: pnpm run test:smoke
|
run: pnpm run test:smoke
|
||||||
env:
|
|
||||||
SKIP_OG: true
|
|
||||||
PUBLIC_TWO_LANG: true
|
|
||||||
|
|
44
.github/workflows/cleanup-cache.yml
vendored
|
@ -1,44 +0,0 @@
|
||||||
name: Cleanup cache
|
|
||||||
|
|
||||||
on:
|
|
||||||
schedule:
|
|
||||||
- cron: "0 11 * * *"
|
|
||||||
pull_request:
|
|
||||||
types:
|
|
||||||
- closed
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
cleanup:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Check out code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Cleanup caches older than 5 days
|
|
||||||
if: github.event_name == 'schedule'
|
|
||||||
uses: MyAlbum/purge-cache@v2
|
|
||||||
with:
|
|
||||||
max-age: 432000
|
|
||||||
|
|
||||||
# https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#force-deleting-cache-entries
|
|
||||||
- name: Cleanup on PR close
|
|
||||||
if: github.event_name == 'pull_request'
|
|
||||||
run: |
|
|
||||||
gh extension install actions/gh-actions-cache
|
|
||||||
|
|
||||||
REPO=${{ github.repository }}
|
|
||||||
BRANCH="refs/pull/${{ github.event.pull_request.number }}/merge"
|
|
||||||
|
|
||||||
echo "Fetching list of cache key"
|
|
||||||
cacheKeysForPR=$(gh actions-cache list -R $REPO -B $BRANCH -L 100 | cut -f 1 )
|
|
||||||
|
|
||||||
## Setting this to not fail the workflow while deleting cache keys.
|
|
||||||
set +e
|
|
||||||
echo "Deleting caches..."
|
|
||||||
for cacheKey in $cacheKeysForPR
|
|
||||||
do
|
|
||||||
gh actions-cache delete $cacheKey -R $REPO -B $BRANCH --confirm
|
|
||||||
done
|
|
||||||
echo "Done"
|
|
||||||
env:
|
|
||||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
36
.github/workflows/format.yml
vendored
|
@ -1,15 +1,37 @@
|
||||||
name: Format
|
name: 'Format Code'
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
prettier:
|
format:
|
||||||
if: github.repository_owner == 'withastro'
|
runs-on: ubuntu-latest
|
||||||
uses: withastro/automation/.github/workflows/format.yml@main
|
env:
|
||||||
|
NODE_OPTIONS: "--max_old_space_size=4096"
|
||||||
|
steps:
|
||||||
|
- name: Check out code using Git
|
||||||
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
command: "format:ci"
|
ref: ${{ github.head_ref }}
|
||||||
secrets: inherit
|
# Needs access to push to main
|
||||||
|
token: ${{ secrets.FREDKBOT_GITHUB_TOKEN }}
|
||||||
|
- name: Setup PNPM
|
||||||
|
uses: pnpm/action-setup@v2.2.1
|
||||||
|
- name: Setup Node
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: 16
|
||||||
|
cache: 'pnpm'
|
||||||
|
- name: Install dependencies
|
||||||
|
run: pnpm install
|
||||||
|
- name: Format code
|
||||||
|
run: pnpm run format:ci
|
||||||
|
- name: Commit changes
|
||||||
|
uses: stefanzweifel/git-auto-commit-action@v4
|
||||||
|
with:
|
||||||
|
commit_message: '[ci] format'
|
||||||
|
branch: ${{ github.head_ref }}
|
||||||
|
commit_user_name: fredkbot
|
||||||
|
commit_user_email: fred+astrobot@astro.build
|
||||||
|
|
30
.github/workflows/issue-labeled.yml
vendored
|
@ -1,30 +0,0 @@
|
||||||
name: Issue Labeled
|
|
||||||
|
|
||||||
on:
|
|
||||||
issues:
|
|
||||||
types: [labeled]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
reply-labeled:
|
|
||||||
if: github.repository == 'withastro/astro'
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: remove triage
|
|
||||||
if: contains(github.event.label.description, '(priority)') && contains(github.event.issue.labels.*.name, 'needs triage')
|
|
||||||
uses: actions-cool/issues-helper@v3
|
|
||||||
with:
|
|
||||||
actions: "remove-labels"
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
issue-number: ${{ github.event.issue.number }}
|
|
||||||
labels: "needs triage"
|
|
||||||
|
|
||||||
- name: needs repro
|
|
||||||
if: github.event.label.name == 'needs repro'
|
|
||||||
uses: actions-cool/issues-helper@v3
|
|
||||||
with:
|
|
||||||
actions: "create-comment, remove-labels"
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
issue-number: ${{ github.event.issue.number }}
|
|
||||||
body: |
|
|
||||||
Hello @${{ github.event.issue.user.login }}. Please provide a [minimal reproduction](https://stackoverflow.com/help/minimal-reproducible-example) using a GitHub repository or [StackBlitz](https://astro.new). Issues marked with `needs repro` will be closed if they have no activity within 3 days.
|
|
||||||
labels: "needs triage"
|
|
18
.github/workflows/issue-needs-repro.yml
vendored
|
@ -1,18 +0,0 @@
|
||||||
name: Close Issues (needs repro)
|
|
||||||
|
|
||||||
on:
|
|
||||||
schedule:
|
|
||||||
- cron: "0 0 * * *"
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
close-issues:
|
|
||||||
if: github.repository == 'withastro/astro'
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: needs repro
|
|
||||||
uses: actions-cool/issues-helper@v3
|
|
||||||
with:
|
|
||||||
actions: "close-issues"
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
labels: "needs repro"
|
|
||||||
inactive-day: 3
|
|
23
.github/workflows/issue-opened.yml
vendored
|
@ -1,23 +0,0 @@
|
||||||
name: Label issues
|
|
||||||
on:
|
|
||||||
issues:
|
|
||||||
types:
|
|
||||||
- reopened
|
|
||||||
- opened
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
label_issues:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
if: github.repository == 'withastro/astro'
|
|
||||||
permissions:
|
|
||||||
issues: write
|
|
||||||
steps:
|
|
||||||
- uses: actions/github-script@v6
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
github.rest.issues.addLabels({
|
|
||||||
issue_number: context.issue.number,
|
|
||||||
owner: context.repo.owner,
|
|
||||||
repo: context.repo.repo,
|
|
||||||
labels: ["needs triage"]
|
|
||||||
})
|
|
34
.github/workflows/issue.yml
vendored
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
name: Auto Assign Issues to Project
|
||||||
|
|
||||||
|
on:
|
||||||
|
issues:
|
||||||
|
types: [opened]
|
||||||
|
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
auto_assign_issues:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
name: Auto-assign new issues to projects
|
||||||
|
steps:
|
||||||
|
- name: Assign Bugs to the Bug Tracker
|
||||||
|
uses: srggrs/assign-one-project-github-action@1.3.1
|
||||||
|
if: github.event.action == 'opened' && startsWith(github.event.issue.title, '🐛 BUG:')
|
||||||
|
with:
|
||||||
|
project: 'https://github.com/withastro/astro/projects/2'
|
||||||
|
column_name: 'Needs Triage'
|
||||||
|
|
||||||
|
- name: Assign RFCs to the RFC Tracker
|
||||||
|
uses: srggrs/assign-one-project-github-action@1.3.1
|
||||||
|
if: github.event.action == 'opened' && startsWith(github.event.issue.title, '💡 RFC:')
|
||||||
|
with:
|
||||||
|
project: 'https://github.com/withastro/astro/projects/3'
|
||||||
|
column_name: 'Discussing'
|
||||||
|
|
||||||
|
- name: Assign RFCs to the Docs Tracker
|
||||||
|
uses: srggrs/assign-one-project-github-action@1.3.1
|
||||||
|
if: github.event.action == 'opened' && startsWith(github.event.issue.title, '📘 DOC:')
|
||||||
|
with:
|
||||||
|
project: 'https://github.com/withastro/astro/projects/5'
|
||||||
|
column_name: 'TODO'
|
27
.github/workflows/main.yml
vendored
|
@ -1,7 +1,6 @@
|
||||||
name: Main Checks
|
name: Main Checks
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
|
@ -17,12 +16,22 @@ concurrency:
|
||||||
jobs:
|
jobs:
|
||||||
congrats:
|
congrats:
|
||||||
name: congratsbot
|
name: congratsbot
|
||||||
if: ${{ github.repository_owner == 'withastro' && github.event.head_commit.message != '[ci] format' }}
|
if: ${{ github.repository_owner == 'withastro' }}
|
||||||
uses: withastro/automation/.github/workflows/congratsbot.yml@main
|
runs-on: ubuntu-latest
|
||||||
with:
|
steps:
|
||||||
EMOJIS: '🎉,🎊,🧑🚀,🥳,🙌,🚀,👏,<:houston_golden:1068575433647456447>,<:astrocoin:894990669515489301>,<:astro_pride:1130501345326157854>'
|
- id: setup
|
||||||
secrets:
|
env:
|
||||||
|
MESSAGE: ${{ github.event.commits[0].message }}
|
||||||
|
run: |
|
||||||
|
TRIMMED=$(echo "$MESSAGE" | sed '1!d;q')
|
||||||
|
echo "::set-output name=COMMIT_MSG::${TRIMMED}"
|
||||||
|
- name: Send a Discord notification when a PR is merged
|
||||||
|
env:
|
||||||
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_CONGRATS }}
|
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_CONGRATS }}
|
||||||
|
# DISCORD_AVATAR: ${{ github.event.pull_request.user.avatar_url }}
|
||||||
|
uses: Ilshidur/action-discord@0.3.2
|
||||||
|
with:
|
||||||
|
args: "**Merged!** ${{ github.event.commits[0].author.name }}: [`${{ steps.setup.outputs.COMMIT_MSG }}`](<https://github.com/withastro/astro/commit/${{ github.event.commits[0].id }}>)"
|
||||||
|
|
||||||
check_for_update:
|
check_for_update:
|
||||||
name: Check for Updates
|
name: Check for Updates
|
||||||
|
@ -33,13 +42,13 @@ jobs:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Setup PNPM
|
- name: Setup PNPM
|
||||||
uses: pnpm/action-setup@v2
|
uses: pnpm/action-setup@v2.2.1
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
with:
|
with:
|
||||||
node-version: 18
|
node-version: 16
|
||||||
cache: "pnpm"
|
cache: 'pnpm'
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: pnpm install
|
run: pnpm install
|
||||||
|
|
74
.github/workflows/nightly.yml
vendored
|
@ -1,13 +1,77 @@
|
||||||
name: Nightly
|
name: 'Nightly'
|
||||||
|
|
||||||
on:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
# Run every Monday at 12:00 UTC
|
# * is a special character in YAML so you have to quote this string
|
||||||
- cron: "0 12 * * 1"
|
- cron: '0 12 * * *'
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
stat:
|
||||||
|
if: github.repository_owner == 'withastro'
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Check out code using Git
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Setup PNPM
|
||||||
|
uses: pnpm/action-setup@v2.2.1
|
||||||
|
|
||||||
|
- name: Setup Node
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: 16
|
||||||
|
cache: 'pnpm'
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: pnpm install
|
||||||
|
|
||||||
|
- name: Collect stats
|
||||||
|
run: node scripts/stats/index.js
|
||||||
|
env:
|
||||||
|
# Needs access to collect stats from the GitHub API
|
||||||
|
GITHUB_TOKEN: ${{ secrets.FREDKBOT_GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Commit changes
|
||||||
|
uses: stefanzweifel/git-auto-commit-action@v4
|
||||||
|
with:
|
||||||
|
commit_message: '[ci] collect stats'
|
||||||
|
branch: ${{ github.head_ref }}
|
||||||
|
# Needs access to push to main
|
||||||
|
token: ${{ secrets.FREDKBOT_GITHUB_TOKEN }}
|
||||||
|
|
||||||
lockfile:
|
lockfile:
|
||||||
if: github.repository_owner == 'withastro'
|
if: github.repository_owner == 'withastro'
|
||||||
uses: withastro/automation/.github/workflows/lockfile.yml@main
|
runs-on: ubuntu-latest
|
||||||
secrets: inherit
|
steps:
|
||||||
|
|
||||||
|
- name: Check out code using Git
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Setup PNPM
|
||||||
|
uses: pnpm/action-setup@v2.2.1
|
||||||
|
|
||||||
|
- name: Setup Node
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: 16
|
||||||
|
cache: 'pnpm'
|
||||||
|
|
||||||
|
- name: Delete the existing pnpm-lock.yaml file
|
||||||
|
run: rm pnpm-lock.yaml
|
||||||
|
|
||||||
|
- name: Create a fresh pnpm lockfile (no install)
|
||||||
|
run: pnpm install --lockfile-only
|
||||||
|
|
||||||
|
- name: Create Pull Request
|
||||||
|
id: createpr
|
||||||
|
uses: peter-evans/create-pull-request@v3
|
||||||
|
with:
|
||||||
|
branch: ci/lockfile
|
||||||
|
# Access token is needed to trigger CI on this PR
|
||||||
|
token: ${{ secrets.FREDKBOT_GITHUB_TOKEN }}
|
||||||
|
commit-message: '[ci] update lockfile'
|
||||||
|
title: '[ci] update lockfile'
|
||||||
|
body: >
|
||||||
|
This PR is auto-generated by a nightly GitHub action.
|
||||||
|
It should automatically be merged if tests pass.
|
||||||
|
|
16
.github/workflows/release.yml
vendored
|
@ -4,9 +4,6 @@ on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
- "1-legacy"
|
|
||||||
- "2-legacy"
|
|
||||||
- next
|
|
||||||
|
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
|
@ -22,20 +19,17 @@ jobs:
|
||||||
name: Changelog PR or Release
|
name: Changelog PR or Release
|
||||||
if: ${{ github.repository_owner == 'withastro' }}
|
if: ${{ github.repository_owner == 'withastro' }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
id-token: write
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Setup PNPM
|
- name: Setup PNPM
|
||||||
uses: pnpm/action-setup@v2
|
uses: pnpm/action-setup@v2.2.1
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
with:
|
with:
|
||||||
node-version: 18
|
node-version: 16
|
||||||
cache: "pnpm"
|
cache: 'pnpm'
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: pnpm install
|
run: pnpm install
|
||||||
|
@ -50,8 +44,8 @@ jobs:
|
||||||
# Note: pnpm install after versioning is necessary to refresh lockfile
|
# Note: pnpm install after versioning is necessary to refresh lockfile
|
||||||
version: pnpm run version
|
version: pnpm run version
|
||||||
publish: pnpm exec changeset publish
|
publish: pnpm exec changeset publish
|
||||||
commit: "[ci] release"
|
commit: '[ci] release'
|
||||||
title: "[ci] release"
|
title: '[ci] release'
|
||||||
env:
|
env:
|
||||||
# Needs access to push to main
|
# Needs access to push to main
|
||||||
GITHUB_TOKEN: ${{ secrets.FREDKBOT_GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.FREDKBOT_GITHUB_TOKEN }}
|
||||||
|
|
11
.github/workflows/scripts.yml
vendored
|
@ -1,12 +1,11 @@
|
||||||
name: Scripts
|
name: Scripts
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
|
||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
branches:
|
||||||
- "main"
|
- 'main'
|
||||||
paths:
|
paths:
|
||||||
- "packages/astro/src/runtime/client/**/*"
|
- 'packages/astro/src/runtime/client/**/*'
|
||||||
|
|
||||||
# Automatically cancel in-progress actions on the same branch
|
# Automatically cancel in-progress actions on the same branch
|
||||||
concurrency:
|
concurrency:
|
||||||
|
@ -32,13 +31,13 @@ jobs:
|
||||||
path: main
|
path: main
|
||||||
|
|
||||||
- name: Setup PNPM
|
- name: Setup PNPM
|
||||||
uses: pnpm/action-setup@v2
|
uses: pnpm/action-setup@v2.2.1
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
with:
|
with:
|
||||||
node-version: 18
|
node-version: 16
|
||||||
cache: "pnpm"
|
cache: 'pnpm'
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: pnpm install
|
run: pnpm install
|
||||||
|
|
16
.github/workflows/snapshot-release.yml
vendored
|
@ -1,7 +1,6 @@
|
||||||
name: Create a Snapshot Release
|
name: Create a Snapshot Release
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
|
||||||
issue_comment:
|
issue_comment:
|
||||||
types: [created]
|
types: [created]
|
||||||
|
|
||||||
|
@ -19,11 +18,6 @@ jobs:
|
||||||
name: Create a snapshot release of a pull request
|
name: Create a snapshot release of a pull request
|
||||||
if: ${{ github.repository_owner == 'withastro' && github.event.issue.pull_request && startsWith(github.event.comment.body, '!preview') }}
|
if: ${{ github.repository_owner == 'withastro' && github.event.issue.pull_request && startsWith(github.event.comment.body, '!preview') }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
id-token: write
|
|
||||||
issues: write
|
|
||||||
pull-requests: write
|
|
||||||
steps:
|
steps:
|
||||||
- name: "Check if user has admin access (only admins can publish snapshot releases)."
|
- name: "Check if user has admin access (only admins can publish snapshot releases)."
|
||||||
uses: "lannonbr/repo-permission-check-action@2.0.0"
|
uses: "lannonbr/repo-permission-check-action@2.0.0"
|
||||||
|
@ -58,14 +52,14 @@ jobs:
|
||||||
ref: ${{ steps.refs.outputs.head_ref }}
|
ref: ${{ steps.refs.outputs.head_ref }}
|
||||||
|
|
||||||
- name: Setup PNPM
|
- name: Setup PNPM
|
||||||
uses: pnpm/action-setup@v2
|
uses: pnpm/action-setup@v2.2.1
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
with:
|
with:
|
||||||
node-version: 18
|
node-version: 16
|
||||||
registry-url: "https://registry.npmjs.org"
|
registry-url: 'https://registry.npmjs.org'
|
||||||
cache: "pnpm"
|
cache: 'pnpm'
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: pnpm install
|
run: pnpm install
|
||||||
|
@ -86,8 +80,6 @@ jobs:
|
||||||
id: publish
|
id: publish
|
||||||
run: |
|
run: |
|
||||||
pnpm run release --tag next--${{ steps.getSnapshotName.outputs.result }} > publish.output.txt 2>&1
|
pnpm run release --tag next--${{ steps.getSnapshotName.outputs.result }} > publish.output.txt 2>&1
|
||||||
echo "Release complete"
|
|
||||||
cat publish.output.txt
|
|
||||||
echo ::set-output name=result::`cat publish.output.txt`
|
echo ::set-output name=result::`cat publish.output.txt`
|
||||||
env:
|
env:
|
||||||
# Needs access to publish to npm
|
# Needs access to publish to npm
|
||||||
|
|
51
.github/workflows/test-hosts.yml
vendored
|
@ -1,51 +0,0 @@
|
||||||
name: Hosted tests
|
|
||||||
|
|
||||||
on:
|
|
||||||
schedule:
|
|
||||||
- cron: '0 0 * * 0'
|
|
||||||
|
|
||||||
env:
|
|
||||||
ASTRO_TELEMETRY_DISABLED: true
|
|
||||||
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
|
||||||
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
|
|
||||||
VERCEL_ORG_ID: ${{ secrets.VERCEL_TEST_ORG_ID }}
|
|
||||||
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_TEST_PROJECT_ID }}
|
|
||||||
VERCEL_TOKEN: ${{ secrets.VERCEL_TEST_TOKEN }}
|
|
||||||
FORCE_COLOR: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
test:
|
|
||||||
name: Run tests
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Check out repository
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Setup PNPM
|
|
||||||
uses: pnpm/action-setup@v2
|
|
||||||
|
|
||||||
- name: Setup Node
|
|
||||||
uses: actions/setup-node@v3
|
|
||||||
with:
|
|
||||||
node-version: 18
|
|
||||||
cache: "pnpm"
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: pnpm install
|
|
||||||
|
|
||||||
- name: Build Astro
|
|
||||||
run: pnpm turbo build --filter astro --filter @astrojs/vercel
|
|
||||||
|
|
||||||
- name: Build test project
|
|
||||||
working-directory: ./packages/integrations/vercel/test/hosted/hosted-astro-project
|
|
||||||
run:
|
|
||||||
pnpm run build
|
|
||||||
|
|
||||||
- name: Deploy to Vercel
|
|
||||||
working-directory: ./packages/integrations/vercel/test/hosted/hosted-astro-project
|
|
||||||
run:
|
|
||||||
pnpm dlx vercel --prod --prebuilt
|
|
||||||
|
|
||||||
- name: Test
|
|
||||||
run:
|
|
||||||
pnpm run test:e2e:hosts
|
|
13
.gitignore
vendored
|
@ -3,17 +3,12 @@ dist/
|
||||||
*.tsbuildinfo
|
*.tsbuildinfo
|
||||||
.DS_Store
|
.DS_Store
|
||||||
.vercel
|
.vercel
|
||||||
.netlify
|
|
||||||
_site/
|
_site/
|
||||||
scripts/smoke/*-main/
|
scripts/smoke/*-main/
|
||||||
scripts/memory/project/src/pages/
|
scripts/memory/project/src/pages/
|
||||||
benchmark/projects/
|
|
||||||
benchmark/results/
|
|
||||||
*.log
|
*.log
|
||||||
package-lock.json
|
package-lock.json
|
||||||
.turbo/
|
.turbo/
|
||||||
.eslintcache
|
|
||||||
.pnpm-store
|
|
||||||
|
|
||||||
# ignore top-level vscode settings
|
# ignore top-level vscode settings
|
||||||
/.vscode/settings.json
|
/.vscode/settings.json
|
||||||
|
@ -27,11 +22,3 @@ packages/integrations/**/.netlify/
|
||||||
|
|
||||||
# exclude IntelliJ/WebStorm stuff
|
# exclude IntelliJ/WebStorm stuff
|
||||||
.idea
|
.idea
|
||||||
|
|
||||||
# ignore content collection generated files
|
|
||||||
packages/**/test/**/fixtures/**/.astro/
|
|
||||||
packages/**/test/**/fixtures/**/env.d.ts
|
|
||||||
packages/**/e2e/**/fixtures/**/.astro/
|
|
||||||
packages/**/e2e/**/fixtures/**/env.d.ts
|
|
||||||
examples/**/.astro/
|
|
||||||
examples/**/env.d.ts
|
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
---
|
---
|
||||||
|
image:
|
||||||
|
file: .Dockerfile
|
||||||
# Commands to start on workspace startup
|
# Commands to start on workspace startup
|
||||||
tasks:
|
tasks:
|
||||||
- before: |
|
- before: |
|
||||||
|
@ -16,7 +18,7 @@ vscode:
|
||||||
- esbenp.prettier-vscode
|
- esbenp.prettier-vscode
|
||||||
- dbaeumer.vscode-eslint
|
- dbaeumer.vscode-eslint
|
||||||
ports:
|
ports:
|
||||||
- port: 4321
|
- port: 3000
|
||||||
onOpen: open-preview
|
onOpen: open-preview
|
||||||
github:
|
github:
|
||||||
prebuilds:
|
prebuilds:
|
||||||
|
|
|
@ -3,9 +3,6 @@
|
||||||
# Convert context URL to an array
|
# Convert context URL to an array
|
||||||
mapfile -t CONTEXT_URL_ITEMS < <(echo "$GITPOD_WORKSPACE_CONTEXT_URL" | tr '/' '\n')
|
mapfile -t CONTEXT_URL_ITEMS < <(echo "$GITPOD_WORKSPACE_CONTEXT_URL" | tr '/' '\n')
|
||||||
|
|
||||||
# Install latest pnpm
|
|
||||||
curl -fsSL https://get.pnpm.io/install.sh | SHELL=`which bash` bash -
|
|
||||||
|
|
||||||
# Check if Gitpod started from a specific example directory in the repository
|
# Check if Gitpod started from a specific example directory in the repository
|
||||||
if [ "${CONTEXT_URL_ITEMS[7]}" = "examples" ]; then
|
if [ "${CONTEXT_URL_ITEMS[7]}" = "examples" ]; then
|
||||||
EXAMPLE_PROJECT=${CONTEXT_URL_ITEMS[8]}
|
EXAMPLE_PROJECT=${CONTEXT_URL_ITEMS[8]}
|
||||||
|
@ -20,7 +17,7 @@ fi
|
||||||
# Wait for VSCode to be ready (port 23000)
|
# Wait for VSCode to be ready (port 23000)
|
||||||
gp ports await 23000 > /dev/null 2>&1
|
gp ports await 23000 > /dev/null 2>&1
|
||||||
|
|
||||||
echo "Loading example project: $EXAMPLE_PROJECT"
|
echo "Loading example project:" $EXAMPLE_PROJECT
|
||||||
|
|
||||||
# Go to the requested example project
|
# Go to the requested example project
|
||||||
cd "$GITPOD_REPO_ROOT"/examples/"$EXAMPLE_PROJECT" || exit
|
cd "$GITPOD_REPO_ROOT"/examples/"$EXAMPLE_PROJECT" || exit
|
||||||
|
|
24
.npmrc
|
@ -4,11 +4,19 @@ link-workspace-packages=true
|
||||||
save-workspace-protocol=false # This prevents the examples to have the `workspace:` prefix
|
save-workspace-protocol=false # This prevents the examples to have the `workspace:` prefix
|
||||||
auto-install-peers=false
|
auto-install-peers=false
|
||||||
|
|
||||||
# `github-slugger` is used by `vite-plugin-markdown-legacy`.
|
shamefully-hoist=true
|
||||||
# Temporarily hoist this until we remove the feature.
|
# TODO: We would like to move to individual opt-in hoisting, but Astro was not originally
|
||||||
public-hoist-pattern[]=github-slugger
|
# written with this in mind. In the future, it would be good to hoist individual packages only.
|
||||||
# Vite's esbuild optimizer has trouble optimizing `@astrojs/lit/client-shim.js`
|
# public-hoist-pattern[]=autoprefixer
|
||||||
# which imports this dependency.
|
# public-hoist-pattern[]=astro
|
||||||
public-hoist-pattern[]=@webcomponents/template-shadowroot
|
# public-hoist-pattern[]=remark-*
|
||||||
# There's a lit dependency duplication somewhere causing multiple Lit versions error.
|
# public-hoist-pattern[]=rehype-*
|
||||||
public-hoist-pattern[]=*lit*
|
# public-hoist-pattern[]=react
|
||||||
|
# public-hoist-pattern[]=react-dom
|
||||||
|
# public-hoist-pattern[]=preact
|
||||||
|
# public-hoist-pattern[]=preact-render-to-string
|
||||||
|
# public-hoist-pattern[]=vue
|
||||||
|
# public-hoist-pattern[]=svelte
|
||||||
|
# public-hoist-pattern[]=solid-js
|
||||||
|
# public-hoist-pattern[]=lit
|
||||||
|
# public-hoist-pattern[]=@webcomponents/template-shadowroot
|
||||||
|
|
2
.nvmrc
|
@ -1 +1 @@
|
||||||
18.14.1
|
14.18.1
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
# Benchmark artifacts
|
# Ignoring these files for now due to https://github.com/withastro/compiler/issues/318
|
||||||
benchmark/projects/
|
examples/basics/src/layouts
|
||||||
benchmark/results/
|
examples/blog/src/layouts
|
||||||
|
examples/with-nanostores/src/layouts
|
||||||
|
|
||||||
|
# Ignoring this file for now due to https://github.com/withastro/compiler/issues/485
|
||||||
|
packages/markdown/component/Markdown.astro
|
||||||
|
|
||||||
# Deep Directories
|
# Deep Directories
|
||||||
**/dist
|
**/dist
|
||||||
|
@ -9,10 +13,14 @@ benchmark/results/
|
||||||
**/fixtures
|
**/fixtures
|
||||||
**/vendor
|
**/vendor
|
||||||
**/.vercel
|
**/.vercel
|
||||||
|
examples/docs/**/*.md
|
||||||
|
examples/blog/**/*.md
|
||||||
|
|
||||||
# Directories
|
# Directories
|
||||||
.github
|
.github
|
||||||
.changeset
|
.changeset
|
||||||
|
|
||||||
# Files
|
# Files
|
||||||
|
README.md
|
||||||
|
packages/webapi/mod.d.ts
|
||||||
pnpm-lock.yaml
|
pnpm-lock.yaml
|
||||||
|
|
32
.prettierrc.js
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
// Heads up: This file should be renamed to `.cjs`, however if we did that, changesets wouldn't be able to load it
|
||||||
|
module.exports = {
|
||||||
|
printWidth: 100,
|
||||||
|
semi: true,
|
||||||
|
singleQuote: true,
|
||||||
|
tabWidth: 2,
|
||||||
|
trailingComma: 'es5',
|
||||||
|
useTabs: true,
|
||||||
|
plugins: ['./node_modules/prettier-plugin-astro'],
|
||||||
|
overrides: [
|
||||||
|
{
|
||||||
|
// Changesets run Prettier using our configuration, however it uses a very old version of Prettier that does
|
||||||
|
// not support our plugin and it ends up doing more harm than good. As such, we'll disable our plugin for changelogs
|
||||||
|
files: ['CHANGELOG.md'],
|
||||||
|
options: {
|
||||||
|
plugins: [],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
files: ['.*', '*.json', '*.md', '*.toml', '*.yml'],
|
||||||
|
options: {
|
||||||
|
useTabs: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
files: ['**/*.astro'],
|
||||||
|
options: {
|
||||||
|
parser: 'astro',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
|
@ -7,17 +7,17 @@ We welcome contributions of any size and skill level. As an open source project,
|
||||||
|
|
||||||
## Quick Guide
|
## Quick Guide
|
||||||
|
|
||||||
### Prerequisites
|
### Prerequisite
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
node: "^>=18.14.1"
|
node: "^14.18.0 || >=16.12.0"
|
||||||
pnpm: "^8.6.12"
|
pnpm: "^7.5.0"
|
||||||
# otherwise, your build will fail
|
# otherwise, your build will fail
|
||||||
```
|
```
|
||||||
|
|
||||||
### Setting up your local repo
|
### Setting up your local repo
|
||||||
|
|
||||||
Astro uses pnpm workspaces, so you should **always run `pnpm install` from the top-level project directory**. Running `pnpm install` in the top-level project root will install dependencies for `astro`, and every package in the repo.
|
Astro uses pnpm workspaces, so you should **always run `pnpm install` from the top-level project directory.** running `pnpm install` in the top-level project root will install dependencies for `astro`, and every package in the repo.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
git clone && cd ...
|
git clone && cd ...
|
||||||
|
@ -35,19 +35,9 @@ To automatically handle merge conflicts in `pnpm-lock.yaml`, you should run the
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
pnpm add -g @pnpm/merge-driver
|
pnpm add -g @pnpm/merge-driver
|
||||||
pnpm dlx npm-merge-driver install --driver-name pnpm-merge-driver --driver "pnpm-merge-driver %A %O %B %P" --files pnpm-lock.yaml
|
pnpx npm-merge-driver install --driver-name pnpm-merge-driver --driver "pnpm-merge-driver %A %O %B %P" --files pnpm-lock.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
### Using GitHub Codespaces for development
|
|
||||||
|
|
||||||
To get started, create a codespace for this repository by clicking this 👇
|
|
||||||
|
|
||||||
[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/withastro/astro)
|
|
||||||
|
|
||||||
Your new codespace will open in a web-based version of Visual Studio Code. All development dependencies will be preinstalled, and the tests will run automatically ensuring you've got a green base from which to start working.
|
|
||||||
|
|
||||||
**Note**: Dev containers is now an open spec which is supported by [GitHub Codespaces](https://github.com/codespaces) and [other supporting tools](https://containers.dev/supporting).
|
|
||||||
|
|
||||||
### Development
|
### Development
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
|
@ -57,27 +47,11 @@ pnpm run dev
|
||||||
pnpm run build
|
pnpm run build
|
||||||
```
|
```
|
||||||
|
|
||||||
**How can I test my changes while contributing to the repository?**
|
|
||||||
|
|
||||||
During the development process, you may want to test your changes to ensure they are working as expected. Here are a few ways to do it:
|
|
||||||
|
|
||||||
1. Run any of the examples in the `/examples` folder. They are linked to use the local Astro source code, so you can see the effects of your changes.
|
|
||||||
|
|
||||||
```shell
|
|
||||||
pnpm --filter @example/minimal run dev
|
|
||||||
```
|
|
||||||
|
|
||||||
2. Write a test and run it. This is useful if you're making a specific fix and want to see if your changes are working as expected.
|
|
||||||
|
|
||||||
3. Create a separate project and use your local Astro through [`pnpm link`](https://pnpm.io/cli/link). This is helpful if you're making bigger changes and want to test them in a separate project.
|
|
||||||
|
|
||||||
Overall, it's up to personal preference which method to use. For smaller changes, using the examples folder may be sufficient. For larger changes, using a separate project may be more appropriate.
|
|
||||||
|
|
||||||
#### Debugging Vite
|
#### Debugging Vite
|
||||||
|
|
||||||
You can debug vite by prefixing any command with `DEBUG` like so:
|
You can debug vite by prefixing any command with `DEBUG` like so:
|
||||||
|
|
||||||
```shell
|
```
|
||||||
DEBUG=vite:* astro dev # debug everything in Vite
|
DEBUG=vite:* astro dev # debug everything in Vite
|
||||||
DEBUG=vite:[name] astro dev # debug specific process, e.g. "vite:deps" or "vite:transform"
|
DEBUG=vite:[name] astro dev # debug specific process, e.g. "vite:deps" or "vite:transform"
|
||||||
```
|
```
|
||||||
|
@ -87,12 +61,9 @@ DEBUG=vite:[name] astro dev # debug specific process, e.g. "vite:deps" or "vit
|
||||||
```shell
|
```shell
|
||||||
# run this in the top-level project root to run all tests
|
# run this in the top-level project root to run all tests
|
||||||
pnpm run test
|
pnpm run test
|
||||||
# run only a few tests in the `astro` package, great for working on a single feature
|
# run only a few tests, great for working on a single feature
|
||||||
# (example - `pnpm run test:match "cli"` runs `cli.test.js`)
|
# (example - `pnpm run test:match "RSS"` runs `astro-rss.test.js`)
|
||||||
pnpm run test:match "$STRING_MATCH"
|
pnpm run test:match "$STRING_MATCH"
|
||||||
# run tests on another package
|
|
||||||
# (example - `pnpm --filter @astrojs/rss run test` runs `packages/astro-rss/test/rss.test.js`)
|
|
||||||
pnpm --filter $STRING_MATCH run test
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### E2E tests
|
#### E2E tests
|
||||||
|
@ -137,25 +108,22 @@ pnpm exec changeset
|
||||||
|
|
||||||
### Running benchmarks
|
### Running benchmarks
|
||||||
|
|
||||||
We have benchmarks to keep performance under control. They are located in the `benchmarks` directory, and it exposes a CLI you can use to run them.
|
We have benchmarks to keep performance under control. You can run these by running (from the project root):
|
||||||
|
|
||||||
You can run all available benchmarks sequentially by running (from the project root):
|
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
pnpm run benchmark
|
pnpm run benchmark --filter astro
|
||||||
```
|
```
|
||||||
|
|
||||||
To run a specific benchmark only, you can add the name of the benchmark after the command:
|
Which will fail if the performance has regressed by **10%** or more.
|
||||||
|
|
||||||
|
To update the times cd into the `packages/astro` folder and run the following:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
pnpm run benchmark memory
|
node test/benchmark/build.bench.js --save
|
||||||
|
node test/benchmark/dev.bench.js --save
|
||||||
```
|
```
|
||||||
|
|
||||||
Use `pnpm run benchmark --help` to see all available options.
|
Which will update the build and dev benchmarks.
|
||||||
|
|
||||||
To run these benchmarks in a PR on GitHub instead of using the CLI, you can comment `!bench`. The benchmarks will run on both the PR branch and the `main` branch, and the results will be posted as a new comment.
|
|
||||||
|
|
||||||
To run only a specific benchmark on CI, add its name after the command in your comment, for example, `!bench memory`.
|
|
||||||
|
|
||||||
## Code Structure
|
## Code Structure
|
||||||
|
|
||||||
|
@ -168,7 +136,7 @@ Server-side rendering (SSR) can be complicated. The Astro package (`packages/ast
|
||||||
- `core/`: Code that executes **in the top-level scope** (in Node). Within, you’ll find code that powers the `astro build` and `astro dev` commands, as well as top-level SSR code.
|
- `core/`: Code that executes **in the top-level scope** (in Node). Within, you’ll find code that powers the `astro build` and `astro dev` commands, as well as top-level SSR code.
|
||||||
- `runtime/`: Code that executes **in different scopes** (i.e. not in a pure Node context). You’ll have to think about code differently here.
|
- `runtime/`: Code that executes **in different scopes** (i.e. not in a pure Node context). You’ll have to think about code differently here.
|
||||||
- `client/`: Code that executes **in the browser.** Astro’s partial hydration code lives here, and only browser-compatible code can be used.
|
- `client/`: Code that executes **in the browser.** Astro’s partial hydration code lives here, and only browser-compatible code can be used.
|
||||||
- `server/`: Code that executes **inside Vite’s SSR.** Though this is a Node environment inside, this will be executed independently of `core/` and may have to be structured differently.
|
- `server/`: Code that executes **inside Vite’s SSR.** Though this is a Node environment inside, this will be executed independently from `core/` and may have to be structured differently.
|
||||||
- `vite-plugin-*/`: Any Vite plugins that Astro needs to run. For the most part, these also execute within Vite similar to `src/runtime/server/`, but it’s also helpful to think about them as independent modules. _Note: at the moment these are internal while they’re in development_
|
- `vite-plugin-*/`: Any Vite plugins that Astro needs to run. For the most part, these also execute within Vite similar to `src/runtime/server/`, but it’s also helpful to think about them as independent modules. _Note: at the moment these are internal while they’re in development_
|
||||||
|
|
||||||
### Thinking about SSR
|
### Thinking about SSR
|
||||||
|
@ -181,24 +149,9 @@ There are 3 contexts in which code executes:
|
||||||
|
|
||||||
Understanding in which environment code runs, and at which stage in the process, can help clarify thinking about what Astro is doing. It also helps with debugging, for instance, if you’re working within `src/core/`, you know that your code isn’t executing within Vite, so you don’t have to debug Vite’s setup. But you will have to debug vite inside `runtime/server/`.
|
Understanding in which environment code runs, and at which stage in the process, can help clarify thinking about what Astro is doing. It also helps with debugging, for instance, if you’re working within `src/core/`, you know that your code isn’t executing within Vite, so you don’t have to debug Vite’s setup. But you will have to debug vite inside `runtime/server/`.
|
||||||
|
|
||||||
## Branches
|
|
||||||
|
|
||||||
### `main`
|
|
||||||
|
|
||||||
Active Astro development happens on the [`main`](https://github.com/withastro/astro/tree/main) branch. `main` always reflects the latest code.
|
|
||||||
|
|
||||||
> **Note:**
|
|
||||||
> During certain periods, we put `main` into a [**prerelease**](https://github.com/changesets/changesets/blob/main/docs/prereleases.md#prereleases) state. Read more about [Releasing Astro](#releasing-astro).
|
|
||||||
|
|
||||||
### `latest`
|
|
||||||
|
|
||||||
The **stable** release of Astro can always be found on the [`latest`](https://github.com/withastro/astro/tree/latest) branch. `latest` is automatically updated every time we publish a stable (not prerelease) version of Astro.
|
|
||||||
|
|
||||||
By default, `create-astro` and [astro.new](https://astro.new) point to this branch.
|
|
||||||
|
|
||||||
## Releasing Astro
|
## Releasing Astro
|
||||||
|
|
||||||
_Note: Only [core maintainers (L3+)](https://github.com/withastro/.github/blob/main/GOVERNANCE.md#level-3-l3---core) can release new versions of Astro._
|
_Note: Only [core maintainers (L3+)](https://github.com/withastro/.github/blob/main/GOVERNANCE.md#level-3-l3---core-maintainer) can release new versions of Astro._
|
||||||
|
|
||||||
The repo is set up with automatic releases, using the changeset GitHub action & bot.
|
The repo is set up with automatic releases, using the changeset GitHub action & bot.
|
||||||
|
|
||||||
|
@ -230,15 +183,15 @@ git reset --hard
|
||||||
|
|
||||||
By default, every package with a changeset will be released. If you only want to target a smaller subset of packages for release, you can consider clearing out the `.changesets` directory to replace all existing changesets with a single changeset of only the packages that you want to release. Just be sure not to commit or push this to `main`, since it will destroy existing changesets that you will still want to eventually release.
|
By default, every package with a changeset will be released. If you only want to target a smaller subset of packages for release, you can consider clearing out the `.changesets` directory to replace all existing changesets with a single changeset of only the packages that you want to release. Just be sure not to commit or push this to `main`, since it will destroy existing changesets that you will still want to eventually release.
|
||||||
|
|
||||||
Full documentation: https://github.com/changesets/changesets/blob/main/docs/snapshot-releases.md
|
Full documentation: https://github.com/atlassian/changesets/blob/main/docs/snapshot-releases.md
|
||||||
|
|
||||||
### Releasing `astro@next` (aka "prerelease mode")
|
### Releasing `astro@next` (aka "prerelease mode")
|
||||||
|
|
||||||
Sometimes, the repo will enter into "prerelease mode". In prerelease mode, our normal release process will publish npm versions under the `next` dist-tag, instead of the default `latest` tag. We do this from time-to-time to test large features before sharing them with the larger Astro audience.
|
Sometimes, the repo will enter into "prerelease mode". In prerelease mode, our normal release process will publish npm versions under the `next` dist-tag, instead of the default `latest` tag. We do this from time-to-time to test large features before sharing them with the larger Astro audience.
|
||||||
|
|
||||||
While in prerelease mode, follow the normal release process to release `astro@next` instead of `astro@latest`. To release `astro@latest` instead, see [Releasing `astro@latest` while in prerelease mode](#releasing-astrolatest-while-in-prerelease-mode).
|
While in prerelease mode, follow the normal release process to release `astro@next` instead of `astro@latest`. To release `astro@latest` instead, see [Releasing `astro@latest` while in prerelease mode](#user-content-releasing-astrolatest-while-in-prerelease-mode).
|
||||||
|
|
||||||
Full documentation: https://github.com/changesets/changesets/blob/main/docs/prereleases.md
|
Full documentation: https://github.com/atlassian/changesets/blob/main/docs/prereleases.md
|
||||||
|
|
||||||
### Entering prerelease mode
|
### Entering prerelease mode
|
||||||
|
|
||||||
|
|
76
README.md
|
@ -1,7 +1,6 @@
|
||||||
![Build the web you want](.github/assets/banner.png 'Build the web you want')
|
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<br/>
|
<img src="assets/social/banner-minimal.png" alt="Astro logo">
|
||||||
|
<br/><br/>
|
||||||
<a href="https://astro.build">Astro</a> is a website build tool for the modern web —
|
<a href="https://astro.build">Astro</a> is a website build tool for the modern web —
|
||||||
<br/>
|
<br/>
|
||||||
powerful developer experience meets lightweight output.
|
powerful developer experience meets lightweight output.
|
||||||
|
@ -10,22 +9,18 @@
|
||||||
|
|
||||||
## Install
|
## Install
|
||||||
|
|
||||||
The **recommended** way to install the latest version of Astro is by running the command below:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
# Recommended!
|
||||||
npm create astro@latest
|
npm create astro@latest
|
||||||
```
|
|
||||||
|
|
||||||
You can also install Astro **manually** by running this command instead:
|
# Manual:
|
||||||
|
|
||||||
```bash
|
|
||||||
npm install --save-dev astro
|
npm install --save-dev astro
|
||||||
```
|
```
|
||||||
|
|
||||||
Looking for help? Start with our [Getting Started](https://docs.astro.build/en/getting-started/) guide.
|
Looking for help? Start with our [Getting Started](https://docs.astro.build/en/getting-started/) guide.
|
||||||
|
|
||||||
Looking for quick examples? [Open a starter project](https://astro.new/) right in your browser.
|
Looking for quick examples? [Open a starter project](https://astro.new/) right in your browser.
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
Visit our [official documentation](https://docs.astro.build/).
|
Visit our [official documentation](https://docs.astro.build/).
|
||||||
|
@ -33,7 +28,6 @@ Visit our [official documentation](https://docs.astro.build/).
|
||||||
## Support
|
## Support
|
||||||
|
|
||||||
Having trouble? Get help in the official [Astro Discord](https://astro.build/chat).
|
Having trouble? Get help in the official [Astro Discord](https://astro.build/chat).
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
**New contributors welcome!** Check out our [Contributors Guide](CONTRIBUTING.md) for help getting started.
|
**New contributors welcome!** Check out our [Contributors Guide](CONTRIBUTING.md) for help getting started.
|
||||||
|
@ -48,17 +42,21 @@ Join us on [Discord](https://astro.build/chat) to meet other maintainers. We'll
|
||||||
| [create-astro](packages/create-astro) | [![create-astro version](https://img.shields.io/npm/v/create-astro.svg?label=%20)](packages/create-astro/CHANGELOG.md) |
|
| [create-astro](packages/create-astro) | [![create-astro version](https://img.shields.io/npm/v/create-astro.svg?label=%20)](packages/create-astro/CHANGELOG.md) |
|
||||||
| [@astrojs/react](packages/integrations/react) | [![astro version](https://img.shields.io/npm/v/@astrojs/react.svg?label=%20)](packages/integrations/react/CHANGELOG.md) |
|
| [@astrojs/react](packages/integrations/react) | [![astro version](https://img.shields.io/npm/v/@astrojs/react.svg?label=%20)](packages/integrations/react/CHANGELOG.md) |
|
||||||
| [@astrojs/preact](packages/integrations/preact) | [![astro version](https://img.shields.io/npm/v/@astrojs/preact.svg?label=%20)](packages/integrations/preact/CHANGELOG.md) |
|
| [@astrojs/preact](packages/integrations/preact) | [![astro version](https://img.shields.io/npm/v/@astrojs/preact.svg?label=%20)](packages/integrations/preact/CHANGELOG.md) |
|
||||||
| [@astrojs/solid-js](packages/integrations/solid) | [![astro version](https://img.shields.io/npm/v/@astrojs/solid-js.svg?label=%20)](packages/integrations/solid/CHANGELOG.md) |
|
| [@astrojs/solid-js](packages/integrations/solid) | [![astro version](https://img.shields.io/npm/v/@astrojs/solid-js.svg?label=%20)](packages/integrations/solid-js/CHANGELOG.md) |
|
||||||
| [@astrojs/svelte](packages/integrations/svelte) | [![astro version](https://img.shields.io/npm/v/@astrojs/svelte.svg?label=%20)](packages/integrations/svelte/CHANGELOG.md) |
|
| [@astrojs/svelte](packages/integrations/svelte) | [![astro version](https://img.shields.io/npm/v/@astrojs/svelte.svg?label=%20)](packages/integrations/svelte/CHANGELOG.md) |
|
||||||
| [@astrojs/vue](packages/integrations/vue) | [![astro version](https://img.shields.io/npm/v/@astrojs/vue.svg?label=%20)](packages/integrations/vue/CHANGELOG.md) |
|
| [@astrojs/vue](packages/integrations/vue) | [![astro version](https://img.shields.io/npm/v/@astrojs/vue.svg?label=%20)](packages/integrations/vue/CHANGELOG.md) |
|
||||||
| [@astrojs/lit](packages/integrations/lit) | [![astro version](https://img.shields.io/npm/v/@astrojs/lit.svg?label=%20)](packages/integrations/lit/CHANGELOG.md) |
|
| [@astrojs/lit](packages/integrations/lit) | [![astro version](https://img.shields.io/npm/v/@astrojs/lit.svg?label=%20)](packages/integrations/lit/CHANGELOG.md) |
|
||||||
|
| [@astrojs/deno](packages/integrations/deno) | [![astro version](https://img.shields.io/npm/v/@astrojs/deno.svg?label=%20)](packages/integrations/deno/CHANGELOG.md) |
|
||||||
|
| [@astrojs/netlify](packages/integrations/netlify) | [![astro version](https://img.shields.io/npm/v/@astrojs/netlify.svg?label=%20)](packages/integrations/netlify/CHANGELOG.md) |
|
||||||
| [@astrojs/node](packages/integrations/node) | [![astro version](https://img.shields.io/npm/v/@astrojs/node.svg?label=%20)](packages/integrations/node/CHANGELOG.md) |
|
| [@astrojs/node](packages/integrations/node) | [![astro version](https://img.shields.io/npm/v/@astrojs/node.svg?label=%20)](packages/integrations/node/CHANGELOG.md) |
|
||||||
| [@astrojs/vercel](packages/integrations/vercel) | [![astro version](https://img.shields.io/npm/v/@astrojs/vercel.svg?label=%20)](packages/integrations/vercel/CHANGELOG.md) |
|
| [@astrojs/vercel](packages/integrations/vercel) | [![astro version](https://img.shields.io/npm/v/@astrojs/vercel.svg?label=%20)](packages/integrations/vercel/CHANGELOG.md) |
|
||||||
| [@astrojs/cloudflare](packages/integrations/cloudflare) | [![astro version](https://img.shields.io/npm/v/@astrojs/cloudflare.svg?label=%20)](packages/integrations/cloudflare/CHANGELOG.md) |
|
| [@astrojs/cloudflare](packages/integrations/cloudflare) | [![astro version](https://img.shields.io/npm/v/@astrojs/cloudflare.svg?label=%20)](packages/integrations/cloudflare/CHANGELOG.md) |
|
||||||
| [@astrojs/partytown](packages/integrations/partytown) | [![astro version](https://img.shields.io/npm/v/@astrojs/partytown.svg?label=%20)](packages/integrations/partytown/CHANGELOG.md) |
|
| [@astrojs/partytown](packages/integrations/partytown) | [![astro version](https://img.shields.io/npm/v/@astrojs/partytown.svg?label=%20)](packages/integrations/partytown/CHANGELOG.md) |
|
||||||
| [@astrojs/sitemap](packages/integrations/sitemap) | [![astro version](https://img.shields.io/npm/v/@astrojs/sitemap.svg?label=%20)](packages/integrations/sitemap/CHANGELOG.md) |
|
| [@astrojs/sitemap](packages/integrations/sitemap) | [![astro version](https://img.shields.io/npm/v/@astrojs/sitemap.svg?label=%20)](packages/integrations/sitemap/CHANGELOG.md) |
|
||||||
| [@astrojs/tailwind](packages/integrations/tailwind) | [![astro version](https://img.shields.io/npm/v/@astrojs/tailwind.svg?label=%20)](packages/integrations/tailwind/CHANGELOG.md) |
|
| [@astrojs/tailwind](packages/integrations/tailwind) | [![astro version](https://img.shields.io/npm/v/@astrojs/tailwind.svg?label=%20)](packages/integrations/tailwind/CHANGELOG.md) |
|
||||||
|
| [@astrojs/turbolinks](packages/integrations/turbolinks) | [![astro version](https://img.shields.io/npm/v/@astrojs/turbolinks.svg?label=%20)](packages/integrations/turbolinks/CHANGELOG.md) |
|
||||||
| [@astrojs/alpinejs](packages/integrations/alpinejs) | [![astro version](https://img.shields.io/npm/v/@astrojs/alpinejs.svg?label=%20)](packages/integrations/alpinejs/CHANGELOG.md) |
|
| [@astrojs/alpinejs](packages/integrations/alpinejs) | [![astro version](https://img.shields.io/npm/v/@astrojs/alpinejs.svg?label=%20)](packages/integrations/alpinejs/CHANGELOG.md) |
|
||||||
|
| [@astrojs/image](packages/integrations/image) | [![astro version](https://img.shields.io/npm/v/@astrojs/image.svg?label=%20)](packages/integrations/image/CHANGELOG.md) |
|
||||||
| [@astrojs/mdx](packages/integrations/mdx) | [![astro version](https://img.shields.io/npm/v/@astrojs/mdx.svg?label=%20)](packages/integrations/mdx/CHANGELOG.md) |
|
| [@astrojs/mdx](packages/integrations/mdx) | [![astro version](https://img.shields.io/npm/v/@astrojs/mdx.svg?label=%20)](packages/integrations/mdx/CHANGELOG.md) |
|
||||||
| [@astrojs/prefetch](packages/integrations/prefetch) | [![astro version](https://img.shields.io/npm/v/@astrojs/prefetch.svg?label=%20)](packages/integrations/prefetch/CHANGELOG.md) |
|
| [@astrojs/prefetch](packages/integrations/prefetch) | [![astro version](https://img.shields.io/npm/v/@astrojs/prefetch.svg?label=%20)](packages/integrations/prefetch/CHANGELOG.md) |
|
||||||
|
|
||||||
|
@ -68,9 +66,10 @@ Several official projects are maintained outside of this repo:
|
||||||
|
|
||||||
| Project | Repository |
|
| Project | Repository |
|
||||||
| ------------------------------------------------------------------- | ----------------------------------------------------------------------- |
|
| ------------------------------------------------------------------- | ----------------------------------------------------------------------- |
|
||||||
| [@astrojs/compiler](https://github.com/withastro/compiler) | [withastro/compiler](https://github.com/withastro/compiler) |
|
| [@astrojs/compiler](packages/integrations/compiler) | [withastro/compiler](https://github.com/withastro/compiler) |
|
||||||
| [Astro Language Tools](https://github.com/withastro/language-tools) | [withastro/language-tools](https://github.com/withastro/language-tools) |
|
| [Astro Language Tools](https://github.com/withastro/language-tools) | [withastro/language-tools](https://github.com/withastro/language-tools) |
|
||||||
|
|
||||||
|
|
||||||
## Links
|
## Links
|
||||||
|
|
||||||
- [License (MIT)](LICENSE)
|
- [License (MIT)](LICENSE)
|
||||||
|
@ -81,17 +80,54 @@ Several official projects are maintained outside of this repo:
|
||||||
|
|
||||||
## Sponsors
|
## Sponsors
|
||||||
|
|
||||||
Astro is free, open source software made possible by these wonderful sponsors.
|
Astro is generously supported by Netlify, Vercel, and several other amazing organizations.
|
||||||
|
|
||||||
[❤️ Sponsor Astro! ❤️](https://github.com/withastro/.github/blob/main/FUNDING.md)
|
[❤️ Sponsor Astro! ❤️](https://github.com/withastro/.github/blob/main/FUNDING.md)
|
||||||
|
|
||||||
<p align="center">
|
### Platinum Sponsors
|
||||||
<a target="_blank" href="https://github.com/sponsors/withastro">
|
|
||||||
|
|
||||||
[![Astro's sponsors.](https://astro.build/sponsors.png "Astro's sponsors.
|
<table>
|
||||||
Platinum sponsors: Vercel, storyblok, Netlify, Ship Shape, Google Chrome
|
<tbody>
|
||||||
Gold sponsors: ‹div›RIOTS, DEEPGRAM, Transloadit, CloudCannon
|
<tr>
|
||||||
Sponsors: Monogram, Qoddi, Dimension")](https://github.com/sponsors/withastro)
|
<td align="center"><a href="https://www.netlify.com/#gh-light-mode-only" target="_blank"><img width="147" height="40" src="https://raw.githubusercontent.com/withastro/astro/main/.github/assets/netlify.svg#gh-light-mode-only" alt="Netlify" /></a><a href="https://www.netlify.com/#gh-dark-mode-only" target="_blank"><img width="147" height="40" src="https://raw.githubusercontent.com/withastro/astro/main/.github/assets/netlify-dark.svg#gh-dark-mode-only" alt="Netlify" />
|
||||||
|
</a></td>
|
||||||
|
<td align="center"><a href="https://www.vercel.com/#gh-light-mode-only" target="_blank"><img width="150" height="34" src="https://raw.githubusercontent.com/withastro/astro/main/.github/assets/vercel.svg#gh-light-mode-only" alt="Vercel" /></a><a href="https://www.vercel.com/#gh-dark-mode-only"><img width="150" height="34" src="https://raw.githubusercontent.com/withastro/astro/main/.github/assets/vercel-dark.svg#gh-dark-mode-only" alt="Vercel" />
|
||||||
|
</a></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
### Gold Sponsors
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td align="center">
|
||||||
|
<a href="https://divRIOTS.com#gh-light-mode-only" target="_blank">
|
||||||
|
<img width="150" height="40" src="https://raw.githubusercontent.com/withastro/astro/main/.github/assets/divriots.svg#gh-light-mode-only" alt="‹div›RIOTS" />
|
||||||
</a>
|
</a>
|
||||||
</p>
|
<a href="https://divRIOTS.com#gh-dark-mode-only" target="_blank">
|
||||||
|
<img width="150" height="40" src="https://raw.githubusercontent.com/withastro/astro/main/.github/assets/divriots-dark.svg#gh-dark-mode-only" alt="‹div›RIOTS" />
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
<td align="center">
|
||||||
|
<a href="https://stackupdigital.co.uk/#gh-light-mode-only" target="_blank">
|
||||||
|
<img width="162" height="40" src="https://raw.githubusercontent.com/withastro/astro/main/.github/assets/stackup.svg#gh-light-mode-only" alt="StackUp Digital" />
|
||||||
|
</a>
|
||||||
|
<a href="https://stackupdigital.co.uk/#gh-dark-mode-only" target="_blank">
|
||||||
|
<img width="130" height="32" src="https://raw.githubusercontent.com/withastro/astro/main/.github/assets/stackup-dark.svg#gh-dark-mode-only" alt="StackUp Digital" />
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
### Sponsors
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td align="center"><a href="https://sentry.io" target="_blank"><img width="147" height="40" src="https://raw.githubusercontent.com/withastro/astro/main/.github/assets/sentry.svg" alt="Sentry" /></a></td><td align="center"><a href="https://qoddi.com" target="_blank"><img width="147" height="40" src="https://devcenter.qoddi.com/wp-content/uploads/2021/11/blog-transparent-logo-1.png" alt="Qoddi App Platform" /></a></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
3
assets/brand/file-icon.svg
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
|
||||||
|
<path fill="#FF5D01" fill-rule="evenodd" d="M4.428 14.135c-.312.997-.467 1.495-.429 1.968.036.417.178.818.413 1.165.266.392.7.682 1.57 1.261l3.839 2.56c.775.516 1.163.775 1.582.876.37.09.757.09 1.128.003.42-.1.81-.357 1.588-.87L18 18.533c.878-.581 1.318-.87 1.588-1.266A2.43 2.43 0 0020 16.095c.039-.477-.122-.978-.44-1.982l-3.4-10.7c-.165-.52-.247-.779-.405-.972a1.296 1.296 0 00-.523-.382c-.23-.092-.502-.092-1.047-.092H9.754c-.547 0-.822 0-1.053.094a1.29 1.29 0 00-.524.384c-.158.194-.239.455-.401.977L4.428 14.136zm9.93-9.897c.13.162.198.383.331.82l2.919 9.588a12.146 12.146 0 00-3.49-1.18l-1.9-6.423a.248.248 0 00-.474 0l-1.878 6.418a12.128 12.128 0 00-3.505 1.184l2.934-9.588c.133-.439.2-.658.331-.82.116-.143.267-.254.437-.323.194-.078.423-.078.881-.078h2.095c.458 0 .688 0 .882.078.17.069.32.18.437.324zm-2.263 11.557c1.106 0 2.067-.28 2.548-.692a2.1 2.1 0 01-.155 1.636c-.308.57-.755.853-1.158 1.108-.506.321-.941.598-.941 1.34 0 .245.056.479.157.686a1.868 1.868 0 01-1.151-1.725v-.046c0-.512.001-1.143-.722-1.143a.765.765 0 00-.766.764c-.812-.813-.741-1.983-.741-1.983 0-.239.024-.611.131-.936.302.568 1.44.99 2.798.99z" clip-rule="evenodd"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
15
assets/brand/icon-32.svg
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 32 32">
|
||||||
|
<path fill="url(#a)" fill-rule="evenodd" d="m20.4 2.4.6 1.5 5.4 17.8c-2-1-4.2-1.8-6.5-2.2l-3.5-12a.5.5 0 0 0-.9 0l-3.5 12c-2.3.4-4.4 1.1-6.5 2.2L11 3.9c.2-.8.4-1.2.6-1.5.2-.3.5-.5.8-.6.4-.2.8-.2 1.6-.2h4c.8 0 1.2 0 1.6.2.3 0 .6.3.8.6Z" clip-rule="evenodd"/>
|
||||||
|
<path fill="#FF5D01" fill-rule="evenodd" d="M21 22.5c-.9.8-2.6 1.3-4.7 1.3-2.5 0-4.6-.8-5.2-1.8-.2.6-.2 1.3-.2 1.7 0 0-.2 2.2 1.3 3.7 0-.8.7-1.4 1.5-1.4 1.3 0 1.3 1 1.3 2v.2c0 1.4.9 2.6 2.1 3.2a3 3 0 0 1-.3-1.3c0-1.4.9-1.9 1.8-2.5.7-.5 1.6-1 2.1-2a3.9 3.9 0 0 0 .3-3Z" clip-rule="evenodd"/>
|
||||||
|
<path fill="url(#b)" fill-rule="evenodd" d="M21 22.5c-.9.8-2.6 1.3-4.7 1.3-2.5 0-4.6-.8-5.2-1.8-.2.6-.2 1.3-.2 1.7 0 0-.2 2.2 1.3 3.7 0-.8.7-1.4 1.5-1.4 1.3 0 1.3 1 1.3 2v.2c0 1.4.9 2.6 2.1 3.2a3 3 0 0 1-.3-1.3c0-1.4.9-1.9 1.8-2.5.7-.5 1.6-1 2.1-2a3.9 3.9 0 0 0 .3-3Z" clip-rule="evenodd"/>
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="a" x1="22.1" x2="16" y1=".7" y2="21.7" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#fff"/>
|
||||||
|
<stop offset="1" stop-color="#F9FAFB"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="b" x1="25" x2="19.8" y1="16.3" y2="27.4" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#FF1639"/>
|
||||||
|
<stop offset="1" stop-color="#FF1639" stop-opacity="0"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.3 KiB |
BIN
assets/brand/logo-square-black.png
Normal file
After Width: | Height: | Size: 205 KiB |
BIN
assets/brand/logo-square-white.png
Normal file
After Width: | Height: | Size: 181 KiB |
22
assets/brand/logo-white.svg
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
<svg width="192" height="256" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd"
|
||||||
|
d="M131.008 18.929c1.944 2.413 2.935 5.67 4.917 12.181l43.309 142.27a180.277 180.277 0 00-51.778-17.53L99.258 60.56a3.67 3.67 0 00-7.042.01l-27.857 95.232a180.225 180.225 0 00-52.01 17.557l43.52-142.281c1.99-6.502 2.983-9.752 4.927-12.16a15.999 15.999 0 016.484-4.798c2.872-1.154 6.271-1.154 13.07-1.154h31.085c6.807 0 10.211 0 13.086 1.157a16.004 16.004 0 016.487 4.806z"
|
||||||
|
fill="url(#paint0_linear)" />
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd"
|
||||||
|
d="M136.19 180.151c-7.139 6.105-21.39 10.268-37.804 10.268-20.147 0-37.033-6.272-41.513-14.707-1.602 4.835-1.961 10.367-1.961 13.902 0 0-1.056 17.355 11.015 29.426 0-6.268 5.081-11.349 11.35-11.349 10.742 0 10.73 9.373 10.72 16.977v.679c0 11.542 7.054 21.436 17.086 25.606a23.27 23.27 0 01-2.339-10.2c0-11.008 6.463-15.107 13.974-19.87 5.976-3.79 12.616-8.001 17.192-16.449a31.024 31.024 0 003.743-14.82c0-3.299-.513-6.479-1.463-9.463z"
|
||||||
|
fill="#FF5D01" />
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd"
|
||||||
|
d="M136.19 180.151c-7.139 6.105-21.39 10.268-37.804 10.268-20.147 0-37.033-6.272-41.513-14.707-1.602 4.835-1.961 10.367-1.961 13.902 0 0-1.056 17.355 11.015 29.426 0-6.268 5.081-11.349 11.35-11.349 10.742 0 10.73 9.373 10.72 16.977v.679c0 11.542 7.054 21.436 17.086 25.606a23.27 23.27 0 01-2.339-10.2c0-11.008 6.463-15.107 13.974-19.87 5.976-3.79 12.616-8.001 17.192-16.449a31.024 31.024 0 003.743-14.82c0-3.299-.513-6.479-1.463-9.463z"
|
||||||
|
fill="url(#paint1_linear)" />
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="paint0_linear" x1="144.599" y1="5.423" x2="95.791" y2="173.38" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#fff" />
|
||||||
|
<stop offset="1" stop-color="#F9FAFB" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="paint1_linear" x1="168.336" y1="130.49" x2="126.065" y2="218.982"
|
||||||
|
gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#FF1639" />
|
||||||
|
<stop offset="1" stop-color="#FF1639" stop-opacity="0" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2 KiB |
22
assets/brand/logo.svg
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
<svg width="192" height="256" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd"
|
||||||
|
d="M131.008 18.929c1.944 2.413 2.935 5.67 4.917 12.181l43.309 142.27a180.277 180.277 0 00-51.778-17.53L99.258 60.56a3.67 3.67 0 00-7.042.01l-27.857 95.232a180.225 180.225 0 00-52.01 17.557l43.52-142.281c1.99-6.502 2.983-9.752 4.927-12.16a15.999 15.999 0 016.484-4.798c2.872-1.154 6.271-1.154 13.07-1.154h31.085c6.807 0 10.211 0 13.086 1.157a16.004 16.004 0 016.487 4.806z"
|
||||||
|
fill="url(#paint0_linear)" />
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd"
|
||||||
|
d="M136.19 180.151c-7.139 6.105-21.39 10.268-37.804 10.268-20.147 0-37.033-6.272-41.513-14.707-1.602 4.835-1.961 10.367-1.961 13.902 0 0-1.056 17.355 11.015 29.426 0-6.268 5.081-11.349 11.35-11.349 10.742 0 10.73 9.373 10.72 16.977v.679c0 11.542 7.054 21.436 17.086 25.606a23.27 23.27 0 01-2.339-10.2c0-11.008 6.463-15.107 13.974-19.87 5.976-3.79 12.616-8.001 17.192-16.449a31.024 31.024 0 003.743-14.82c0-3.299-.513-6.479-1.463-9.463z"
|
||||||
|
fill="#FF5D01" />
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd"
|
||||||
|
d="M136.19 180.151c-7.139 6.105-21.39 10.268-37.804 10.268-20.147 0-37.033-6.272-41.513-14.707-1.602 4.835-1.961 10.367-1.961 13.902 0 0-1.056 17.355 11.015 29.426 0-6.268 5.081-11.349 11.35-11.349 10.742 0 10.73 9.373 10.72 16.977v.679c0 11.542 7.054 21.436 17.086 25.606a23.27 23.27 0 01-2.339-10.2c0-11.008 6.463-15.107 13.974-19.87 5.976-3.79 12.616-8.001 17.192-16.449a31.024 31.024 0 003.743-14.82c0-3.299-.513-6.479-1.463-9.463z"
|
||||||
|
fill="url(#paint1_linear)" />
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="paint0_linear" x1="144.599" y1="5.423" x2="95.791" y2="173.38" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#000014" />
|
||||||
|
<stop offset="1" stop-color="#150426" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="paint1_linear" x1="168.336" y1="130.49" x2="126.065" y2="218.982"
|
||||||
|
gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#FF1639" />
|
||||||
|
<stop offset="1" stop-color="#FF1639" stop-opacity="0" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2 KiB |
BIN
assets/social/avatar.png
Normal file
After Width: | Height: | Size: 1.1 MiB |
BIN
assets/social/banner-minimal.png
Normal file
After Width: | Height: | Size: 41 KiB |
69
assets/social/banner.svg
Normal file
After Width: | Height: | Size: 26 KiB |
|
@ -1,5 +0,0 @@
|
||||||
# benchmark
|
|
||||||
|
|
||||||
Astro's main benchmark suite. It exposes the `astro-benchmark` CLI command. Run `astro-benchmark --help` to see all available commands!
|
|
||||||
|
|
||||||
If you'd like to understand how the benchmark works, check out the other READMEs in the subfolders.
|
|