Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
98 commits
Select commit Hold shift + click to select a range
6ce3c18
feat: added nestjs package adapter
H4ad Sep 9, 2023
65908c6
Merge branch 'main' into feat/nestjs
H4ad Sep 14, 2023
2a0f8c8
Latest lockfile
matt-aitken Sep 14, 2023
9d70e3e
Updated Astro setup docs: env import
matt-aitken Sep 14, 2023
9a2b53e
Astro docs improvements
matt-aitken Sep 14, 2023
f58c1d4
Docs: improved the limitations
matt-aitken Sep 14, 2023
98e29b7
Bumped package versions to 2.1.3
matt-aitken Sep 14, 2023
04d58d1
Updated the Astro docs with SSR notes
matt-aitken Sep 14, 2023
cb53d13
test/368/use vitest instead of jest (#470)
wesleymatosdev Sep 15, 2023
be1e8ae
Created Temp for pull req, bugreport & feature req
visheshrwl Sep 11, 2023
27803e2
A few teaks to the templates
ericallam Sep 15, 2023
89be1c3
Added instructions for how to do Changeset snapshots
matt-aitken Sep 15, 2023
ead9526
Redirect people to discord to ask a question
ericallam Sep 15, 2023
6c97e6c
Documentation Update: Added <github_username> instead of triggerdotde…
anik-bin Sep 15, 2023
8677648
Added a link to the homepage from the side menu (#479)
samejr Sep 15, 2023
ab6efe6
Renamed the examples dir to references (true examples are in another …
ericallam Sep 15, 2023
dcb2ded
Add a references README
ericallam Sep 15, 2023
093ac97
Fixes broken pnpm lock file
ericallam Sep 15, 2023
133641d
Improve the Astro manual setup guide
ericallam Sep 15, 2023
c097711
Fixed cal.com link
D-K-P Sep 18, 2023
064a38b
Upgrade to the latest remix (pre v2)
ericallam Sep 18, 2023
7ad5c37
React status hooks (#493)
matt-aitken Sep 21, 2023
b721b1c
Fixed dependency
matt-aitken Sep 21, 2023
36d925b
Revert "Upgrade to the latest remix (pre v2)"
matt-aitken Sep 21, 2023
dcf845a
Update introduction.mdx (#498)
gjohnsx Sep 21, 2023
b0be852
Use the bell icon for the new status Tasks
matt-aitken Sep 21, 2023
f10fd06
Going exponential with `Linear` (#478)
nicktrn Sep 21, 2023
0be8f9e
Use absolute image paths (#490)
nicktrn Sep 21, 2023
d65aa9b
Update sendevent.mdx
ericallam Sep 22, 2023
ae5e36b
fix: Fail client-side on invalid Stripe event names (#492)
nicktrn Sep 22, 2023
a00fc08
feat: BYO Auth (#491)
ericallam Sep 22, 2023
3b57519
CLI now supports multiple frameworks (with tests) (#480)
matt-aitken Sep 22, 2023
2b264f4
Tweaked the Linear scopes
matt-aitken Sep 22, 2023
88b36a6
Latest lockfile
matt-aitken Sep 22, 2023
fe213ab
Fix for getPathAlias typecheck failure
matt-aitken Sep 22, 2023
47ca11b
Linear getAll type error (weirdly not in VSCode…) and removed the pag…
matt-aitken Sep 22, 2023
217300f
Add BYO auth for oauth options
ericallam Sep 22, 2023
66c8aae
Add back in Job.toJSON to fix the testing package
ericallam Sep 22, 2023
e1da394
Removed dynamicTrigger @internal from toJSON
matt-aitken Sep 22, 2023
92c4663
The CLI now checks for a dev server API key in init and dev commands
matt-aitken Sep 22, 2023
96f3f2a
Remix onboarding now uses the CLI init command
matt-aitken Sep 22, 2023
b9de92e
Decouple zod (#500)
ericallam Sep 22, 2023
63f5fc3
chore: Update version for release (#481)
github-actions[bot] Sep 22, 2023
3f5791f
Latest lockfile
matt-aitken Sep 22, 2023
83d57fe
feat: Basic usage dashboard to show run volume (#501)
ericallam Sep 23, 2023
9b04cfc
Fixed duplicate end month
ericallam Sep 23, 2023
dd4889d
hotfix
ericallam Sep 24, 2023
1ca17bb
hotfix 2
ericallam Sep 24, 2023
528e387
Astro CLI support (#506)
matt-aitken Sep 26, 2023
76192ad
chore: Update version for release (#508)
github-actions[bot] Sep 26, 2023
6241312
Fix for incorrectly named Next.js package in manual setup
matt-aitken Sep 26, 2023
ca7993d
Latest lockfile
matt-aitken Sep 26, 2023
2e9adf8
Increased the intervalTrigger max from 1 day to 30 days
matt-aitken Sep 26, 2023
a993f67
Implement the task output redacting to prevent redacted values from s…
ericallam Sep 27, 2023
372fe13
Express frameworks docs + CLI (#512)
matt-aitken Sep 27, 2023
b425ab1
chore: Update version for release (#513)
github-actions[bot] Sep 27, 2023
a1d3d7f
Latest lockfile
matt-aitken Sep 27, 2023
0b9e260
Add the STAGING environment by default
ericallam Sep 27, 2023
a9b6ae2
Fixed sparodically failed run creations
ericallam Sep 28, 2023
2fefed2
Swapped out the Homepage link in the side menu for a link to the Chan…
samejr Sep 28, 2023
4f0a36c
Youtube embedded video fits its aspect ratio instead of going full width
samejr Sep 28, 2023
71d0027
Improved CLI init Next.js middleware detection
matt-aitken Sep 29, 2023
52e3a2c
CLI init: adds public key as “TRIGGER_PUBLIC_API_KEY” except for Next…
matt-aitken Sep 29, 2023
4a9f631
Updated the docs for the React hooks
matt-aitken Sep 29, 2023
ba134dc
chore: Update version for release (#521)
github-actions[bot] Sep 29, 2023
b88174d
Display framework logos on the onboarding setup pages (#519)
samejr Sep 29, 2023
9d24827
autofocus the search field on the Job page
samejr Sep 29, 2023
7da98b8
Add some documentation around canceling scheduled events
ericallam Sep 30, 2023
8c96944
Updated outdated lockfile
ericallam Sep 30, 2023
3ecbef2
Updated docs README.md
matt-aitken Oct 2, 2023
dc8c965
Improves the performance of run resuming (#522)
ericallam Oct 3, 2023
9776980
Add typed filters to `Linear` getAll helper (#517)
nicktrn Oct 3, 2023
acf5df1
`Replicate` integration and remote callbacks (#507)
nicktrn Oct 4, 2023
08f4841
Update pnpm lock file
ericallam Oct 4, 2023
a92206e
Allow blank issues
ericallam Oct 4, 2023
f5de6c7
chore: Update version for release (#538)
github-actions[bot] Oct 4, 2023
fa9f4a1
Fix pnpm lock file
ericallam Oct 4, 2023
ec09a4e
feat: New Test page (#558)
matt-aitken Oct 5, 2023
7427ce5
chore: update doc title for groups (#539)
hmacr Oct 5, 2023
0e8acdb
Add instructions for triggering job runs to the job catalog readme
ericallam Oct 5, 2023
4732823
Updated the Test docs
matt-aitken Oct 5, 2023
9408cc4
Removed a console.log when a user’s file is changed that CLI dev is l…
matt-aitken Oct 5, 2023
8bb4e2b
feat: allow cancelling jobs from trigger-client sdk (#562)
hmacr Oct 5, 2023
2b50858
chore: upgrade zod to 3.22.3 (#570)
hmacr Oct 5, 2023
5ad03b9
Created a changeset with the correct starting package version
matt-aitken Oct 5, 2023
720cd7f
Added headers to NestJS response
matt-aitken Oct 5, 2023
3601de1
Added some types to the NestJS project
matt-aitken Oct 5, 2023
48d7d43
Added fastify types
matt-aitken Oct 5, 2023
b9bc5e3
Removed log from CodeMirror
matt-aitken Oct 6, 2023
02739f7
Added InstallPackages component
matt-aitken Oct 6, 2023
deb8159
Improved the NestJS onboarding instructions
matt-aitken Oct 6, 2023
0c5d05e
Updated the onboarding instructions
matt-aitken Oct 6, 2023
e1c592c
Made all the quickstart framework cards snippets, so the page isn’t a…
matt-aitken Oct 6, 2023
1588527
NestJS docs updates
matt-aitken Oct 6, 2023
1950080
Added dotenv to the earlier code sample
matt-aitken Oct 6, 2023
5dbfd16
Merge remote-tracking branch 'origin/main' into h4ad-forks-feat/nestjs
matt-aitken Oct 6, 2023
ce023f4
Latest lockfile
matt-aitken Oct 6, 2023
e1181de
Moved the nestjs-example to the reference folder
matt-aitken Oct 6, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/fair-waves-hug.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@trigger.dev/nestjs": patch
---

First release of NestJS adaptor
44 changes: 44 additions & 0 deletions apps/webapp/app/components/code/InstallPackages.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import {
ClientTabs,
ClientTabsList,
ClientTabsTrigger,
ClientTabsContent,
} from "../primitives/ClientTabs";
import { ClipboardField } from "../primitives/ClipboardField";

type InstallPackagesProps = {
packages: string[];
};

export function InstallPackages({ packages }: InstallPackagesProps) {
return (
<ClientTabs defaultValue="npm">
<ClientTabsList>
<ClientTabsTrigger value={"npm"}>npm</ClientTabsTrigger>
<ClientTabsTrigger value={"pnpm"}>pnpm</ClientTabsTrigger>
<ClientTabsTrigger value={"yarn"}>yarn</ClientTabsTrigger>
</ClientTabsList>
<ClientTabsContent value={"npm"}>
<ClipboardField
variant="primary/medium"
className="mb-4"
value={`npm install ${packages.join(" ")}`}
/>
</ClientTabsContent>
<ClientTabsContent value={"pnpm"}>
<ClipboardField
variant="primary/medium"
className="mb-4"
value={`pnpm install ${packages.join(" ")}`}
/>
</ClientTabsContent>
<ClientTabsContent value={"yarn"}>
<ClipboardField
variant="primary/medium"
className="mb-4"
value={`yarn add ${packages.join(" ")}`}
/>
</ClientTabsContent>
</ClientTabs>
);
}
1 change: 0 additions & 1 deletion apps/webapp/app/components/code/codeMirrorSetup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ export function getEditorSetup(showLineNumbers = true, showHighlights = true): A
{
key: "Mod-Enter",
run: () => {
console.log("Mod-Enter");
return true;
},
preventDefault: false,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ export function FrameworkSelector() {
<FrameworkLink to={projectSetupFastifyPath(organization, project)}>
<FastifyLogo className="w-36" />
</FrameworkLink>
<FrameworkLink to={projectSetupNestjsPath(organization, project)}>
<FrameworkLink to={projectSetupNestjsPath(organization, project)} supported>
<NestjsLogo className="w-36" />
</FrameworkLink>
</div>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,220 @@
import { NestjsLogo } from "~/assets/logos/NestjsLogo";
import { FrameworkComingSoon } from "~/components/frameworks/FrameworkComingSoon";
import { ChatBubbleLeftRightIcon, Squares2X2Icon } from "@heroicons/react/20/solid";
import invariant from "tiny-invariant";
import { Feedback } from "~/components/Feedback";
import { PageGradient } from "~/components/PageGradient";
import { StepContentContainer } from "~/components/StepContentContainer";
import { InlineCode } from "~/components/code/InlineCode";
import { InstallPackages } from "~/components/code/InstallPackages";
import { BreadcrumbLink } from "~/components/navigation/NavBar";
import { Button, LinkButton } from "~/components/primitives/Buttons";
import { Header1 } from "~/components/primitives/Headers";
import { Paragraph } from "~/components/primitives/Paragraph";
import { StepNumber } from "~/components/primitives/StepNumber";
import { useAppOrigin } from "~/hooks/useAppOrigin";
import { useDevEnvironment } from "~/hooks/useEnvironments";
import { useOrganization } from "~/hooks/useOrganizations";
import { useProject } from "~/hooks/useProject";
import { useProjectSetupComplete } from "~/hooks/useProjectSetupComplete";
import { Handle } from "~/utils/handle";
import { trimTrailingSlash } from "~/utils/pathBuilder";
import { projectSetupPath, trimTrailingSlash } from "~/utils/pathBuilder";
import { CodeBlock } from "../../components/code/CodeBlock";
import { TriggerDevStep } from "~/components/SetupCommands";

export const handle: Handle = {
breadcrumb: (match) => <BreadcrumbLink to={trimTrailingSlash(match.pathname)} title="Nest.js" />,
breadcrumb: (match) => <BreadcrumbLink to={trimTrailingSlash(match.pathname)} title="NestJS" />,
};

export default function Page() {
const AppModuleCode = `
import { Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { TriggerDevModule } from '@trigger.dev/nestjs';

@Module({
imports: [
ConfigModule.forRoot({
isGlobal: true,
}),
TriggerDevModule.registerAsync({
inject: [ConfigService],
useFactory: (config: ConfigService) => ({
id: 'my-nest-app',
apiKey: config.getOrThrow('TRIGGER_API_KEY'),
apiUrl: config.getOrThrow('TRIGGER_API_URL'),
verbose: false,
ioLogLocalEnabled: true,
}),
}),
],
})
export class AppModule {}
`;

const JobControllerCode = `
import { Controller, Get } from '@nestjs/common';
import { InjectTriggerDevClient } from '@trigger.dev/nestjs';
import { eventTrigger, TriggerClient } from '@trigger.dev/sdk';

@Controller()
export class JobController {
constructor(
@InjectTriggerDevClient() private readonly client: TriggerClient,
) {
this.client.defineJob({
id: 'test-job',
name: 'Test Job One',
version: '0.0.1',
trigger: eventTrigger({
name: 'test.event',
}),
run: async (payload, io, ctx) => {
await io.logger.info('Hello world!', { payload });

return {
message: 'Hello world!',
};
},
});
}

@Get()
getHello(): string {
return \`Running Trigger.dev with client-id \${this.client.id}\`;
}
}`;

const AppModuleWithControllerCode = `
import { Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { TriggerDevModule } from '@trigger.dev/nestjs';
import { JobController } from './job.controller';

@Module({
imports: [
ConfigModule.forRoot({
isGlobal: true,
}),
TriggerDevModule.registerAsync({
inject: [ConfigService],
useFactory: (config: ConfigService) => ({
id: 'my-nest-app',
apiKey: config.getOrThrow('TRIGGER_API_KEY'),
apiUrl: config.getOrThrow('TRIGGER_API_URL'),
verbose: false,
ioLogLocalEnabled: true,
}),
}),
],
controllers: [
//...existingControllers,
JobController
],
})
export class AppModule {}
`;

const packageJsonCode = `"trigger.dev": {
"endpointId": "my-nest-app"
}`;

export default function SetupNestJS() {
const organization = useOrganization();
const project = useProject();
useProjectSetupComplete();
const devEnvironment = useDevEnvironment();
const appOrigin = useAppOrigin();

invariant(devEnvironment, "devEnvironment is required");

return (
<FrameworkComingSoon
frameworkName="Nest.js"
githubIssueUrl="https://github.com/triggerdotdev/trigger.dev/issues/449"
githubIssueNumber={449}
>
<NestjsLogo className="w-56" />
</FrameworkComingSoon>
<PageGradient>
<div className="mx-auto max-w-3xl">
<div className="flex items-center justify-between">
<Header1 spacing className="text-bright">
Get setup in 2 minutes
</Header1>
<div className="flex items-center gap-2">
<LinkButton
to={projectSetupPath(organization, project)}
variant="tertiary/small"
LeadingIcon={Squares2X2Icon}
>
Choose a different framework
</LinkButton>
<Feedback
button={
<Button variant="tertiary/small" LeadingIcon={ChatBubbleLeftRightIcon}>
I'm stuck!
</Button>
}
defaultValue="help"
/>
</div>
</div>
<>
<StepNumber stepNumber="1" title="Add the dependencies" />
<StepContentContainer>
<InstallPackages
packages={["@trigger.dev/sdk", "@trigger.dev/nestjs", "@nestjs/config"]}
/>
</StepContentContainer>
<StepNumber stepNumber="2" title="Add the environment variables" />
<StepContentContainer className="flex flex-col gap-2">
<Paragraph>
Inside your <InlineCode>.env</InlineCode> file, create the following env variables:
</Paragraph>
<CodeBlock
fileName=".env"
showChrome
code={`TRIGGER_API_KEY=${devEnvironment.apiKey}\nTRIGGER_API_URL=${appOrigin}`}
/>
</StepContentContainer>
<StepNumber stepNumber="3" title="Add the TriggerDevModule" />
<StepContentContainer className="flex flex-col gap-2">
<Paragraph>
Now, go to your <InlineCode>app.module.ts</InlineCode> and add the{" "}
<InlineCode>TriggerDevModule</InlineCode>:
</Paragraph>
<CodeBlock fileName="app.module.ts" showChrome code={AppModuleCode} />
</StepContentContainer>
<StepNumber stepNumber="4" title="Add the first job" />
<StepContentContainer className="flex flex-col gap-2">
<Paragraph>
Create a <InlineCode>controller</InlineCode> called{" "}
<InlineCode>job.controller.ts</InlineCode> and add the following code:
</Paragraph>
<CodeBlock fileName="src/job.controller.ts" showChrome code={JobControllerCode} />
</StepContentContainer>
<StepNumber stepNumber="5" title="Update your app.module.ts" />
<StepContentContainer className="flex flex-col gap-2">
<Paragraph>
Now, add the new <InlineCode>controller</InlineCode> to your{" "}
<InlineCode>app.module.ts</InlineCode>:
</Paragraph>
<CodeBlock fileName="app.module.ts" showChrome code={AppModuleWithControllerCode} />
</StepContentContainer>
<StepNumber stepNumber="6" title="Update your package.json" />
<StepContentContainer className="flex flex-col gap-2">
<Paragraph>
Now, add this to the top-level of your <InlineCode>package.json</InlineCode>:
</Paragraph>
<CodeBlock fileName="package.json" showChrome code={packageJsonCode} />
</StepContentContainer>
<StepNumber stepNumber="7" title="Run your app" />
<StepContentContainer className="flex flex-col gap-2">
<Paragraph>
Finally, run your project with <InlineCode>npm run start</InlineCode>:
</Paragraph>
</StepContentContainer>
<StepNumber stepNumber="8" title="Run the CLI 'dev' command" />
<StepContentContainer>
<TriggerDevStep />
</StepContentContainer>
<StepNumber stepNumber="9" title="Wait for Jobs" displaySpinner />
<StepContentContainer>
<Paragraph>This page will automatically refresh.</Paragraph>
</StepContentContainer>
</>
</div>
</PageGradient>
);
}
64 changes: 64 additions & 0 deletions docs/_snippets/frameworks/card-astro.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<Card
icon={
<svg
width="150"
height="49"
viewBox="-38 0 226 49"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<g clipPath="url(#clip0_5336_22429)">
<mask id="mask0_5336_22429" maskUnits="userSpaceOnUse" x="0" y="0" width="184" height="49">
<path d="M184 0H0V48.4533H184V0Z" fill="white" />
</mask>
<g mask="url(#mask0_5336_22429)">
<path
d="M12.4424 40.9986C10.2625 39.0108 9.62608 34.8341 10.5343 31.8083C12.1092 33.716 14.2912 34.3203 16.5514 34.6615C20.0406 35.1879 23.4674 34.991 26.7087 33.4002C27.0795 33.218 27.4221 32.9759 27.8273 32.7306C28.1315 33.6107 28.2106 34.4993 28.1044 35.4037C27.8461 37.6063 26.7472 39.3077 24.9995 40.5974C24.3006 41.1133 23.5611 41.5744 22.8393 42.0609C20.6218 43.5559 20.0219 45.3089 20.8551 47.8589C20.8749 47.921 20.8926 47.9831 20.9374 48.1347C19.8053 47.6293 18.9783 46.8934 18.3481 45.9258C17.6825 44.9046 17.3659 43.7749 17.3492 42.5525C17.3409 41.9577 17.3409 41.3576 17.2607 40.7711C17.0649 39.3413 16.3921 38.7013 15.1245 38.6644C13.8236 38.6265 12.7945 39.4287 12.5216 40.6921C12.5008 40.789 12.4706 40.8849 12.4404 40.9975L12.4424 40.9986Z"
fill="url(#paint0_linear_5336_22429)"
/>
<path
d="M0 31.3041C0 31.3041 6.45527 28.1673 12.9286 28.1673L17.8093 13.1001C17.992 12.3714 18.5256 11.8762 19.1278 11.8762C19.7302 11.8762 20.2637 12.3714 20.4464 13.1001L25.3271 28.1673C32.9938 28.1673 38.2557 31.3041 38.2557 31.3041C38.2557 31.3041 27.2909 1.50808 27.2694 1.44829C26.9547 0.567361 26.4234 0 25.7072 0H12.5496C11.8333 0 11.3235 0.567361 10.9874 1.44829C10.9637 1.50695 0 31.3041 0 31.3041Z"
fill="white"
/>
<path
d="M68.0598 26.9653C68.0598 29.6056 64.7674 31.1825 60.2089 31.1825C57.2422 31.1825 56.1929 30.4491 56.1929 28.9089C56.1929 27.2954 57.4954 26.5253 60.4622 26.5253C63.1396 26.5253 65.4188 26.5619 68.0598 26.892V26.9653ZM68.096 23.7016C66.4682 23.3349 64.0081 23.1149 61.0773 23.1149C52.5388 23.1149 48.5228 25.1318 48.5228 29.8257C48.5228 34.7029 51.2725 36.5731 57.6402 36.5731C63.031 36.5731 66.6853 35.2163 68.0236 31.8792H68.2407C68.2045 32.6859 68.1683 33.4927 68.1683 34.1161C68.1683 35.8396 68.4578 35.9864 69.8691 35.9864H76.5262C76.1644 34.9596 75.9472 32.0626 75.9472 29.5689C75.9472 26.892 76.0558 24.8751 76.0558 22.1615C76.0558 16.6241 72.7272 13.1037 62.3073 13.1037C57.821 13.1037 52.8282 13.8738 49.0293 15.0106C49.3911 16.5141 49.8977 19.5578 50.1509 21.538C53.4433 19.9979 58.1105 19.3378 61.7283 19.3378C66.7215 19.3378 68.096 20.4745 68.096 22.7848V23.7016Z"
fill="white"
/>
<path
d="M86.3622 28.5055C85.4576 28.6155 84.2278 28.6155 82.9613 28.6155C81.6224 28.6155 80.3927 28.5788 79.5604 28.4688C79.5604 28.7622 79.5242 29.0922 79.5242 29.3856C79.5242 33.9695 82.5271 36.6464 93.0917 36.6464C103.041 36.6464 106.261 34.0062 106.261 29.3489C106.261 24.9484 104.127 22.7848 94.6833 22.3081C87.3393 21.9781 86.6879 21.1713 86.6879 20.2545C86.6879 19.1911 87.6288 18.641 92.5489 18.641C97.6506 18.641 99.0251 19.3378 99.0251 20.8046V21.1346C99.7489 21.098 101.052 21.0613 102.39 21.0613C103.656 21.0613 105.031 21.098 105.827 21.1713C105.827 20.8413 105.863 20.5479 105.863 20.2912C105.863 14.9006 101.377 13.1404 92.6937 13.1404C82.9251 13.1404 79.6327 15.524 79.6327 20.1812C79.6327 24.3617 82.2738 26.9653 91.6443 27.3687C98.5547 27.5887 99.3146 28.3588 99.3146 29.4223C99.3146 30.559 98.1928 31.0725 93.345 31.0725C87.7735 31.0725 86.3622 30.3024 86.3622 28.7255V28.5055Z"
fill="white"
/>
<path
d="M118.203 9.17995C115.562 11.6369 110.822 14.0939 108.181 14.7539C108.217 16.1107 108.217 18.6044 108.217 19.9612L110.641 19.9979C110.605 22.6015 110.569 25.7552 110.569 27.8454C110.569 32.7226 113.137 36.3897 121.133 36.3897C124.498 36.3897 126.741 36.023 129.527 35.4363C129.237 33.6394 128.912 30.8891 128.804 28.7988C127.139 29.3489 125.041 29.6423 122.725 29.6423C119.505 29.6423 118.203 28.7622 118.203 26.2319C118.203 24.0316 118.203 21.9781 118.239 20.0712C122.364 20.1078 126.488 20.1812 128.912 20.2545C128.876 18.3477 128.948 15.5973 129.057 13.7638C125.547 13.8371 121.604 13.8738 118.348 13.8738C118.384 12.2603 118.42 10.7201 118.456 9.17995H118.203Z"
fill="white"
/>
<path
d="M139.812 18.861C139.848 16.9541 139.884 15.3406 139.92 13.7638H132.648C132.757 16.9175 132.757 20.1445 132.757 24.8751C132.757 29.6056 132.72 32.8693 132.648 35.9864H140.969C140.824 33.7861 140.788 30.0823 140.788 26.9286C140.788 21.9414 142.815 20.5112 147.409 20.5112C149.544 20.5112 151.063 20.768 152.402 21.2446C152.438 19.3745 152.8 15.744 153.017 14.1305C151.642 13.7271 150.123 13.4705 148.278 13.4705C144.334 13.4338 141.44 15.0473 140.101 18.8977L139.812 18.861Z"
fill="white"
/>
<path
d="M176.038 24.7284C176.038 28.7255 173.143 30.5957 168.584 30.5957C164.062 30.5957 161.167 28.8355 161.167 24.7284C161.167 20.6213 164.098 19.0811 168.584 19.0811C173.107 19.0811 176.038 20.7313 176.038 24.7284ZM183.599 24.5451C183.599 16.5875 177.376 13.0304 168.584 13.0304C159.757 13.0304 153.75 16.5875 153.75 24.5451C153.75 32.4659 159.359 36.7198 168.548 36.7198C177.81 36.7198 183.599 32.4659 183.599 24.5451Z"
fill="white"
/>
</g>
</g>
<defs>
<linearGradient
id="paint0_linear_5336_22429"
x1="10.1338"
y1="48.1347"
x2="31.1641"
y2="38.1736"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D83333" />
<stop offset="1" stopColor="#F041FF" />
</linearGradient>
<clipPath id="clip0_5336_22429">
<rect width="184" height="48.4533" fill="white" />
</clipPath>
</defs>
</svg>
}
href="/documentation/quickstarts/astro"
/>
Loading