2import Stripe from "npm:stripe";
3
4const stripe = new Stripe(Deno.env.get("STRIPE_READ_ONLY_API_KEY") as string, {
5 apiVersion: "2020-08-27",
6});
7
6
71. Sign up for [Cerebras](https://cloud.cerebras.ai/)
82. Get a Cerebras API Key
93. Save it in a [Val Town environment variable](https://www.val.town/settings/environment-variables) called `CEREBRAS_API_KEY`
10
11# Todos
212 } catch (error) {
213 Toastify({
214 text: "We may have hit our Cerebras Usage limits. Try again later or fork this and use your own API key.",
215 position: "center",
216 duration: 3000,
1024 };
1025 } else {
1026 const client = new Cerebras({ apiKey: Deno.env.get("CEREBRAS_API_KEY") });
1027 const completion = await client.chat.completions.create({
1028 messages: [
1149 <meta name="viewport" content="width=device-width, initial-scale=1.0">
1150 <title>CerebrasCoder</title>
1151 <link rel="preconnect" href="https://fonts.googleapis.com" />
1152 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
1153 <link
1154 href="https://fonts.googleapis.com/css2?family=DM+Mono:ital,wght@0,300;0,400;0,500;1,300;1,400;1,500&family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&display=swap"
1155 rel="stylesheet"
1156 />
1165 <meta property="og:description" content="Turn your ideas into fully functional apps in less than a second – powered by Llama3.3-70b on Cerebras's super-fast wafer chips. Code is 100% open-source, hosted on Val Town."">
1166 <meta property="og:type" content="website">
1167 <meta property="og:image" content="https://stevekrouse-blob_admin.web.val.run/api/public/CerebrasCoderOG.jpg">
1168
1169
6
71. Sign up for [Cerebras](https://cloud.cerebras.ai/)
82. Get a Cerebras API Key
93. Save it in a [Val Town environment variable](https://www.val.town/settings/environment-variables) called `CEREBRAS_API_KEY`
10
11# Todos
212 } catch (error) {
213 Toastify({
214 text: "We may have hit our Cerebras Usage limits. Try again later or fork this and use your own API key.",
215 position: "center",
216 duration: 3000,
1024 };
1025 } else {
1026 const client = new Cerebras({ apiKey: Deno.env.get("CEREBRAS_API_KEY") });
1027 const completion = await client.chat.completions.create({
1028 messages: [
1149 <meta name="viewport" content="width=device-width, initial-scale=1.0">
1150 <title>CerebrasCoder</title>
1151 <link rel="preconnect" href="https://fonts.googleapis.com" />
1152 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
1153 <link
1154 href="https://fonts.googleapis.com/css2?family=DM+Mono:ital,wght@0,300;0,400;0,500;1,300;1,400;1,500&family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&display=swap"
1155 rel="stylesheet"
1156 />
1165 <meta property="og:description" content="Turn your ideas into fully functional apps in less than a second – powered by Llama3.3-70b on Cerebras's super-fast wafer chips. Code is 100% open-source, hosted on Val Town."">
1166 <meta property="og:type" content="website">
1167 <meta property="og:image" content="https://stevekrouse-blob_admin.web.val.run/api/public/CerebrasCoderOG.jpg">
1168
1169
61 const fetchDocument = async (id) => {
62 try {
63 const response = await fetch(`/api/document/${id}`);
64 if (!response.ok) {
65 throw new Error(`HTTP error! status: ${response.status}`);
78 e.preventDefault();
79 try {
80 const response = await fetch("/api/document", {
81 method: "POST",
82 headers: { "Content-Type": "application/json" },
149 const path = url.pathname;
150
151 if (path === "/api/document" && request.method === "POST") {
152 const { content, forkId } = await request.json();
153 const id = uuidv4();
161 }
162
163 if (path.startsWith("/api/document/") && request.method === "GET") {
164 const id = path.split("/")[3];
165 if (!id || id === "undefined") {
2import Stripe from "npm:stripe";
3
4const stripe = new Stripe(Deno.env.get("STRIPE_READ_ONLY_API_KEY") as string, {
5 apiVersion: "2020-08-27",
6});
7
33}) =>
34 fetchJSON(
35 `https://api.telegram.org/bot${botToken}/setMessageReaction`,
36 {
37 method: "POST",
15```
16
17If you want to use an [api token](https://www.val.town/settings/api) to authenticate:
18
19```ts
93. Add your val's HTTP endpoint URL into the Stripe webhook
104. Select `customer.subscription.updated` as the only event to listen to (more on this below)
115. Add your `STRIPE_READ_ONLY_API_KEY` to your [Val Town Env Variables](https://www.val.town/settings/environment-variables)
126. Add your webhook's signing secret as `STRIPE_WEBHOOK_SECRET` to your [Val Town Env Variables](https://www.val.town/settings/environment-variables)
137. Add your Discord webhook URL as `STRIPE_DISCORD_WEBHOOK_URL` to your [Val Town Env Variables](https://www.val.town/settings/environment-variables)