From 3bd8276524d0edb02f01343f35c02d3c74ce10e2 Mon Sep 17 00:00:00 2001 From: Andreas Thomas Date: Tue, 28 Mar 2023 16:01:00 +0200 Subject: [PATCH] wip --- .../compiled-contentlayer-config-45X2WG6B.mjs | 96 ---- ...piled-contentlayer-config-45X2WG6B.mjs.map | 7 - .../compiled-contentlayer-config-AAEZAM7W.mjs | 97 ---- ...piled-contentlayer-config-AAEZAM7W.mjs.map | 7 - .../compiled-contentlayer-config-RHAHPX7F.mjs | 97 ---- ...piled-contentlayer-config-RHAHPX7F.mjs.map | 7 - .../.cache/v0.3.0/data-4T6LNXCP.json | 111 ----- .../.cache/v0.3.0/data-5GE3IMM2.json | 214 --------- .../.cache/v0.3.0/data-AAEZAM7W.json | 417 ------------------ .../.cache/v0.3.0/data-IGZ3LN4S.json | 162 ------- .../.cache/v0.3.0/data-KFUTZ636.json | 378 ---------------- .../.cache/v0.3.0/data-RHAHPX7F.json | 417 ------------------ .../.cache/v0.3.0/data-XX52LLCN.json | 85 ---- .contentlayer/generated/Page/_index.json | 1 - .contentlayer/generated/Page/_index.mjs | 3 - .contentlayer/generated/Project/_index.json | 340 -------------- .contentlayer/generated/Project/_index.mjs | 65 --- .../Project/projects__access.mdx.json | 22 - .../Project/projects__envshare copy.mdx.json | 22 - .../Project/projects__envshare.mdx.json | 23 - .../projects__planetfall copy.mdx.json | 22 - .../Project/projects__planetfall.mdx.json | 22 - .../Project/projects__qstash.mdx.json | 22 - .../Project/projects__redis-query.mdx.json | 20 - ...ojects__terraform-provider-vercel.mdx.json | 23 - .../projects__upstash-auth-analytics.mdx.json | 21 - .../Project/projects__upstash-cli.mdx.json | 23 - ...ects__upstash-core-analytics copy.mdx.json | 22 - .../projects__upstash-core-analytics.mdx.json | 23 - .../projects__upstash-edge-flags.mdx.json | 23 - .../Project/projects__upstash-kafka.mdx.json | 23 - .../projects__upstash-qstash-sdk.mdx.json | 23 - .../Project/projects__upstash-qstash.mdx.json | 22 - .../projects__upstash-ratelimit.mdx.json | 23 - .../projects__upstash-react-ui.mdx.json | 23 - .../Project/projects__upstash-redis.mdx.json | 23 - .../projects__upstash-web-analytics.mdx.json | 21 - .contentlayer/generated/index.d.ts | 10 - .contentlayer/generated/index.mjs | 12 - .contentlayer/generated/types.d.ts | 78 ---- .contentlayer/package.json | 17 - .gitignore | 1 + README.md | 43 +- app/layout.tsx | 12 +- app/page.module.css | 271 ------------ app/page.tsx | 12 +- app/projects/[slug]/header.tsx | 2 +- app/projects/[slug]/page.tsx | 10 +- app/projects/page.tsx | 2 +- content/projects/chronark.com.mdx | 14 + content/projects/planetfall.mdx | 5 +- package.json | 1 + pages/api/incr.ts | 2 +- pnpm-lock.yaml | 6 + public/fonts/CalSans-SemiBold.ttf | Bin 0 -> 148964 bytes public/planetfall.png | Bin 0 -> 660729 bytes static/media/metadata/favicon.603d046c.ico | Bin 25931 -> 0 bytes tailwind.config.js | 4 +- 58 files changed, 53 insertions(+), 3399 deletions(-) delete mode 100644 .contentlayer/.cache/v0.3.0/compiled-contentlayer-config-45X2WG6B.mjs delete mode 100644 .contentlayer/.cache/v0.3.0/compiled-contentlayer-config-45X2WG6B.mjs.map delete mode 100644 .contentlayer/.cache/v0.3.0/compiled-contentlayer-config-AAEZAM7W.mjs delete mode 100644 .contentlayer/.cache/v0.3.0/compiled-contentlayer-config-AAEZAM7W.mjs.map delete mode 100644 .contentlayer/.cache/v0.3.0/compiled-contentlayer-config-RHAHPX7F.mjs delete mode 100644 .contentlayer/.cache/v0.3.0/compiled-contentlayer-config-RHAHPX7F.mjs.map delete mode 100644 .contentlayer/.cache/v0.3.0/data-4T6LNXCP.json delete mode 100644 .contentlayer/.cache/v0.3.0/data-5GE3IMM2.json delete mode 100644 .contentlayer/.cache/v0.3.0/data-AAEZAM7W.json delete mode 100644 .contentlayer/.cache/v0.3.0/data-IGZ3LN4S.json delete mode 100644 .contentlayer/.cache/v0.3.0/data-KFUTZ636.json delete mode 100644 .contentlayer/.cache/v0.3.0/data-RHAHPX7F.json delete mode 100644 .contentlayer/.cache/v0.3.0/data-XX52LLCN.json delete mode 100644 .contentlayer/generated/Page/_index.json delete mode 100644 .contentlayer/generated/Page/_index.mjs delete mode 100644 .contentlayer/generated/Project/_index.json delete mode 100644 .contentlayer/generated/Project/_index.mjs delete mode 100644 .contentlayer/generated/Project/projects__access.mdx.json delete mode 100644 .contentlayer/generated/Project/projects__envshare copy.mdx.json delete mode 100644 .contentlayer/generated/Project/projects__envshare.mdx.json delete mode 100644 .contentlayer/generated/Project/projects__planetfall copy.mdx.json delete mode 100644 .contentlayer/generated/Project/projects__planetfall.mdx.json delete mode 100644 .contentlayer/generated/Project/projects__qstash.mdx.json delete mode 100644 .contentlayer/generated/Project/projects__redis-query.mdx.json delete mode 100644 .contentlayer/generated/Project/projects__terraform-provider-vercel.mdx.json delete mode 100644 .contentlayer/generated/Project/projects__upstash-auth-analytics.mdx.json delete mode 100644 .contentlayer/generated/Project/projects__upstash-cli.mdx.json delete mode 100644 .contentlayer/generated/Project/projects__upstash-core-analytics copy.mdx.json delete mode 100644 .contentlayer/generated/Project/projects__upstash-core-analytics.mdx.json delete mode 100644 .contentlayer/generated/Project/projects__upstash-edge-flags.mdx.json delete mode 100644 .contentlayer/generated/Project/projects__upstash-kafka.mdx.json delete mode 100644 .contentlayer/generated/Project/projects__upstash-qstash-sdk.mdx.json delete mode 100644 .contentlayer/generated/Project/projects__upstash-qstash.mdx.json delete mode 100644 .contentlayer/generated/Project/projects__upstash-ratelimit.mdx.json delete mode 100644 .contentlayer/generated/Project/projects__upstash-react-ui.mdx.json delete mode 100644 .contentlayer/generated/Project/projects__upstash-redis.mdx.json delete mode 100644 .contentlayer/generated/Project/projects__upstash-web-analytics.mdx.json delete mode 100644 .contentlayer/generated/index.d.ts delete mode 100644 .contentlayer/generated/index.mjs delete mode 100644 .contentlayer/generated/types.d.ts delete mode 100644 .contentlayer/package.json delete mode 100644 app/page.module.css create mode 100644 content/projects/chronark.com.mdx create mode 100644 public/fonts/CalSans-SemiBold.ttf create mode 100644 public/planetfall.png delete mode 100644 static/media/metadata/favicon.603d046c.ico diff --git a/.contentlayer/.cache/v0.3.0/compiled-contentlayer-config-45X2WG6B.mjs b/.contentlayer/.cache/v0.3.0/compiled-contentlayer-config-45X2WG6B.mjs deleted file mode 100644 index 9970854..0000000 --- a/.contentlayer/.cache/v0.3.0/compiled-contentlayer-config-45X2WG6B.mjs +++ /dev/null @@ -1,96 +0,0 @@ -// contentlayer.config.js -import { defineDocumentType, makeSource } from "contentlayer/source-files"; -import remarkGfm from "remark-gfm"; -import rehypePrettyCode from "rehype-pretty-code"; -import rehypeSlug from "rehype-slug"; -import rehypeAutolinkHeadings from "rehype-autolink-headings"; -var computedFields = { - path: { - type: "string", - resolve: (doc) => `/${doc._raw.flattenedPath}`, - }, - slug: { - type: "string", - resolve: (doc) => doc._raw.flattenedPath.split("/").slice(1).join("/"), - }, -}; -var Project = defineDocumentType(() => ({ - name: "Project", - filePathPattern: "./projects/**/*.mdx", - contentType: "mdx", - fields: { - title: { - type: "string", - required: true, - }, - description: { - type: "string", - }, - date: { - type: "date", - required: true, - }, - url: { - type: "string", - required: true, - }, - repository: { - type: "string", - required: true, - }, - }, - computedFields, -})); -var Page = defineDocumentType(() => ({ - name: "Page", - filePathPattern: "pages/**/*.mdx", - contentType: "mdx", - fields: { - title: { - type: "string", - required: true, - }, - description: { - type: "string", - }, - }, - computedFields, -})); -var contentlayer_config_default = makeSource({ - contentDirPath: "./content", - documentTypes: [Page, Project, Author, Tech], - mdx: { - remarkPlugins: [remarkGfm], - rehypePlugins: [ - rehypeSlug, - [ - rehypePrettyCode, - { - theme: "github-dark", - onVisitLine(node) { - if (node.children.length === 0) { - node.children = [{ type: "text", value: " " }]; - } - }, - onVisitHighlightedLine(node) { - node.properties.className.push("line--highlighted"); - }, - onVisitHighlightedWord(node) { - node.properties.className = ["word--highlighted"]; - }, - }, - ], - [ - rehypeAutolinkHeadings, - { - properties: { - className: ["subheading-anchor"], - ariaLabel: "Link to section", - }, - }, - ], - ], - }, -}); -export { Page, Project, contentlayer_config_default as default }; -//# sourceMappingURL=compiled-contentlayer-config-45X2WG6B.mjs.map diff --git a/.contentlayer/.cache/v0.3.0/compiled-contentlayer-config-45X2WG6B.mjs.map b/.contentlayer/.cache/v0.3.0/compiled-contentlayer-config-45X2WG6B.mjs.map deleted file mode 100644 index e0accc7..0000000 --- a/.contentlayer/.cache/v0.3.0/compiled-contentlayer-config-45X2WG6B.mjs.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../contentlayer.config.js"], - "sourcesContent": ["import { defineDocumentType, makeSource } from \"contentlayer/source-files\";\nimport remarkGfm from \"remark-gfm\";\nimport rehypePrettyCode from \"rehype-pretty-code\";\nimport rehypeSlug from \"rehype-slug\";\nimport rehypeAutolinkHeadings from \"rehype-autolink-headings\";\n\n/** @type {import('contentlayer/source-files').ComputedFields} */\nconst computedFields = {\n\tpath: {\n\t\ttype: \"string\",\n\t\tresolve: (doc) => `/${doc._raw.flattenedPath}`,\n\t},\n\tslug: {\n\t\ttype: \"string\",\n\t\tresolve: (doc) => doc._raw.flattenedPath.split(\"/\").slice(1).join(\"/\"),\n\t},\n};\n\nexport const Project = defineDocumentType(() => ({\n\tname: \"Project\",\n\tfilePathPattern: \"./projects/**/*.mdx\",\n\tcontentType: \"mdx\",\n\n\tfields: {\n\t\ttitle: {\n\t\t\ttype: \"string\",\n\t\t\trequired: true,\n\t\t},\n\t\tdescription: {\n\t\t\ttype: \"string\",\n\t\t},\n\t\tdate: {\n\t\t\ttype: \"date\",\n\t\t\trequired: true,\n\t\t},\n\t\turl: {\n\t\t\ttype: \"string\",\n\t\t\trequired: true,\n\t\t},\n\t\trepository: {\n\t\t\ttype: \"string\",\n\t\t\trequired: true,\n\t\t},\n\t},\n\tcomputedFields,\n}));\n\nexport const Page = defineDocumentType(() => ({\n\tname: \"Page\",\n\tfilePathPattern: \"pages/**/*.mdx\",\n\tcontentType: \"mdx\",\n\tfields: {\n\t\ttitle: {\n\t\t\ttype: \"string\",\n\t\t\trequired: true,\n\t\t},\n\t\tdescription: {\n\t\t\ttype: \"string\",\n\t\t},\n\t},\n\tcomputedFields,\n}));\n\nexport default makeSource({\n\tcontentDirPath: \"./content\",\n\tdocumentTypes: [Page, Project, Author, Tech],\n\tmdx: {\n\t\tremarkPlugins: [remarkGfm],\n\t\trehypePlugins: [\n\t\t\trehypeSlug,\n\t\t\t[\n\t\t\t\trehypePrettyCode,\n\t\t\t\t{\n\t\t\t\t\ttheme: \"github-dark\",\n\t\t\t\t\tonVisitLine(node) {\n\t\t\t\t\t\t// Prevent lines from collapsing in `display: grid` mode, and allow empty\n\t\t\t\t\t\t// lines to be copy/pasted\n\t\t\t\t\t\tif (node.children.length === 0) {\n\t\t\t\t\t\t\tnode.children = [{ type: \"text\", value: \" \" }];\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tonVisitHighlightedLine(node) {\n\t\t\t\t\t\tnode.properties.className.push(\"line--highlighted\");\n\t\t\t\t\t},\n\t\t\t\t\tonVisitHighlightedWord(node) {\n\t\t\t\t\t\tnode.properties.className = [\"word--highlighted\"];\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\trehypeAutolinkHeadings,\n\t\t\t\t{\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tclassName: [\"subheading-anchor\"],\n\t\t\t\t\t\tariaLabel: \"Link to section\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t],\n\t},\n});\n"], - "mappings": ";AAAA,SAAS,oBAAoB,kBAAkB;AAC/C,OAAO,eAAe;AACtB,OAAO,sBAAsB;AAC7B,OAAO,gBAAgB;AACvB,OAAO,4BAA4B;AAGnC,IAAM,iBAAiB;AAAA,EACtB,MAAM;AAAA,IACL,MAAM;AAAA,IACN,SAAS,CAAC,QAAQ,IAAI,IAAI,KAAK;AAAA,EAChC;AAAA,EACA,MAAM;AAAA,IACL,MAAM;AAAA,IACN,SAAS,CAAC,QAAQ,IAAI,KAAK,cAAc,MAAM,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG;AAAA,EACtE;AACD;AAEO,IAAM,UAAU,mBAAmB,OAAO;AAAA,EAChD,MAAM;AAAA,EACN,iBAAiB;AAAA,EACjB,aAAa;AAAA,EAEb,QAAQ;AAAA,IACP,OAAO;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,IACA,aAAa;AAAA,MACZ,MAAM;AAAA,IACP;AAAA,IACA,MAAM;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,IACA,KAAK;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,IACA,YAAY;AAAA,MACX,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,EACD;AAAA,EACA;AACD,EAAE;AAEK,IAAM,OAAO,mBAAmB,OAAO;AAAA,EAC7C,MAAM;AAAA,EACN,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,QAAQ;AAAA,IACP,OAAO;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,IACA,aAAa;AAAA,MACZ,MAAM;AAAA,IACP;AAAA,EACD;AAAA,EACA;AACD,EAAE;AAEF,IAAO,8BAAQ,WAAW;AAAA,EACzB,gBAAgB;AAAA,EAChB,eAAe,CAAC,MAAM,SAAS,QAAQ,IAAI;AAAA,EAC3C,KAAK;AAAA,IACJ,eAAe,CAAC,SAAS;AAAA,IACzB,eAAe;AAAA,MACd;AAAA,MACA;AAAA,QACC;AAAA,QACA;AAAA,UACC,OAAO;AAAA,UACP,YAAY,MAAM;AAGjB,gBAAI,KAAK,SAAS,WAAW,GAAG;AAC/B,mBAAK,WAAW,CAAC,EAAE,MAAM,QAAQ,OAAO,IAAI,CAAC;AAAA,YAC9C;AAAA,UACD;AAAA,UACA,uBAAuB,MAAM;AAC5B,iBAAK,WAAW,UAAU,KAAK,mBAAmB;AAAA,UACnD;AAAA,UACA,uBAAuB,MAAM;AAC5B,iBAAK,WAAW,YAAY,CAAC,mBAAmB;AAAA,UACjD;AAAA,QACD;AAAA,MACD;AAAA,MACA;AAAA,QACC;AAAA,QACA;AAAA,UACC,YAAY;AAAA,YACX,WAAW,CAAC,mBAAmB;AAAA,YAC/B,WAAW;AAAA,UACZ;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD,CAAC;", - "names": [] -} diff --git a/.contentlayer/.cache/v0.3.0/compiled-contentlayer-config-AAEZAM7W.mjs b/.contentlayer/.cache/v0.3.0/compiled-contentlayer-config-AAEZAM7W.mjs deleted file mode 100644 index 12aed14..0000000 --- a/.contentlayer/.cache/v0.3.0/compiled-contentlayer-config-AAEZAM7W.mjs +++ /dev/null @@ -1,97 +0,0 @@ -// contentlayer.config.js -import { defineDocumentType, makeSource } from "contentlayer/source-files"; -import remarkGfm from "remark-gfm"; -import rehypePrettyCode from "rehype-pretty-code"; -import rehypeSlug from "rehype-slug"; -import rehypeAutolinkHeadings from "rehype-autolink-headings"; -var computedFields = { - path: { - type: "string", - resolve: (doc) => `/${doc._raw.flattenedPath}`, - }, - slug: { - type: "string", - resolve: (doc) => doc._raw.flattenedPath.split("/").slice(1).join("/"), - }, -}; -var Project = defineDocumentType(() => ({ - name: "Project", - filePathPattern: "./projects/**/*.mdx", - contentType: "mdx", - fields: { - published: { - type: "boolean", - }, - title: { - type: "string", - required: true, - }, - description: { - type: "string", - required: true, - }, - date: { - type: "date", - }, - url: { - type: "string", - }, - repository: { - type: "string", - }, - }, - computedFields, -})); -var Page = defineDocumentType(() => ({ - name: "Page", - filePathPattern: "pages/**/*.mdx", - contentType: "mdx", - fields: { - title: { - type: "string", - required: true, - }, - description: { - type: "string", - }, - }, - computedFields, -})); -var contentlayer_config_default = makeSource({ - contentDirPath: "./content", - documentTypes: [Page, Project], - mdx: { - remarkPlugins: [remarkGfm], - rehypePlugins: [ - rehypeSlug, - [ - rehypePrettyCode, - { - theme: "github-dark", - onVisitLine(node) { - if (node.children.length === 0) { - node.children = [{ type: "text", value: " " }]; - } - }, - onVisitHighlightedLine(node) { - node.properties.className.push("line--highlighted"); - }, - onVisitHighlightedWord(node) { - node.properties.className = ["word--highlighted"]; - }, - }, - ], - [ - rehypeAutolinkHeadings, - { - properties: { - className: ["subheading-anchor"], - ariaLabel: "Link to section", - }, - }, - ], - ], - }, -}); -export { Page, Project, contentlayer_config_default as default }; -//# sourceMappingURL=compiled-contentlayer-config-AAEZAM7W.mjs.map diff --git a/.contentlayer/.cache/v0.3.0/compiled-contentlayer-config-AAEZAM7W.mjs.map b/.contentlayer/.cache/v0.3.0/compiled-contentlayer-config-AAEZAM7W.mjs.map deleted file mode 100644 index 511eba5..0000000 --- a/.contentlayer/.cache/v0.3.0/compiled-contentlayer-config-AAEZAM7W.mjs.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../contentlayer.config.js"], - "sourcesContent": ["import { defineDocumentType, makeSource } from \"contentlayer/source-files\";\nimport remarkGfm from \"remark-gfm\";\nimport rehypePrettyCode from \"rehype-pretty-code\";\nimport rehypeSlug from \"rehype-slug\";\nimport rehypeAutolinkHeadings from \"rehype-autolink-headings\";\n\n/** @type {import('contentlayer/source-files').ComputedFields} */\nconst computedFields = {\n\tpath: {\n\t\ttype: \"string\",\n\t\tresolve: (doc) => `/${doc._raw.flattenedPath}`,\n\t},\n\tslug: {\n\t\ttype: \"string\",\n\t\tresolve: (doc) => doc._raw.flattenedPath.split(\"/\").slice(1).join(\"/\"),\n\t},\n};\n\nexport const Project = defineDocumentType(() => ({\n\tname: \"Project\",\n\tfilePathPattern: \"./projects/**/*.mdx\",\n\tcontentType: \"mdx\",\n\n\tfields: {\n\t\tpublished: {\n\t\t\ttype: \"boolean\",\n\t\t},\n\t\ttitle: {\n\t\t\ttype: \"string\",\n\t\t\trequired: true,\n\t\t},\n\t\tdescription: {\n\t\t\ttype: \"string\",\n\t\t\trequired: true,\n\t\t},\n\t\tdate: {\n\t\t\ttype: \"date\",\n\t\t},\n\t\turl: {\n\t\t\ttype: \"string\",\n\t\t},\n\t\trepository: {\n\t\t\ttype: \"string\",\n\t\t},\n\t},\n\tcomputedFields,\n}));\n\nexport const Page = defineDocumentType(() => ({\n\tname: \"Page\",\n\tfilePathPattern: \"pages/**/*.mdx\",\n\tcontentType: \"mdx\",\n\tfields: {\n\t\ttitle: {\n\t\t\ttype: \"string\",\n\t\t\trequired: true,\n\t\t},\n\t\tdescription: {\n\t\t\ttype: \"string\",\n\t\t},\n\t},\n\tcomputedFields,\n}));\n\nexport default makeSource({\n\tcontentDirPath: \"./content\",\n\tdocumentTypes: [Page, Project],\n\tmdx: {\n\t\tremarkPlugins: [remarkGfm],\n\t\trehypePlugins: [\n\t\t\trehypeSlug,\n\t\t\t[\n\t\t\t\trehypePrettyCode,\n\t\t\t\t{\n\t\t\t\t\ttheme: \"github-dark\",\n\t\t\t\t\tonVisitLine(node) {\n\t\t\t\t\t\t// Prevent lines from collapsing in `display: grid` mode, and allow empty\n\t\t\t\t\t\t// lines to be copy/pasted\n\t\t\t\t\t\tif (node.children.length === 0) {\n\t\t\t\t\t\t\tnode.children = [{ type: \"text\", value: \" \" }];\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tonVisitHighlightedLine(node) {\n\t\t\t\t\t\tnode.properties.className.push(\"line--highlighted\");\n\t\t\t\t\t},\n\t\t\t\t\tonVisitHighlightedWord(node) {\n\t\t\t\t\t\tnode.properties.className = [\"word--highlighted\"];\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\trehypeAutolinkHeadings,\n\t\t\t\t{\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tclassName: [\"subheading-anchor\"],\n\t\t\t\t\t\tariaLabel: \"Link to section\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t],\n\t},\n});\n"], - "mappings": ";AAAA,SAAS,oBAAoB,kBAAkB;AAC/C,OAAO,eAAe;AACtB,OAAO,sBAAsB;AAC7B,OAAO,gBAAgB;AACvB,OAAO,4BAA4B;AAGnC,IAAM,iBAAiB;AAAA,EACtB,MAAM;AAAA,IACL,MAAM;AAAA,IACN,SAAS,CAAC,QAAQ,IAAI,IAAI,KAAK;AAAA,EAChC;AAAA,EACA,MAAM;AAAA,IACL,MAAM;AAAA,IACN,SAAS,CAAC,QAAQ,IAAI,KAAK,cAAc,MAAM,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG;AAAA,EACtE;AACD;AAEO,IAAM,UAAU,mBAAmB,OAAO;AAAA,EAChD,MAAM;AAAA,EACN,iBAAiB;AAAA,EACjB,aAAa;AAAA,EAEb,QAAQ;AAAA,IACP,WAAW;AAAA,MACV,MAAM;AAAA,IACP;AAAA,IACA,OAAO;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,IACA,aAAa;AAAA,MACZ,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,IACA,MAAM;AAAA,MACL,MAAM;AAAA,IACP;AAAA,IACA,KAAK;AAAA,MACJ,MAAM;AAAA,IACP;AAAA,IACA,YAAY;AAAA,MACX,MAAM;AAAA,IACP;AAAA,EACD;AAAA,EACA;AACD,EAAE;AAEK,IAAM,OAAO,mBAAmB,OAAO;AAAA,EAC7C,MAAM;AAAA,EACN,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,QAAQ;AAAA,IACP,OAAO;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,IACA,aAAa;AAAA,MACZ,MAAM;AAAA,IACP;AAAA,EACD;AAAA,EACA;AACD,EAAE;AAEF,IAAO,8BAAQ,WAAW;AAAA,EACzB,gBAAgB;AAAA,EAChB,eAAe,CAAC,MAAM,OAAO;AAAA,EAC7B,KAAK;AAAA,IACJ,eAAe,CAAC,SAAS;AAAA,IACzB,eAAe;AAAA,MACd;AAAA,MACA;AAAA,QACC;AAAA,QACA;AAAA,UACC,OAAO;AAAA,UACP,YAAY,MAAM;AAGjB,gBAAI,KAAK,SAAS,WAAW,GAAG;AAC/B,mBAAK,WAAW,CAAC,EAAE,MAAM,QAAQ,OAAO,IAAI,CAAC;AAAA,YAC9C;AAAA,UACD;AAAA,UACA,uBAAuB,MAAM;AAC5B,iBAAK,WAAW,UAAU,KAAK,mBAAmB;AAAA,UACnD;AAAA,UACA,uBAAuB,MAAM;AAC5B,iBAAK,WAAW,YAAY,CAAC,mBAAmB;AAAA,UACjD;AAAA,QACD;AAAA,MACD;AAAA,MACA;AAAA,QACC;AAAA,QACA;AAAA,UACC,YAAY;AAAA,YACX,WAAW,CAAC,mBAAmB;AAAA,YAC/B,WAAW;AAAA,UACZ;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD,CAAC;", - "names": [] -} diff --git a/.contentlayer/.cache/v0.3.0/compiled-contentlayer-config-RHAHPX7F.mjs b/.contentlayer/.cache/v0.3.0/compiled-contentlayer-config-RHAHPX7F.mjs deleted file mode 100644 index f1c3af1..0000000 --- a/.contentlayer/.cache/v0.3.0/compiled-contentlayer-config-RHAHPX7F.mjs +++ /dev/null @@ -1,97 +0,0 @@ -// contentlayer.config.js -import { defineDocumentType, makeSource } from "contentlayer/source-files"; -import remarkGfm from "remark-gfm"; -import rehypePrettyCode from "rehype-pretty-code"; -import rehypeSlug from "rehype-slug"; -import rehypeAutolinkHeadings from "rehype-autolink-headings"; -var computedFields = { - path: { - type: "string", - resolve: (doc) => `/${doc._raw.flattenedPath}`, - }, - slug: { - type: "string", - resolve: (doc) => doc._raw.flattenedPath.split("/").slice(1).join("/"), - }, -}; -var Project = defineDocumentType(() => ({ - name: "Project", - filePathPattern: "./projects/**/*.mdx", - contentType: "mdx", - fields: { - published: { - type: "boolean", - }, - title: { - type: "string", - required: true, - }, - description: { - type: "string", - required: true, - }, - date: { - type: "date", - }, - url: { - type: "string", - }, - repository: { - type: "string", - }, - }, - computedFields, -})); -var Page = defineDocumentType(() => ({ - name: "Page", - filePathPattern: "pages/**/*.mdx", - contentType: "mdx", - fields: { - title: { - type: "string", - required: true, - }, - description: { - type: "string", - }, - }, - computedFields, -})); -var contentlayer_config_default = makeSource({ - contentDirPath: "./content", - documentTypes: [Page, Project], - mdx: { - remarkPlugins: [remarkGfm], - rehypePlugins: [ - rehypeSlug, - [ - rehypePrettyCode, - { - theme: "github-dark", - onVisitLine(node) { - if (node.children.length === 0) { - node.children = [{ type: "text", value: " " }]; - } - }, - onVisitHighlightedLine(node) { - node.properties.className.push("line--highlighted"); - }, - onVisitHighlightedWord(node) { - node.properties.className = ["word--highlighted"]; - }, - }, - ], - [ - rehypeAutolinkHeadings, - { - properties: { - className: ["subheading-anchor"], - ariaLabel: "Link to section", - }, - }, - ], - ], - }, -}); -export { Page, Project, contentlayer_config_default as default }; -//# sourceMappingURL=compiled-contentlayer-config-RHAHPX7F.mjs.map diff --git a/.contentlayer/.cache/v0.3.0/compiled-contentlayer-config-RHAHPX7F.mjs.map b/.contentlayer/.cache/v0.3.0/compiled-contentlayer-config-RHAHPX7F.mjs.map deleted file mode 100644 index 7ec1135..0000000 --- a/.contentlayer/.cache/v0.3.0/compiled-contentlayer-config-RHAHPX7F.mjs.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../contentlayer.config.js"], - "sourcesContent": ["import { defineDocumentType, makeSource } from \"contentlayer/source-files\";\nimport remarkGfm from \"remark-gfm\";\nimport rehypePrettyCode from \"rehype-pretty-code\";\nimport rehypeSlug from \"rehype-slug\";\nimport rehypeAutolinkHeadings from \"rehype-autolink-headings\";\n\n/** @type {import('contentlayer/source-files').ComputedFields} */\nconst computedFields = {\n\tpath: {\n\t\ttype: \"string\",\n\t\tresolve: (doc) => `/${doc._raw.flattenedPath}`,\n\t},\n\tslug: {\n\t\ttype: \"string\",\n\t\tresolve: (doc) => doc._raw.flattenedPath.split(\"/\").slice(1).join(\"/\"),\n\t},\n};\n\nexport const Project = defineDocumentType(() => ({\n\tname: \"Project\",\n\tfilePathPattern: \"./projects/**/*.mdx\",\n\tcontentType: \"mdx\",\n\n\tfields: {\n\t\tpublished:{\n\t\t\ttype: \"boolean\",\n\t\t},\n\t\ttitle: {\n\t\t\ttype: \"string\",\n\t\t\trequired: true,\n\t\t},\n\t\tdescription: {\n\t\t\ttype: \"string\",\n\t\t\trequired: true,\n\t\t},\n\t\tdate: {\n\t\t\ttype: \"date\",\n\t\t},\n\t\turl: {\n\t\t\ttype: \"string\",\n\t\t},\n\t\trepository: {\n\t\t\ttype: \"string\",\n\t\t},\n\t},\n\tcomputedFields,\n}));\n\nexport const Page = defineDocumentType(() => ({\n\tname: \"Page\",\n\tfilePathPattern: \"pages/**/*.mdx\",\n\tcontentType: \"mdx\",\n\tfields: {\n\t\ttitle: {\n\t\t\ttype: \"string\",\n\t\t\trequired: true,\n\t\t},\n\t\tdescription: {\n\t\t\ttype: \"string\",\n\t\t},\n\t},\n\tcomputedFields,\n}));\n\nexport default makeSource({\n\tcontentDirPath: \"./content\",\n\tdocumentTypes: [Page, Project],\n\tmdx: {\n\t\tremarkPlugins: [remarkGfm],\n\t\trehypePlugins: [\n\t\t\trehypeSlug,\n\t\t\t[\n\t\t\t\trehypePrettyCode,\n\t\t\t\t{\n\t\t\t\t\ttheme: \"github-dark\",\n\t\t\t\t\tonVisitLine(node) {\n\t\t\t\t\t\t// Prevent lines from collapsing in `display: grid` mode, and allow empty\n\t\t\t\t\t\t// lines to be copy/pasted\n\t\t\t\t\t\tif (node.children.length === 0) {\n\t\t\t\t\t\t\tnode.children = [{ type: \"text\", value: \" \" }];\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tonVisitHighlightedLine(node) {\n\t\t\t\t\t\tnode.properties.className.push(\"line--highlighted\");\n\t\t\t\t\t},\n\t\t\t\t\tonVisitHighlightedWord(node) {\n\t\t\t\t\t\tnode.properties.className = [\"word--highlighted\"];\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\trehypeAutolinkHeadings,\n\t\t\t\t{\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tclassName: [\"subheading-anchor\"],\n\t\t\t\t\t\tariaLabel: \"Link to section\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t],\n\t},\n});\n"], - "mappings": ";AAAA,SAAS,oBAAoB,kBAAkB;AAC/C,OAAO,eAAe;AACtB,OAAO,sBAAsB;AAC7B,OAAO,gBAAgB;AACvB,OAAO,4BAA4B;AAGnC,IAAM,iBAAiB;AAAA,EACtB,MAAM;AAAA,IACL,MAAM;AAAA,IACN,SAAS,CAAC,QAAQ,IAAI,IAAI,KAAK;AAAA,EAChC;AAAA,EACA,MAAM;AAAA,IACL,MAAM;AAAA,IACN,SAAS,CAAC,QAAQ,IAAI,KAAK,cAAc,MAAM,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG;AAAA,EACtE;AACD;AAEO,IAAM,UAAU,mBAAmB,OAAO;AAAA,EAChD,MAAM;AAAA,EACN,iBAAiB;AAAA,EACjB,aAAa;AAAA,EAEb,QAAQ;AAAA,IACP,WAAU;AAAA,MACT,MAAM;AAAA,IACP;AAAA,IACA,OAAO;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,IACA,aAAa;AAAA,MACZ,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,IACA,MAAM;AAAA,MACL,MAAM;AAAA,IACP;AAAA,IACA,KAAK;AAAA,MACJ,MAAM;AAAA,IACP;AAAA,IACA,YAAY;AAAA,MACX,MAAM;AAAA,IACP;AAAA,EACD;AAAA,EACA;AACD,EAAE;AAEK,IAAM,OAAO,mBAAmB,OAAO;AAAA,EAC7C,MAAM;AAAA,EACN,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,QAAQ;AAAA,IACP,OAAO;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,IACA,aAAa;AAAA,MACZ,MAAM;AAAA,IACP;AAAA,EACD;AAAA,EACA;AACD,EAAE;AAEF,IAAO,8BAAQ,WAAW;AAAA,EACzB,gBAAgB;AAAA,EAChB,eAAe,CAAC,MAAM,OAAO;AAAA,EAC7B,KAAK;AAAA,IACJ,eAAe,CAAC,SAAS;AAAA,IACzB,eAAe;AAAA,MACd;AAAA,MACA;AAAA,QACC;AAAA,QACA;AAAA,UACC,OAAO;AAAA,UACP,YAAY,MAAM;AAGjB,gBAAI,KAAK,SAAS,WAAW,GAAG;AAC/B,mBAAK,WAAW,CAAC,EAAE,MAAM,QAAQ,OAAO,IAAI,CAAC;AAAA,YAC9C;AAAA,UACD;AAAA,UACA,uBAAuB,MAAM;AAC5B,iBAAK,WAAW,UAAU,KAAK,mBAAmB;AAAA,UACnD;AAAA,UACA,uBAAuB,MAAM;AAC5B,iBAAK,WAAW,YAAY,CAAC,mBAAmB;AAAA,UACjD;AAAA,QACD;AAAA,MACD;AAAA,MACA;AAAA,QACC;AAAA,QACA;AAAA,UACC,YAAY;AAAA,YACX,WAAW,CAAC,mBAAmB;AAAA,YAC/B,WAAW;AAAA,UACZ;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD,CAAC;", - "names": [] -} diff --git a/.contentlayer/.cache/v0.3.0/data-4T6LNXCP.json b/.contentlayer/.cache/v0.3.0/data-4T6LNXCP.json deleted file mode 100644 index 2676605..0000000 --- a/.contentlayer/.cache/v0.3.0/data-4T6LNXCP.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "cacheItemsMap": { - "projects/envshare.mdx": { - "document": { - "title": "envshare.dev", - "description": "EnvShare is a simple tool to share environment variables securely. It uses AES-GCM to encrypt your data before sending it to the server. The encryption key never leaves your browser.", - "date": "2023-01-16T00:00:00.000Z", - "url": "https://envshare.dev", - "repository": "chronark/envshare", - "body": { - "raw": "\nEnvShare is a simple tool to share environment variables securely. It uses\n**AES-GCM** to encrypt your data before sending it to the server. The encryption\nkey never leaves your browser.\n\n## Features\n\n- **Shareable Links:** Share your environment variables securely by sending a\n link\n- **End-to-End Encryption:** AES-GCM encryption is used to encrypt your data\n before sending it to the server\n- **Limit number of reads:** Limit the number of times a link can be read\n- **Auto Expire:** Automatically expire links and delete data after a certain\n time\n\n\n\n![](img/envshare.png)\n\n## Built with\n\n- [Next.js](https://nextjs.org)\n- [tailwindcss](https://tailwindcss.com)\n- Deployed on [Vercel](https://vercel.com?utm_source=envshare)\n- Data stored on [Upstash](https://upstash.com?utm_source=envshare)\n\n## Deploy your own\n\nDetailed instructions can be found [here](https://envshare.dev/deploy)\n\nAll you need is a Redis database on Upstash and a Vercel account. Click the\nbutton below to clone and deploy:\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?demo-title=EnvShare&demo-description=Simple%20Next.js%20%2B%20Upstash%20app%20to%20share%20environment%20variables%20securely%20using%20AES-GCM%20encryption.&demo-url=https%3A%2F%2Fenvshare.dev%2F&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5SaFBHXp5FBFJbsTzVqIJ3%2Ff0f8382369b7642fd8103debb9025c11%2Fenvshare.png&project-name=EnvShare&repository-name=envshare&repository-url=https%3A%2F%2Fgithub.com%2Fchronark%2Fenvshare&from=templates&integration-ids=oac_V3R1GIpkoJorr6fqyiwdhl17)\n\n\n\n## Configuration\n\n### Environment Variables\n\n`ENABLE_VERCEL_ANALYTICS` Any truthy value will enable Vercel Analytics. This is turned off by default\n\n## Contributing\n\nThis repository uses `pnpm` to manage dependencies. Install it using\n`npm install -g pnpm`\n\nPlease run `pnpm fmt` before committing to format the code.\n\n## Docs\n\nDocs in the README are temporary and will be moved to the website soon.\n\n### API\n\n#### Store a secret\n\n**PLEASE NEVER EVER UPLOAD UNENCRYPTED SECRETS.**\n\nThis endpoint is only meant to store **already encrypted** secrets. The\nencrypted secrets are stored in plain text.\n\n```sh-session\n$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\"\n```\n\nYou can add optional headers to configure the ttl and number of reads.\n\n```sh-session\n$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\" -H \"envshare-ttl: 3600\" -H \"envshare-reads: 10\"\n```\n\n- Omitting the `envshare-ttl` header will set a default of 30 days. Disable the\n ttl by setting it to 0. (`envshare-ttl: 0`)\n- Omitting the `envshare-reads` header will simply disable it and allow reading\n for an unlimited number of times.\n\nThis endpoint returns a JSON response with the secret id:\n\n```json\n{\n \"data\": {\n \"id\": \"HdPbXgpvUvNk43oxSdK97u\",\n \"ttl\": 86400,\n \"reads\": 2,\n \"expiresAt\": \"2023-01-19T20:47:28.383Z\",\n \"url\": \"http://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"\n }\n}\n```\n\n#### Retrieve a secret\n\nYou need an id to retrieve a secret. The id is returned when you store a secret.\n\n```sh-session\n$ curl -s https://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\n```\n\n```json\n{\n \"data\": {\n \"secret\": \"Hello\",\n \"remainingReads\": 1\n }\n}\n```", - "code": "var Component=(()=>{var ln=Object.create;var O=Object.defineProperty;var dn=Object.getOwnPropertyDescriptor;var un=Object.getOwnPropertyNames;var mn=Object.getPrototypeOf,bn=Object.prototype.hasOwnProperty;var X=(d,n)=>()=>(n||d((n={exports:{}}).exports,n),n.exports),hn=(d,n)=>{for(var _ in n)O(d,_,{get:n[_],enumerable:!0})},ye=(d,n,_,x)=>{if(n&&typeof n==\"object\"||typeof n==\"function\")for(let k of un(n))!bn.call(d,k)&&k!==_&&O(d,k,{get:()=>n[k],enumerable:!(x=dn(n,k))||x.enumerable});return d};var fn=(d,n,_)=>(_=d!=null?ln(mn(d)):{},ye(n||!d||!d.__esModule?O(_,\"default\",{value:d,enumerable:!0}):_,d)),_n=d=>ye(O({},\"__esModule\",{value:!0}),d);var ve=X((gn,ge)=>{ge.exports=React});var Ee=X(H=>{\"use strict\";(function(){\"use strict\";var d=ve(),n=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),x=Symbol.for(\"react.fragment\"),k=Symbol.for(\"react.strict_mode\"),q=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),z=Symbol.for(\"react.context\"),R=Symbol.for(\"react.forward_ref\"),A=Symbol.for(\"react.suspense\"),D=Symbol.for(\"react.suspense_list\"),F=Symbol.for(\"react.memo\"),L=Symbol.for(\"react.lazy\"),Fe=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Te=\"@@iterator\";function we(e){if(e===null||typeof e!=\"object\")return null;var a=J&&e[J]||e[Te];return typeof a==\"function\"?a:null}var g=d.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function b(e){{for(var a=arguments.length,t=new Array(a>1?a-1:0),o=1;o=1&&m>=0&&c[u]!==h[m];)m--;for(;u>=1&&m>=0;u--,m--)if(c[u]!==h[m]){if(u!==1||m!==1)do if(u--,m--,m<0||c[u]!==h[m]){var f=`\n`+c[u].replace(\" at new \",\" at \");return e.displayName&&f.includes(\"\")&&(f=f.replace(\"\",e.displayName)),typeof e==\"function\"&&w.set(e,f),f}while(u>=1&&m>=0);break}}}finally{V=!1,I.current=l,Ve(),Error.prepareStackTrace=i}var E=e?e.displayName||e.name:\"\",xe=E?T(E):\"\";return typeof e==\"function\"&&w.set(e,xe),xe}function $e(e,a,t){return ie(e,!1)}function Me(e){var a=e.prototype;return!!(a&&a.isReactComponent)}function S(e,a,t){if(e==null)return\"\";if(typeof e==\"function\")return ie(e,Me(e));if(typeof e==\"string\")return T(e);switch(e){case A:return T(\"Suspense\");case D:return T(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case R:return $e(e.render);case F:return S(e.type,a,t);case L:{var o=e,i=o._payload,l=o._init;try{return S(l(i),a,t)}catch{}}}return\"\"}var C=Object.prototype.hasOwnProperty,le={},de=g.ReactDebugCurrentFrame;function P(e){if(e){var a=e._owner,t=S(e.type,e._source,a?a.type:null);de.setExtraStackFrame(t)}else de.setExtraStackFrame(null)}function We(e,a,t,o,i){{var l=Function.call.bind(C);for(var s in e)if(l(e,s)){var c=void 0;try{if(typeof e[s]!=\"function\"){var h=Error((o||\"React class\")+\": \"+t+\" type `\"+s+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[s]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw h.name=\"Invariant Violation\",h}c=e[s](a,s,o,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(u){c=u}c&&!(c instanceof Error)&&(P(i),b(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",o||\"React class\",t,s,typeof c),P(null)),c instanceof Error&&!(c.message in le)&&(le[c.message]=!0,P(i),b(\"Failed %s type: %s\",t,c.message),P(null))}}}var Ge=Array.isArray;function Y(e){return Ge(e)}function Xe(e){{var a=typeof Symbol==\"function\"&&Symbol.toStringTag,t=a&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function He(e){try{return ue(e),!1}catch{return!0}}function ue(e){return\"\"+e}function me(e){if(He(e))return b(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Xe(e)),ue(e)}var U=g.ReactCurrentOwner,qe={key:!0,ref:!0,__self:!0,__source:!0},be,he,$;$={};function Ke(e){if(C.call(e,\"ref\")){var a=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(a&&a.isReactWarning)return!1}return e.ref!==void 0}function ze(e){if(C.call(e,\"key\")){var a=Object.getOwnPropertyDescriptor(e,\"key\").get;if(a&&a.isReactWarning)return!1}return e.key!==void 0}function Je(e,a){if(typeof e.ref==\"string\"&&U.current&&a&&U.current.stateNode!==a){var t=p(U.current.type);$[t]||(b('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(U.current.type),e.ref),$[t]=!0)}}function Ze(e,a){{var t=function(){be||(be=!0,b(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,a){{var t=function(){he||(he=!0,b(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var en=function(e,a,t,o,i,l,s){var c={$$typeof:n,type:e,key:a,ref:t,props:s,_owner:l};return c._store={},Object.defineProperty(c._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(c,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(c,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(c.props),Object.freeze(c)),c};function nn(e,a,t,o,i){{var l,s={},c=null,h=null;t!==void 0&&(me(t),c=\"\"+t),ze(a)&&(me(a.key),c=\"\"+a.key),Ke(a)&&(h=a.ref,Je(a,i));for(l in a)C.call(a,l)&&!qe.hasOwnProperty(l)&&(s[l]=a[l]);if(e&&e.defaultProps){var u=e.defaultProps;for(l in u)s[l]===void 0&&(s[l]=u[l])}if(c||h){var m=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;c&&Ze(s,m),h&&Qe(s,m)}return en(e,c,h,i,o,U.current,s)}}var M=g.ReactCurrentOwner,fe=g.ReactDebugCurrentFrame;function v(e){if(e){var a=e._owner,t=S(e.type,e._source,a?a.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}var W;W=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===n}function _e(){{if(M.current){var e=p(M.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function rn(e){{if(e!==void 0){var a=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+a+\":\"+t+\".\"}return\"\"}}var pe={};function an(e){{var a=_e();if(!a){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(a=`\n\nCheck the top-level render call using <`+t+\">.\")}return a}}function Ne(e,a){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=an(a);if(pe[t])return;pe[t]=!0;var o=\"\";e&&e._owner&&e._owner!==M.current&&(o=\" It was passed a child from \"+p(e._owner.type)+\".\"),v(e),b('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,o),v(null)}}function ke(e,a){{if(typeof e!=\"object\")return;if(Y(e))for(var t=0;t\",c=\" Did you accidentally export a JSX literal instead of a component?\"):u=typeof e,b(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",u,c)}var m=nn(e,a,t,i,l);if(m==null)return m;if(s){var f=a.children;if(f!==void 0)if(o)if(Y(f)){for(var E=0;E{\"use strict\";je.exports=Ee()});var xn={};hn(xn,{default:()=>kn,frontmatter:()=>pn});var r=fn(Ue()),pn={title:\"envshare.dev\",description:\"EnvShare is a simple tool to share environment variables securely. It uses AES-GCM to encrypt your data before sending it to the server. The encryption key never leaves your browser.\",date:\"2023-01-16\",url:\"https://envshare.dev\",repository:\"chronark/envshare\"};function Re(d){let n=Object.assign({p:\"p\",strong:\"strong\",h2:\"h2\",a:\"a\",span:\"span\",ul:\"ul\",li:\"li\",img:\"img\",h3:\"h3\",code:\"code\",h4:\"h4\",div:\"div\",pre:\"pre\"},d.components);return(0,r.jsxDEV)(r.Fragment,{children:[(0,r.jsxDEV)(n.p,{children:[`EnvShare is a simple tool to share environment variables securely. It uses\n`,(0,r.jsxDEV)(n.strong,{children:\"AES-GCM\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:11,columnNumber:1},this),` to encrypt your data before sending it to the server. The encryption\nkey never leaves your browser.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"features\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#features\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\"},this),\"Features\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Shareable Links:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:16,columnNumber:3},this),` Share your environment variables securely by sending a\nlink`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"End-to-End Encryption:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:18,columnNumber:3},this),` AES-GCM encryption is used to encrypt your data\nbefore sending it to the server`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Limit number of reads:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:20,columnNumber:3},this),\" Limit the number of times a link can be read\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Auto Expire:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:21,columnNumber:3},this),` Automatically expire links and delete data after a certain\ntime`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:21,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.img,{src:\"img/envshare.png\",alt:\"\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:26,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:26,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"built-with\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#built-with\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\"},this),\"Built with\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:28,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:(0,r.jsxDEV)(n.a,{href:\"https://nextjs.org\",children:\"Next.js\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:30,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:(0,r.jsxDEV)(n.a,{href:\"https://tailwindcss.com\",children:\"tailwindcss\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:31,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Deployed on \",(0,r.jsxDEV)(n.a,{href:\"https://vercel.com?utm_source=envshare\",children:\"Vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:32,columnNumber:15},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:32,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Data stored on \",(0,r.jsxDEV)(n.a,{href:\"https://upstash.com?utm_source=envshare\",children:\"Upstash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:33,columnNumber:18},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:33,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"deploy-your-own\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#deploy-your-own\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\"},this),\"Deploy your own\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"Detailed instructions can be found \",(0,r.jsxDEV)(n.a,{href:\"https://envshare.dev/deploy\",children:\"here\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:37,columnNumber:36},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:37,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:`All you need is a Redis database on Upstash and a Vercel account. Click the\nbutton below to clone and deploy:`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:39,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.a,{href:\"https://vercel.com/new/clone?demo-title=EnvShare&demo-description=Simple%20Next.js%20%2B%20Upstash%20app%20to%20share%20environment%20variables%20securely%20using%20AES-GCM%20encryption.&demo-url=https%3A%2F%2Fenvshare.dev%2F&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5SaFBHXp5FBFJbsTzVqIJ3%2Ff0f8382369b7642fd8103debb9025c11%2Fenvshare.png&project-name=EnvShare&repository-name=envshare&repository-url=https%3A%2F%2Fgithub.com%2Fchronark%2Fenvshare&from=templates&integration-ids=oac_V3R1GIpkoJorr6fqyiwdhl17\",children:(0,r.jsxDEV)(n.img,{src:\"https://vercel.com/button\",alt:\"Deploy with Vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:42,columnNumber:2},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:42,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:42,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"configuration\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#configuration\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\"},this),\"Configuration\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:46,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h3,{id:\"environment-variables\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#environment-variables\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\"},this),\"Environment Variables\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:48,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[(0,r.jsxDEV)(n.code,{children:\"ENABLE_VERCEL_ANALYTICS\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:50,columnNumber:1},this),\" Any truthy value will enable Vercel Analytics. This is turned off by default\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:50,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"contributing\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#contributing\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\"},this),\"Contributing\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:52,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"This repository uses \",(0,r.jsxDEV)(n.code,{children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:54,columnNumber:22},this),` to manage dependencies. Install it using\n`,(0,r.jsxDEV)(n.code,{children:\"npm install -g pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:55,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:54,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"Please run \",(0,r.jsxDEV)(n.code,{children:\"pnpm fmt\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:57,columnNumber:12},this),\" before committing to format the code.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:57,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"docs\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#docs\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\"},this),\"Docs\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:59,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"Docs in the README are temporary and will be moved to the website soon.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:61,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h3,{id:\"api\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#api\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\"},this),\"API\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:63,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h4,{id:\"store-a-secret\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#store-a-secret\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\"},this),\"Store a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:65,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.strong,{children:\"PLEASE NEVER EVER UPLOAD UNENCRYPTED SECRETS.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:67,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:67,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"This endpoint is only meant to store \",(0,r.jsxDEV)(n.strong,{children:\"already encrypted\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:69,columnNumber:38},this),` secrets. The\nencrypted secrets are stored in plain text.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:69,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:'$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:72,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"You can add optional headers to configure the ttl and number of reads.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:76,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:'$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\" -H \"envshare-ttl: 3600\" -H \"envshare-reads: 10\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:78,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:[\"Omitting the \",(0,r.jsxDEV)(n.code,{children:\"envshare-ttl\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:82,columnNumber:16},this),` header will set a default of 30 days. Disable the\nttl by setting it to 0. (`,(0,r.jsxDEV)(n.code,{children:\"envshare-ttl: 0\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:83,columnNumber:28},this),\")\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Omitting the \",(0,r.jsxDEV)(n.code,{children:\"envshare-reads\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:84,columnNumber:16},this),` header will simply disable it and allow reading\nfor an unlimited number of times.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:84,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"This endpoint returns a JSON response with the secret id:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:87,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"json\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"json\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"data\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"id\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:3,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:3,columnNumber:110},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"HdPbXgpvUvNk43oxSdK97u\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:3,columnNumber:148},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:3,columnNumber:218},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"ttl\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:4,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:4,columnNumber:111},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"86400\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:4,columnNumber:149},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:4,columnNumber:190},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:5,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"reads\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:5,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:5,columnNumber:113},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"2\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:5,columnNumber:151},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:5,columnNumber:188},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:6,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"expiresAt\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:6,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:6,columnNumber:117},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"2023-01-19T20:47:28.383Z\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:6,columnNumber:155},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:6,columnNumber:227},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:7,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"url\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:7,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:7,columnNumber:111},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"http://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:7,columnNumber:149},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:9,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:89,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h4,{id:\"retrieve-a-secret\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#retrieve-a-secret\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\"},this),\"Retrieve a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:101,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"You need an id to retrieve a secret. The id is returned when you store a secret.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:103,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:\"$ curl -s https://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:105,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"json\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"json\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"data\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"secret\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:3,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:3,columnNumber:114},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"Hello\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:3,columnNumber:152},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:3,columnNumber:205},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"remainingReads\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:4,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:4,columnNumber:122},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:4,columnNumber:160},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:5,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:6,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:109,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\",lineNumber:1,columnNumber:1},this)}function Nn(d={}){let{wrapper:n}=d.components||{};return n?(0,r.jsxDEV)(n,Object.assign({},d,{children:(0,r.jsxDEV)(Re,d,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e60f083b-8713-4cbb-ab1f-ac6e28979042.mdx\"},this):Re(d)}var kn=Nn;return _n(xn);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/envshare.mdx", - "_raw": { - "sourceFilePath": "projects/envshare.mdx", - "sourceFileName": "envshare.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/envshare" - }, - "type": "Project", - "path": "/projects/envshare", - "slug": "envshare" - }, - "documentHash": "1677516594972", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-auth-analytics.mdx": { - "document": { - "title": "Upstash Auth Analytics", - "description": "A library to record and analyse Auth.js user behaviour", - "url": "https://console.upstash.com/ratelimit", - "repository": "upstash/auth-analytics", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var A=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var fr=Object.getOwnPropertyNames;var lr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,c)=>()=>(c||s((c={exports:{}}).exports,c),c.exports),vr=(s,c)=>{for(var h in c)A(s,h,{get:c[h],enumerable:!0})},_e=(s,c,h,E)=>{if(c&&typeof c==\"object\"||typeof c==\"function\")for(let m of fr(c))!dr.call(s,m)&&m!==h&&A(s,m,{get:()=>c[m],enumerable:!(E=cr(c,m))||E.enumerable});return s};var pr=(s,c,h)=>(h=s!=null?sr(lr(s)):{},_e(c||!s||!s.__esModule?A(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(A({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),c=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&l>=0&&a[f]!==v[l];)l--;for(;f>=1&&l>=0;f--,l--)if(a[f]!==v[l]){if(f!==1||l!==1)do if(f--,l--,l<0||a[f]!==v[l]){var p=`\n`+a[f].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(f>=1&&l>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,ce={},fe=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){a=f}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return le(e),!1}catch{return!0}}function le(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),le(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=b(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',b(O.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:c,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var f=e.defaultProps;for(u in f)o[u]===void 0&&(o[u]=f[u])}if(a||v){var l=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,l),v&&Qe(o,l)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===c}function be(){{if(L.current){var e=b(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=be();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+b(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):f=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",f,a)}var l=rr(e,r,t,i,u);if(l==null)return l;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>br});var F=pr(we()),br={title:\"Upstash Auth Analytics\",description:\"A library to record and analyse Auth.js user behaviour\",url:\"https://console.upstash.com/ratelimit\",repository:\"upstash/auth-analytics\"};function Pe(s){let c=Object.assign({p:\"p\"},s.components);return(0,F.jsxDEV)(c.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5fea4dd-b667-4eb9-83ec-c6663cd1af20.mdx\",lineNumber:9,columnNumber:1},this)}function gr(s={}){let{wrapper:c}=s.components||{};return c?(0,F.jsxDEV)(c,Object.assign({},s,{children:(0,F.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5fea4dd-b667-4eb9-83ec-c6663cd1af20.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5fea4dd-b667-4eb9-83ec-c6663cd1af20.mdx\"},this):Pe(s)}var mr=gr;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-auth-analytics.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-auth-analytics.mdx", - "sourceFileName": "upstash-auth-analytics.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-auth-analytics" - }, - "type": "Project", - "path": "/projects/upstash-auth-analytics", - "slug": "upstash-auth-analytics" - }, - "documentHash": "1677516995292", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-core-analytics.mdx": { - "document": { - "title": "Upstash Core Analytics", - "description": "Low level utilities to build analytics tools on top of Redis.", - "date": "2023-02-13T00:00:00.000Z", - "url": "https://console.upstash.com/ratelimit", - "repository": "upstash/core-analytics", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var fr=Object.getOwnPropertyDescriptor;var lr=Object.getOwnPropertyNames;var cr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,f)=>()=>(f||s((f={exports:{}}).exports,f),f.exports),vr=(s,f)=>{for(var h in f)F(s,h,{get:f[h],enumerable:!0})},_e=(s,f,h,E)=>{if(f&&typeof f==\"object\"||typeof f==\"function\")for(let m of lr(f))!dr.call(s,m)&&m!==h&&F(s,m,{get:()=>f[m],enumerable:!(E=fr(f,m))||E.enumerable});return s};var pr=(s,f,h)=>(h=s!=null?sr(cr(s)):{},_e(f||!s||!s.__esModule?F(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),f=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&c>=0&&a[l]!==v[c];)c--;for(;l>=1&&c>=0;l--,c--)if(a[l]!==v[c]){if(l!==1||c!==1)do if(l--,c--,c<0||a[l]!==v[c]){var p=`\n`+a[l].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(l>=1&&c>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,fe={},le=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);le.setExtraStackFrame(t)}else le.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(l){a=l}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in fe)&&(fe[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return ce(e),!1}catch{return!0}}function ce(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),ce(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=b(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',b(O.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:f,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var l=e.defaultProps;for(u in l)o[u]===void 0&&(o[u]=l[u])}if(a||v){var c=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,c),v&&Qe(o,c)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===f}function be(){{if(L.current){var e=b(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=be();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+b(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):l=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",l,a)}var c=rr(e,r,t,i,u);if(c==null)return c;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>br});var A=pr(we()),br={title:\"Upstash Core Analytics\",description:\"Low level utilities to build analytics tools on top of Redis.\",date:\"2023-02-13\",url:\"https://console.upstash.com/ratelimit\",repository:\"upstash/core-analytics\"};function Pe(s){let f=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(f.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-3d7b3ae1-e5fe-40f2-9a63-840e6e90ff56.mdx\",lineNumber:10,columnNumber:1},this)}function gr(s={}){let{wrapper:f}=s.components||{};return f?(0,A.jsxDEV)(f,Object.assign({},s,{children:(0,A.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-3d7b3ae1-e5fe-40f2-9a63-840e6e90ff56.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-3d7b3ae1-e5fe-40f2-9a63-840e6e90ff56.mdx\"},this):Pe(s)}var mr=gr;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-core-analytics.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-core-analytics.mdx", - "sourceFileName": "upstash-core-analytics.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-core-analytics" - }, - "type": "Project", - "path": "/projects/upstash-core-analytics", - "slug": "upstash-core-analytics" - }, - "documentHash": "1677516952361", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-qstash-sdk.mdx": { - "document": { - "title": "QStash SDK", - "description": "A typescript client and consumer for QStash.", - "date": "2023-07-18T00:00:00.000Z", - "url": "https://upstash.com/qstash", - "repository": "upstash/sdk-qstash-ts", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var fr=Object.getOwnPropertyNames;var lr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var G=(s,c)=>()=>(c||s((c={exports:{}}).exports,c),c.exports),vr=(s,c)=>{for(var h in c)F(s,h,{get:c[h],enumerable:!0})},_e=(s,c,h,E)=>{if(c&&typeof c==\"object\"||typeof c==\"function\")for(let m of fr(c))!dr.call(s,m)&&m!==h&&F(s,m,{get:()=>c[m],enumerable:!(E=cr(c,m))||E.enumerable});return s};var pr=(s,c,h)=>(h=s!=null?sr(lr(s)):{},_e(c||!s||!s.__esModule?F(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=G((_r,Re)=>{Re.exports=React});var Ce=G(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),c=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),K=Symbol.for(\"react.profiler\"),X=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),S=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),w=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Pe=Symbol.for(\"react.offscreen\"),Q=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=Q&&e[Q]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&l>=0&&a[f]!==v[l];)l--;for(;f>=1&&l>=0;f--,l--)if(a[f]!==v[l]){if(f!==1||l!==1)do if(f--,l--,l<0||a[f]!==v[l]){var p=`\n`+a[f].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(f>=1&&l>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?P(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return P(e);switch(e){case I:return P(\"Suspense\");case Y:return P(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case S:return Ue(e.render);case w:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,ce={},fe=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){a=f}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var qe=Array.isArray;function V(e){return qe(e)}function Ge(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return le(e),!1}catch{return!0}}function le(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Ge(e)),le(e)}var O=_.ReactCurrentOwner,Ke={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Xe(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Qe(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=b(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',b(O.current.type),e.ref),U[t]=!0)}}function Je(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Ze(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:c,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Xe(r)&&(v=r.ref,Qe(r,i));for(u in r)k.call(r,u)&&!Ke.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var f=e.defaultProps;for(u in f)o[u]===void 0&&(o[u]=f[u])}if(a||v){var l=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Je(o,l),v&&Ze(o,l)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var B;B=!1;function q(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===c}function be(){{if(L.current){var e=b(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=be();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+b(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):f=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",f,a)}var l=rr(e,r,t,i,u);if(l==null)return l;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>br});var A=pr(Se()),br={title:\"QStash SDK\",description:\"A typescript client and consumer for QStash.\",date:\"2023-07-18\",url:\"https://upstash.com/qstash\",repository:\"upstash/sdk-qstash-ts\"};function we(s){let c=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(c.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-c1b0b61a-d9ef-41c5-9092-66bca58c6ca9.mdx\",lineNumber:9,columnNumber:1},this)}function gr(s={}){let{wrapper:c}=s.components||{};return c?(0,A.jsxDEV)(c,Object.assign({},s,{children:(0,A.jsxDEV)(we,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-c1b0b61a-d9ef-41c5-9092-66bca58c6ca9.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-c1b0b61a-d9ef-41c5-9092-66bca58c6ca9.mdx\"},this):we(s)}var mr=gr;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-qstash-sdk.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-qstash-sdk.mdx", - "sourceFileName": "upstash-qstash-sdk.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-qstash-sdk" - }, - "type": "Project", - "path": "/projects/upstash-qstash-sdk", - "slug": "upstash-qstash-sdk" - }, - "documentHash": "1677516964793", - "hasWarnings": false, - "documentTypeName": "Project" - } - } -} diff --git a/.contentlayer/.cache/v0.3.0/data-5GE3IMM2.json b/.contentlayer/.cache/v0.3.0/data-5GE3IMM2.json deleted file mode 100644 index c29e948..0000000 --- a/.contentlayer/.cache/v0.3.0/data-5GE3IMM2.json +++ /dev/null @@ -1,214 +0,0 @@ -{ - "cacheItemsMap": { - "projects/envshare.mdx": { - "document": { - "title": "envshare.dev", - "description": "EnvShare is a simple tool to share environment variables securely. It uses AES-GCM to encrypt your data before sending it to the server. The encryption key never leaves your browser.", - "date": "2023-01-16T00:00:00.000Z", - "url": "https://envshare.dev", - "repository": "chronark/envshare", - "body": { - "raw": "\nEnvShare is a simple tool to share environment variables securely. It uses\n**AES-GCM** to encrypt your data before sending it to the server. The encryption\nkey never leaves your browser.\n\n## Features\n\n- **Shareable Links:** Share your environment variables securely by sending a\n link\n- **End-to-End Encryption:** AES-GCM encryption is used to encrypt your data\n before sending it to the server\n- **Limit number of reads:** Limit the number of times a link can be read\n- **Auto Expire:** Automatically expire links and delete data after a certain\n time\n\n\n\n![](img/envshare.png)\n\n## Built with\n\n- [Next.js](https://nextjs.org)\n- [tailwindcss](https://tailwindcss.com)\n- Deployed on [Vercel](https://vercel.com?utm_source=envshare)\n- Data stored on [Upstash](https://upstash.com?utm_source=envshare)\n\n## Deploy your own\n\nDetailed instructions can be found [here](https://envshare.dev/deploy)\n\nAll you need is a Redis database on Upstash and a Vercel account. Click the\nbutton below to clone and deploy:\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?demo-title=EnvShare&demo-description=Simple%20Next.js%20%2B%20Upstash%20app%20to%20share%20environment%20variables%20securely%20using%20AES-GCM%20encryption.&demo-url=https%3A%2F%2Fenvshare.dev%2F&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5SaFBHXp5FBFJbsTzVqIJ3%2Ff0f8382369b7642fd8103debb9025c11%2Fenvshare.png&project-name=EnvShare&repository-name=envshare&repository-url=https%3A%2F%2Fgithub.com%2Fchronark%2Fenvshare&from=templates&integration-ids=oac_V3R1GIpkoJorr6fqyiwdhl17)\n\n\n\n## Configuration\n\n### Environment Variables\n\n`ENABLE_VERCEL_ANALYTICS` Any truthy value will enable Vercel Analytics. This is turned off by default\n\n## Contributing\n\nThis repository uses `pnpm` to manage dependencies. Install it using\n`npm install -g pnpm`\n\nPlease run `pnpm fmt` before committing to format the code.\n\n## Docs\n\nDocs in the README are temporary and will be moved to the website soon.\n\n### API\n\n#### Store a secret\n\n**PLEASE NEVER EVER UPLOAD UNENCRYPTED SECRETS.**\n\nThis endpoint is only meant to store **already encrypted** secrets. The\nencrypted secrets are stored in plain text.\n\n```sh-session\n$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\"\n```\n\nYou can add optional headers to configure the ttl and number of reads.\n\n```sh-session\n$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\" -H \"envshare-ttl: 3600\" -H \"envshare-reads: 10\"\n```\n\n- Omitting the `envshare-ttl` header will set a default of 30 days. Disable the\n ttl by setting it to 0. (`envshare-ttl: 0`)\n- Omitting the `envshare-reads` header will simply disable it and allow reading\n for an unlimited number of times.\n\nThis endpoint returns a JSON response with the secret id:\n\n```json\n{\n \"data\": {\n \"id\": \"HdPbXgpvUvNk43oxSdK97u\",\n \"ttl\": 86400,\n \"reads\": 2,\n \"expiresAt\": \"2023-01-19T20:47:28.383Z\",\n \"url\": \"http://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"\n }\n}\n```\n\n#### Retrieve a secret\n\nYou need an id to retrieve a secret. The id is returned when you store a secret.\n\n```sh-session\n$ curl -s https://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\n```\n\n```json\n{\n \"data\": {\n \"secret\": \"Hello\",\n \"remainingReads\": 1\n }\n}\n```", - "code": "var Component=(()=>{var dn=Object.create;var O=Object.defineProperty;var ln=Object.getOwnPropertyDescriptor;var un=Object.getOwnPropertyNames;var mn=Object.getPrototypeOf,hn=Object.prototype.hasOwnProperty;var X=(l,n)=>()=>(n||l((n={exports:{}}).exports,n),n.exports),fn=(l,n)=>{for(var _ in n)O(l,_,{get:n[_],enumerable:!0})},ye=(l,n,_,x)=>{if(n&&typeof n==\"object\"||typeof n==\"function\")for(let k of un(n))!hn.call(l,k)&&k!==_&&O(l,k,{get:()=>n[k],enumerable:!(x=ln(n,k))||x.enumerable});return l};var bn=(l,n,_)=>(_=l!=null?dn(mn(l)):{},ye(n||!l||!l.__esModule?O(_,\"default\",{value:l,enumerable:!0}):_,l)),_n=l=>ye(O({},\"__esModule\",{value:!0}),l);var ve=X((gn,ge)=>{ge.exports=React});var Ee=X(H=>{\"use strict\";(function(){\"use strict\";var l=ve(),n=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),x=Symbol.for(\"react.fragment\"),k=Symbol.for(\"react.strict_mode\"),q=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),z=Symbol.for(\"react.context\"),R=Symbol.for(\"react.forward_ref\"),A=Symbol.for(\"react.suspense\"),D=Symbol.for(\"react.suspense_list\"),F=Symbol.for(\"react.memo\"),L=Symbol.for(\"react.lazy\"),Fe=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Te=\"@@iterator\";function we(e){if(e===null||typeof e!=\"object\")return null;var t=J&&e[J]||e[Te];return typeof t==\"function\"?t:null}var g=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function h(e){{for(var t=arguments.length,a=new Array(t>1?t-1:0),o=1;o=1&&m>=0&&s[u]!==f[m];)m--;for(;u>=1&&m>=0;u--,m--)if(s[u]!==f[m]){if(u!==1||m!==1)do if(u--,m--,m<0||s[u]!==f[m]){var b=`\n`+s[u].replace(\" at new \",\" at \");return e.displayName&&b.includes(\"\")&&(b=b.replace(\"\",e.displayName)),typeof e==\"function\"&&w.set(e,b),b}while(u>=1&&m>=0);break}}}finally{V=!1,I.current=d,Ve(),Error.prepareStackTrace=i}var E=e?e.displayName||e.name:\"\",xe=E?T(E):\"\";return typeof e==\"function\"&&w.set(e,xe),xe}function $e(e,t,a){return ie(e,!1)}function Me(e){var t=e.prototype;return!!(t&&t.isReactComponent)}function S(e,t,a){if(e==null)return\"\";if(typeof e==\"function\")return ie(e,Me(e));if(typeof e==\"string\")return T(e);switch(e){case A:return T(\"Suspense\");case D:return T(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case R:return $e(e.render);case F:return S(e.type,t,a);case L:{var o=e,i=o._payload,d=o._init;try{return S(d(i),t,a)}catch{}}}return\"\"}var C=Object.prototype.hasOwnProperty,de={},le=g.ReactDebugCurrentFrame;function P(e){if(e){var t=e._owner,a=S(e.type,e._source,t?t.type:null);le.setExtraStackFrame(a)}else le.setExtraStackFrame(null)}function We(e,t,a,o,i){{var d=Function.call.bind(C);for(var c in e)if(d(e,c)){var s=void 0;try{if(typeof e[c]!=\"function\"){var f=Error((o||\"React class\")+\": \"+a+\" type `\"+c+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[c]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw f.name=\"Invariant Violation\",f}s=e[c](t,c,o,a,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(u){s=u}s&&!(s instanceof Error)&&(P(i),h(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",o||\"React class\",a,c,typeof s),P(null)),s instanceof Error&&!(s.message in de)&&(de[s.message]=!0,P(i),h(\"Failed %s type: %s\",a,s.message),P(null))}}}var Ge=Array.isArray;function Y(e){return Ge(e)}function Xe(e){{var t=typeof Symbol==\"function\"&&Symbol.toStringTag,a=t&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return a}}function He(e){try{return ue(e),!1}catch{return!0}}function ue(e){return\"\"+e}function me(e){if(He(e))return h(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Xe(e)),ue(e)}var U=g.ReactCurrentOwner,qe={key:!0,ref:!0,__self:!0,__source:!0},he,fe,$;$={};function Ke(e){if(C.call(e,\"ref\")){var t=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(t&&t.isReactWarning)return!1}return e.ref!==void 0}function ze(e){if(C.call(e,\"key\")){var t=Object.getOwnPropertyDescriptor(e,\"key\").get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function Je(e,t){if(typeof e.ref==\"string\"&&U.current&&t&&U.current.stateNode!==t){var a=p(U.current.type);$[a]||(h('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(U.current.type),e.ref),$[a]=!0)}}function Ze(e,t){{var a=function(){he||(he=!0,h(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",t))};a.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:a,configurable:!0})}}function Qe(e,t){{var a=function(){fe||(fe=!0,h(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",t))};a.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:a,configurable:!0})}}var en=function(e,t,a,o,i,d,c){var s={$$typeof:n,type:e,key:t,ref:a,props:c,_owner:d};return s._store={},Object.defineProperty(s._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(s,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(s,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(s.props),Object.freeze(s)),s};function nn(e,t,a,o,i){{var d,c={},s=null,f=null;a!==void 0&&(me(a),s=\"\"+a),ze(t)&&(me(t.key),s=\"\"+t.key),Ke(t)&&(f=t.ref,Je(t,i));for(d in t)C.call(t,d)&&!qe.hasOwnProperty(d)&&(c[d]=t[d]);if(e&&e.defaultProps){var u=e.defaultProps;for(d in u)c[d]===void 0&&(c[d]=u[d])}if(s||f){var m=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;s&&Ze(c,m),f&&Qe(c,m)}return en(e,s,f,i,o,U.current,c)}}var M=g.ReactCurrentOwner,be=g.ReactDebugCurrentFrame;function v(e){if(e){var t=e._owner,a=S(e.type,e._source,t?t.type:null);be.setExtraStackFrame(a)}else be.setExtraStackFrame(null)}var W;W=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===n}function _e(){{if(M.current){var e=p(M.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function rn(e){{if(e!==void 0){var t=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),a=e.lineNumber;return`\n\nCheck your code at `+t+\":\"+a+\".\"}return\"\"}}var pe={};function tn(e){{var t=_e();if(!t){var a=typeof e==\"string\"?e:e.displayName||e.name;a&&(t=`\n\nCheck the top-level render call using <`+a+\">.\")}return t}}function Ne(e,t){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var a=tn(t);if(pe[a])return;pe[a]=!0;var o=\"\";e&&e._owner&&e._owner!==M.current&&(o=\" It was passed a child from \"+p(e._owner.type)+\".\"),v(e),h('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',a,o),v(null)}}function ke(e,t){{if(typeof e!=\"object\")return;if(Y(e))for(var a=0;a\",s=\" Did you accidentally export a JSX literal instead of a component?\"):u=typeof e,h(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",u,s)}var m=nn(e,t,a,i,d);if(m==null)return m;if(c){var b=t.children;if(b!==void 0)if(o)if(Y(b)){for(var E=0;E{\"use strict\";je.exports=Ee()});var xn={};fn(xn,{default:()=>kn,frontmatter:()=>pn});var r=bn(Ue()),pn={title:\"envshare.dev\",description:\"EnvShare is a simple tool to share environment variables securely. It uses AES-GCM to encrypt your data before sending it to the server. The encryption key never leaves your browser.\",date:\"2023-01-16\",url:\"https://envshare.dev\",repository:\"chronark/envshare\"};function Re(l){let n=Object.assign({p:\"p\",strong:\"strong\",h2:\"h2\",a:\"a\",span:\"span\",ul:\"ul\",li:\"li\",img:\"img\",h3:\"h3\",code:\"code\",h4:\"h4\",div:\"div\",pre:\"pre\"},l.components);return(0,r.jsxDEV)(r.Fragment,{children:[(0,r.jsxDEV)(n.p,{children:[`EnvShare is a simple tool to share environment variables securely. It uses\n`,(0,r.jsxDEV)(n.strong,{children:\"AES-GCM\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:11,columnNumber:1},this),` to encrypt your data before sending it to the server. The encryption\nkey never leaves your browser.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"features\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#features\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\"},this),\"Features\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Shareable Links:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:16,columnNumber:3},this),` Share your environment variables securely by sending a\nlink`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"End-to-End Encryption:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:18,columnNumber:3},this),` AES-GCM encryption is used to encrypt your data\nbefore sending it to the server`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Limit number of reads:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:20,columnNumber:3},this),\" Limit the number of times a link can be read\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Auto Expire:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:21,columnNumber:3},this),` Automatically expire links and delete data after a certain\ntime`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:21,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.img,{src:\"img/envshare.png\",alt:\"\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:26,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:26,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"built-with\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#built-with\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\"},this),\"Built with\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:28,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:(0,r.jsxDEV)(n.a,{href:\"https://nextjs.org\",children:\"Next.js\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:30,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:(0,r.jsxDEV)(n.a,{href:\"https://tailwindcss.com\",children:\"tailwindcss\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:31,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Deployed on \",(0,r.jsxDEV)(n.a,{href:\"https://vercel.com?utm_source=envshare\",children:\"Vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:32,columnNumber:15},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:32,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Data stored on \",(0,r.jsxDEV)(n.a,{href:\"https://upstash.com?utm_source=envshare\",children:\"Upstash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:33,columnNumber:18},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:33,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"deploy-your-own\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#deploy-your-own\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\"},this),\"Deploy your own\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"Detailed instructions can be found \",(0,r.jsxDEV)(n.a,{href:\"https://envshare.dev/deploy\",children:\"here\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:37,columnNumber:36},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:37,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:`All you need is a Redis database on Upstash and a Vercel account. Click the\nbutton below to clone and deploy:`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:39,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.a,{href:\"https://vercel.com/new/clone?demo-title=EnvShare&demo-description=Simple%20Next.js%20%2B%20Upstash%20app%20to%20share%20environment%20variables%20securely%20using%20AES-GCM%20encryption.&demo-url=https%3A%2F%2Fenvshare.dev%2F&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5SaFBHXp5FBFJbsTzVqIJ3%2Ff0f8382369b7642fd8103debb9025c11%2Fenvshare.png&project-name=EnvShare&repository-name=envshare&repository-url=https%3A%2F%2Fgithub.com%2Fchronark%2Fenvshare&from=templates&integration-ids=oac_V3R1GIpkoJorr6fqyiwdhl17\",children:(0,r.jsxDEV)(n.img,{src:\"https://vercel.com/button\",alt:\"Deploy with Vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:42,columnNumber:2},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:42,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:42,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"configuration\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#configuration\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\"},this),\"Configuration\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:46,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h3,{id:\"environment-variables\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#environment-variables\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\"},this),\"Environment Variables\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:48,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[(0,r.jsxDEV)(n.code,{children:\"ENABLE_VERCEL_ANALYTICS\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:50,columnNumber:1},this),\" Any truthy value will enable Vercel Analytics. This is turned off by default\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:50,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"contributing\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#contributing\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\"},this),\"Contributing\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:52,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"This repository uses \",(0,r.jsxDEV)(n.code,{children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:54,columnNumber:22},this),` to manage dependencies. Install it using\n`,(0,r.jsxDEV)(n.code,{children:\"npm install -g pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:55,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:54,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"Please run \",(0,r.jsxDEV)(n.code,{children:\"pnpm fmt\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:57,columnNumber:12},this),\" before committing to format the code.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:57,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"docs\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#docs\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\"},this),\"Docs\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:59,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"Docs in the README are temporary and will be moved to the website soon.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:61,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h3,{id:\"api\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#api\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\"},this),\"API\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:63,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h4,{id:\"store-a-secret\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#store-a-secret\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\"},this),\"Store a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:65,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.strong,{children:\"PLEASE NEVER EVER UPLOAD UNENCRYPTED SECRETS.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:67,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:67,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"This endpoint is only meant to store \",(0,r.jsxDEV)(n.strong,{children:\"already encrypted\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:69,columnNumber:38},this),` secrets. The\nencrypted secrets are stored in plain text.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:69,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:'$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:72,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"You can add optional headers to configure the ttl and number of reads.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:76,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:'$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\" -H \"envshare-ttl: 3600\" -H \"envshare-reads: 10\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:78,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:[\"Omitting the \",(0,r.jsxDEV)(n.code,{children:\"envshare-ttl\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:82,columnNumber:16},this),` header will set a default of 30 days. Disable the\nttl by setting it to 0. (`,(0,r.jsxDEV)(n.code,{children:\"envshare-ttl: 0\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:83,columnNumber:28},this),\")\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Omitting the \",(0,r.jsxDEV)(n.code,{children:\"envshare-reads\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:84,columnNumber:16},this),` header will simply disable it and allow reading\nfor an unlimited number of times.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:84,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"This endpoint returns a JSON response with the secret id:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:87,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"json\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"json\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"data\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"id\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:3,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:3,columnNumber:110},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"HdPbXgpvUvNk43oxSdK97u\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:3,columnNumber:148},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:3,columnNumber:218},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"ttl\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:4,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:4,columnNumber:111},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"86400\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:4,columnNumber:149},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:4,columnNumber:190},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:5,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"reads\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:5,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:5,columnNumber:113},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"2\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:5,columnNumber:151},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:5,columnNumber:188},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:6,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"expiresAt\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:6,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:6,columnNumber:117},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"2023-01-19T20:47:28.383Z\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:6,columnNumber:155},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:6,columnNumber:227},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:7,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"url\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:7,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:7,columnNumber:111},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"http://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:7,columnNumber:149},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:9,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:89,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h4,{id:\"retrieve-a-secret\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#retrieve-a-secret\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\"},this),\"Retrieve a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:101,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"You need an id to retrieve a secret. The id is returned when you store a secret.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:103,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:\"$ curl -s https://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:105,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"json\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"json\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"data\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"secret\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:3,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:3,columnNumber:114},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"Hello\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:3,columnNumber:152},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:3,columnNumber:205},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"remainingReads\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:4,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:4,columnNumber:122},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:4,columnNumber:160},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:5,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:6,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:109,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\",lineNumber:1,columnNumber:1},this)}function Nn(l={}){let{wrapper:n}=l.components||{};return n?(0,r.jsxDEV)(n,Object.assign({},l,{children:(0,r.jsxDEV)(Re,l,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d8b6004-300f-4268-8636-55e53fc1a186.mdx\"},this):Re(l)}var kn=Nn;return _n(xn);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/envshare.mdx", - "_raw": { - "sourceFilePath": "projects/envshare.mdx", - "sourceFileName": "envshare.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/envshare" - }, - "type": "Project", - "path": "/projects/envshare", - "slug": "envshare" - }, - "documentHash": "1677516594972", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/planetfall.mdx": { - "document": { - "title": "Planetfall", - "description": "I'm building a SAAS, that provides global latency monitoring for your APIs and websites from edge locations around the world. Have you ever wondered how fast your API is in any part of the world? Planetfall allows you to find out and monitor it continuously.", - "date": "2023-04-01T00:00:00.000Z", - "url": "https://planetfall.io", - "body": { - "raw": "TODO:", - "code": "var Component=(()=>{var sr=Object.create;var A=Object.defineProperty;var lr=Object.getOwnPropertyDescriptor;var fr=Object.getOwnPropertyNames;var cr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,l)=>()=>(l||s((l={exports:{}}).exports,l),l.exports),vr=(s,l)=>{for(var h in l)A(s,h,{get:l[h],enumerable:!0})},_e=(s,l,h,E)=>{if(l&&typeof l==\"object\"||typeof l==\"function\")for(let m of fr(l))!dr.call(s,m)&&m!==h&&A(s,m,{get:()=>l[m],enumerable:!(E=lr(l,m))||E.enumerable});return s};var pr=(s,l,h)=>(h=s!=null?sr(cr(s)):{},_e(l||!s||!s.__esModule?A(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(A({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var we=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),l=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),H=Symbol.for(\"react.provider\"),K=Symbol.for(\"react.context\"),O=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&c>=0&&a[f]!==v[c];)c--;for(;f>=1&&c>=0;f--,c--)if(a[f]!==v[c]){if(f!==1||c!==1)do if(f--,c--,c<0||a[f]!==v[c]){var p=`\n`+a[f].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(f>=1&&c>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case O:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,le={},fe=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){a=f}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in le)&&(le[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return ce(e),!1}catch{return!0}}function ce(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),ce(e)}var C=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function He(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function Ke(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&C.current&&r&&C.current.stateNode!==r){var t=b(C.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',b(C.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:l,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),Ke(r)&&(de(r.key),a=\"\"+r.key),He(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var f=e.defaultProps;for(u in f)o[u]===void 0&&(o[u]=f[u])}if(a||v){var c=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,c),v&&Qe(o,c)}return er(e,a,v,i,n,C.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===l}function be(){{if(L.current){var e=b(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=be();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+b(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):f=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",f,a)}var c=rr(e,r,t,i,u);if(c==null)return c;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Ce.exports=we()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>br});var F=pr(Oe()),br={title:\"Planetfall\",description:\"I'm building a SAAS, that provides global latency monitoring for your APIs and websites from edge locations around the world. Have you ever wondered how fast your API is in any part of the world? Planetfall allows you to find out and monitor it continuously.\",date:\"2023-04-01\",url:\"https://planetfall.io\"};function Pe(s){let l=Object.assign({p:\"p\"},s.components);return(0,F.jsxDEV)(l.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-792f0837-d748-4a48-8231-7361b6cfa05f.mdx\",lineNumber:8,columnNumber:1},this)}function gr(s={}){let{wrapper:l}=s.components||{};return l?(0,F.jsxDEV)(l,Object.assign({},s,{children:(0,F.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-792f0837-d748-4a48-8231-7361b6cfa05f.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-792f0837-d748-4a48-8231-7361b6cfa05f.mdx\"},this):Pe(s)}var mr=gr;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/planetfall.mdx", - "_raw": { - "sourceFilePath": "projects/planetfall.mdx", - "sourceFileName": "planetfall.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/planetfall" - }, - "type": "Project", - "path": "/projects/planetfall", - "slug": "planetfall" - }, - "documentHash": "1677517105919", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/qstash.mdx": { - "document": { - "title": "QStash", - "description": "QStash is a fully managed serverless queue and messaging service designed for the serverless era.", - "date": "2023-07-18T00:00:00.000Z", - "url": "https://upstash.com/qstash", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var fr=Object.getOwnPropertyNames;var lr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var G=(s,c)=>()=>(c||s((c={exports:{}}).exports,c),c.exports),vr=(s,c)=>{for(var h in c)F(s,h,{get:c[h],enumerable:!0})},_e=(s,c,h,E)=>{if(c&&typeof c==\"object\"||typeof c==\"function\")for(let m of fr(c))!dr.call(s,m)&&m!==h&&F(s,m,{get:()=>c[m],enumerable:!(E=cr(c,m))||E.enumerable});return s};var pr=(s,c,h)=>(h=s!=null?sr(lr(s)):{},_e(c||!s||!s.__esModule?F(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=G((_r,Re)=>{Re.exports=React});var Ce=G(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),c=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),Q=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=Q&&e[Q]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&l>=0&&a[f]!==v[l];)l--;for(;f>=1&&l>=0;f--,l--)if(a[f]!==v[l]){if(f!==1||l!==1)do if(f--,l--,l<0||a[f]!==v[l]){var p=`\n`+a[f].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(f>=1&&l>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,ce={},fe=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){a=f}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var qe=Array.isArray;function V(e){return qe(e)}function Ge(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return le(e),!1}catch{return!0}}function le(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Ge(e)),le(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Qe(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=g(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',g(O.current.type),e.ref),U[t]=!0)}}function Je(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Ze(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:c,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Qe(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var f=e.defaultProps;for(u in f)o[u]===void 0&&(o[u]=f[u])}if(a||v){var l=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Je(o,l),v&&Ze(o,l)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var B;B=!1;function q(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===c}function ge(){{if(L.current){var e=g(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var be={};function nr(e){{var r=ge();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(be[t])return;be[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+g(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):f=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",f,a)}var l=rr(e,r,t,i,u);if(l==null)return l;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>gr});var A=pr(we()),gr={title:\"QStash\",description:\"QStash is a fully managed serverless queue and messaging service designed for the serverless era.\",date:\"2023-07-18\",url:\"https://upstash.com/qstash\"};function Pe(s){let c=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(c.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-c42107c1-8221-4fa8-a7e9-fec133ed79b8.mdx\",lineNumber:9,columnNumber:1},this)}function br(s={}){let{wrapper:c}=s.components||{};return c?(0,A.jsxDEV)(c,Object.assign({},s,{children:(0,A.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-c42107c1-8221-4fa8-a7e9-fec133ed79b8.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-c42107c1-8221-4fa8-a7e9-fec133ed79b8.mdx\"},this):Pe(s)}var mr=br;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/qstash.mdx", - "_raw": { - "sourceFilePath": "projects/qstash.mdx", - "sourceFileName": "qstash.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/qstash" - }, - "type": "Project", - "path": "/projects/qstash", - "slug": "qstash" - }, - "documentHash": "1677516902361", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/redis-query.mdx": { - "document": { - "title": "Redis Query", - "description": "Client side secondary indexing for Redis. It allows you to query your Redis data efficiently. Inspired by FaunaDB indices.", - "repository": "chronark/redis-query", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var fr=Object.getOwnPropertyDescriptor;var lr=Object.getOwnPropertyNames;var cr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var G=(s,f)=>()=>(f||s((f={exports:{}}).exports,f),f.exports),vr=(s,f)=>{for(var b in f)F(s,b,{get:f[b],enumerable:!0})},_e=(s,f,b,y)=>{if(f&&typeof f==\"object\"||typeof f==\"function\")for(let m of lr(f))!dr.call(s,m)&&m!==b&&F(s,m,{get:()=>f[m],enumerable:!(y=fr(f,m))||y.enumerable});return s};var pr=(s,f,b)=>(b=s!=null?sr(cr(s)):{},_e(f||!s||!s.__esModule?F(b,\"default\",{value:s,enumerable:!0}):b,s)),br=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=G((_r,Re)=>{Re.exports=React});var Ce=G(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),f=Symbol.for(\"react.element\"),b=Symbol.for(\"react.portal\"),y=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&c>=0&&a[l]!==v[c];)c--;for(;l>=1&&c>=0;l--,c--)if(a[l]!==v[c]){if(l!==1||c!==1)do if(l--,c--,c<0||a[l]!==v[c]){var p=`\n`+a[l].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(l>=1&&c>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",Ee=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,Ee),Ee}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,fe={},le=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);le.setExtraStackFrame(t)}else le.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(l){a=l}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in fe)&&(fe[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var qe=Array.isArray;function V(e){return qe(e)}function Ge(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return ce(e),!1}catch{return!0}}function ce(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Ge(e)),ce(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=h(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',h(O.current.type),e.ref),U[t]=!0)}}function Qe(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Ze(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:f,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var l=e.defaultProps;for(u in l)o[u]===void 0&&(o[u]=l[u])}if(a||v){var c=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Qe(o,c),v&&Ze(o,c)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,be=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var B;B=!1;function q(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===f}function he(){{if(L.current){var e=h(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=he();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+h(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function ye(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):l=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",l,a)}var c=rr(e,r,t,i,u);if(c==null)return c;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var yr={};vr(yr,{default:()=>mr,frontmatter:()=>hr});var A=pr(we()),hr={title:\"Redis Query\",description:\"Client side secondary indexing for Redis. It allows you to query your Redis data efficiently. Inspired by FaunaDB indices.\",repository:\"chronark/redis-query\"};function Pe(s){let f=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(f.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f8f727e1-2183-4893-9a2a-14ab3e996afe.mdx\",lineNumber:8,columnNumber:1},this)}function gr(s={}){let{wrapper:f}=s.components||{};return f?(0,A.jsxDEV)(f,Object.assign({},s,{children:(0,A.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f8f727e1-2183-4893-9a2a-14ab3e996afe.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f8f727e1-2183-4893-9a2a-14ab3e996afe.mdx\"},this):Pe(s)}var mr=gr;return br(yr);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/redis-query.mdx", - "_raw": { - "sourceFilePath": "projects/redis-query.mdx", - "sourceFileName": "redis-query.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/redis-query" - }, - "type": "Project", - "path": "/projects/redis-query", - "slug": "redis-query" - }, - "documentHash": "1677517184762", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/terraform-provider-vercel.mdx": { - "document": { - "title": "Vercel Terraform Provider", - "description": "A Terraform provider for Vercel. It has been deprecated it when Vercel rolled out their official provider.", - "date": "2021-03-16T00:00:00.000Z", - "repository": "chronark/terraform-provider-vercel", - "body": { - "raw": "TODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var lr=Object.getOwnPropertyNames;var fr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,c)=>()=>(c||s((c={exports:{}}).exports,c),c.exports),vr=(s,c)=>{for(var h in c)F(s,h,{get:c[h],enumerable:!0})},_e=(s,c,h,E)=>{if(c&&typeof c==\"object\"||typeof c==\"function\")for(let m of lr(c))!dr.call(s,m)&&m!==h&&F(s,m,{get:()=>c[m],enumerable:!(E=cr(c,m))||E.enumerable});return s};var pr=(s,c,h)=>(h=s!=null?sr(fr(s)):{},_e(c||!s||!s.__esModule?F(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),c=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),V=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),Y=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&f>=0&&a[l]!==v[f];)f--;for(;l>=1&&f>=0;l--,f--)if(a[l]!==v[f]){if(l!==1||f!==1)do if(l--,f--,f<0||a[l]!==v[f]){var p=`\n`+a[l].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(l>=1&&f>=0);break}}}finally{N=!1,$.current=u,Ne(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case V:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case Y:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,ce={},le=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);le.setExtraStackFrame(t)}else le.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(l){a=l}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function M(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return fe(e),!1}catch{return!0}}function fe(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),fe(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=b(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',b(O.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:c,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var l=e.defaultProps;for(u in l)o[u]===void 0&&(o[u]=l[u])}if(a||v){var f=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,f),v&&Qe(o,f)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===c}function be(){{if(L.current){var e=b(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=be();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+b(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(M(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):l=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",l,a)}var f=rr(e,r,t,i,u);if(f==null)return f;if(o){var p=r.children;if(p!==void 0)if(n)if(M(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>br});var A=pr(we()),br={title:\"Vercel Terraform Provider\",description:\"A Terraform provider for Vercel. It has been deprecated it when Vercel rolled out their official provider.\",date:\"2021-03-16\",repository:\"chronark/terraform-provider-vercel\"};function Pe(s){let c=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(c.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-00a5707e-76cc-4124-98a0-89eba8943650.mdx\",lineNumber:7,columnNumber:1},this)}function gr(s={}){let{wrapper:c}=s.components||{};return c?(0,A.jsxDEV)(c,Object.assign({},s,{children:(0,A.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-00a5707e-76cc-4124-98a0-89eba8943650.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-00a5707e-76cc-4124-98a0-89eba8943650.mdx\"},this):Pe(s)}var mr=gr;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/terraform-provider-vercel.mdx", - "_raw": { - "sourceFilePath": "projects/terraform-provider-vercel.mdx", - "sourceFileName": "terraform-provider-vercel.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/terraform-provider-vercel" - }, - "type": "Project", - "path": "/projects/terraform-provider-vercel", - "slug": "terraform-provider-vercel" - }, - "documentHash": "1677517152082", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-auth-analytics.mdx": { - "document": { - "title": "Upstash Auth Analytics", - "description": "A library to record and analyse Auth.js user behaviour", - "url": "https://console.upstash.com/ratelimit", - "repository": "upstash/auth-analytics", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var A=Object.defineProperty;var fr=Object.getOwnPropertyDescriptor;var cr=Object.getOwnPropertyNames;var lr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,f)=>()=>(f||s((f={exports:{}}).exports,f),f.exports),vr=(s,f)=>{for(var h in f)A(s,h,{get:f[h],enumerable:!0})},_e=(s,f,h,E)=>{if(f&&typeof f==\"object\"||typeof f==\"function\")for(let m of cr(f))!dr.call(s,m)&&m!==h&&A(s,m,{get:()=>f[m],enumerable:!(E=fr(f,m))||E.enumerable});return s};var pr=(s,f,h)=>(h=s!=null?sr(lr(s)):{},_e(f||!s||!s.__esModule?A(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(A({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),f=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&l>=0&&a[c]!==v[l];)l--;for(;c>=1&&l>=0;c--,l--)if(a[c]!==v[l]){if(c!==1||l!==1)do if(c--,l--,l<0||a[c]!==v[l]){var p=`\n`+a[c].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(c>=1&&l>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,fe={},ce=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);ce.setExtraStackFrame(t)}else ce.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(c){a=c}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in fe)&&(fe[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return le(e),!1}catch{return!0}}function le(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),le(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=b(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',b(O.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:f,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var c=e.defaultProps;for(u in c)o[u]===void 0&&(o[u]=c[u])}if(a||v){var l=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,l),v&&Qe(o,l)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===f}function be(){{if(L.current){var e=b(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=be();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+b(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):c=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",c,a)}var l=rr(e,r,t,i,u);if(l==null)return l;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>br});var F=pr(we()),br={title:\"Upstash Auth Analytics\",description:\"A library to record and analyse Auth.js user behaviour\",url:\"https://console.upstash.com/ratelimit\",repository:\"upstash/auth-analytics\"};function Pe(s){let f=Object.assign({p:\"p\"},s.components);return(0,F.jsxDEV)(f.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-782f72af-328d-46b9-9516-8f695fc45669.mdx\",lineNumber:9,columnNumber:1},this)}function gr(s={}){let{wrapper:f}=s.components||{};return f?(0,F.jsxDEV)(f,Object.assign({},s,{children:(0,F.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-782f72af-328d-46b9-9516-8f695fc45669.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-782f72af-328d-46b9-9516-8f695fc45669.mdx\"},this):Pe(s)}var mr=gr;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-auth-analytics.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-auth-analytics.mdx", - "sourceFileName": "upstash-auth-analytics.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-auth-analytics" - }, - "type": "Project", - "path": "/projects/upstash-auth-analytics", - "slug": "upstash-auth-analytics" - }, - "documentHash": "1677516995292", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-core-analytics.mdx": { - "document": { - "title": "Upstash Core Analytics", - "description": "Low level utilities to build analytics tools on top of Redis.", - "date": "2023-02-13T00:00:00.000Z", - "url": "https://console.upstash.com/ratelimit", - "repository": "upstash/core-analytics", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var lr=Object.getOwnPropertyDescriptor;var cr=Object.getOwnPropertyNames;var fr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,l)=>()=>(l||s((l={exports:{}}).exports,l),l.exports),vr=(s,l)=>{for(var b in l)F(s,b,{get:l[b],enumerable:!0})},_e=(s,l,b,E)=>{if(l&&typeof l==\"object\"||typeof l==\"function\")for(let m of cr(l))!dr.call(s,m)&&m!==b&&F(s,m,{get:()=>l[m],enumerable:!(E=lr(l,m))||E.enumerable});return s};var pr=(s,l,b)=>(b=s!=null?sr(fr(s)):{},_e(l||!s||!s.__esModule?F(b,\"default\",{value:s,enumerable:!0}):b,s)),br=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),l=Symbol.for(\"react.element\"),b=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&f>=0&&a[c]!==v[f];)f--;for(;c>=1&&f>=0;c--,f--)if(a[c]!==v[f]){if(c!==1||f!==1)do if(c--,f--,f<0||a[c]!==v[f]){var p=`\n`+a[c].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(c>=1&&f>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,le={},ce=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);ce.setExtraStackFrame(t)}else ce.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(c){a=c}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in le)&&(le[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return fe(e),!1}catch{return!0}}function fe(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),fe(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=h(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',h(O.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:l,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var c=e.defaultProps;for(u in c)o[u]===void 0&&(o[u]=c[u])}if(a||v){var f=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,f),v&&Qe(o,f)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,be=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===l}function he(){{if(L.current){var e=h(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=he();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+h(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):c=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",c,a)}var f=rr(e,r,t,i,u);if(f==null)return f;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>hr});var A=pr(we()),hr={title:\"Upstash Core Analytics\",description:\"Low level utilities to build analytics tools on top of Redis.\",date:\"2023-02-13\",url:\"https://console.upstash.com/ratelimit\",repository:\"upstash/core-analytics\"};function Pe(s){let l=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(l.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-34a42017-7e64-4dc5-8ee0-88102abe576b.mdx\",lineNumber:10,columnNumber:1},this)}function gr(s={}){let{wrapper:l}=s.components||{};return l?(0,A.jsxDEV)(l,Object.assign({},s,{children:(0,A.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-34a42017-7e64-4dc5-8ee0-88102abe576b.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-34a42017-7e64-4dc5-8ee0-88102abe576b.mdx\"},this):Pe(s)}var mr=gr;return br(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-core-analytics.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-core-analytics.mdx", - "sourceFileName": "upstash-core-analytics.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-core-analytics" - }, - "type": "Project", - "path": "/projects/upstash-core-analytics", - "slug": "upstash-core-analytics" - }, - "documentHash": "1677516952361", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-qstash-sdk.mdx": { - "document": { - "title": "QStash SDK", - "description": "A typescript client and consumer for QStash.", - "date": "2023-07-18T00:00:00.000Z", - "url": "https://upstash.com/qstash", - "repository": "upstash/sdk-qstash-ts", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var fr=Object.getOwnPropertyNames;var lr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var G=(s,c)=>()=>(c||s((c={exports:{}}).exports,c),c.exports),vr=(s,c)=>{for(var h in c)F(s,h,{get:c[h],enumerable:!0})},_e=(s,c,h,E)=>{if(c&&typeof c==\"object\"||typeof c==\"function\")for(let m of fr(c))!dr.call(s,m)&&m!==h&&F(s,m,{get:()=>c[m],enumerable:!(E=cr(c,m))||E.enumerable});return s};var pr=(s,c,h)=>(h=s!=null?sr(lr(s)):{},_e(c||!s||!s.__esModule?F(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=G((_r,Re)=>{Re.exports=React});var Ce=G(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),c=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),K=Symbol.for(\"react.profiler\"),X=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),S=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),w=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Pe=Symbol.for(\"react.offscreen\"),Q=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=Q&&e[Q]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&l>=0&&a[f]!==v[l];)l--;for(;f>=1&&l>=0;f--,l--)if(a[f]!==v[l]){if(f!==1||l!==1)do if(f--,l--,l<0||a[f]!==v[l]){var p=`\n`+a[f].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(f>=1&&l>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?P(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return P(e);switch(e){case I:return P(\"Suspense\");case Y:return P(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case S:return Ue(e.render);case w:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,ce={},fe=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){a=f}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var qe=Array.isArray;function V(e){return qe(e)}function Ge(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return le(e),!1}catch{return!0}}function le(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Ge(e)),le(e)}var O=_.ReactCurrentOwner,Ke={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Xe(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Qe(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=b(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',b(O.current.type),e.ref),U[t]=!0)}}function Je(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Ze(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:c,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Xe(r)&&(v=r.ref,Qe(r,i));for(u in r)k.call(r,u)&&!Ke.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var f=e.defaultProps;for(u in f)o[u]===void 0&&(o[u]=f[u])}if(a||v){var l=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Je(o,l),v&&Ze(o,l)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var B;B=!1;function q(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===c}function be(){{if(L.current){var e=b(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=be();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+b(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):f=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",f,a)}var l=rr(e,r,t,i,u);if(l==null)return l;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>br});var A=pr(Se()),br={title:\"QStash SDK\",description:\"A typescript client and consumer for QStash.\",date:\"2023-07-18\",url:\"https://upstash.com/qstash\",repository:\"upstash/sdk-qstash-ts\"};function we(s){let c=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(c.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-b909c49b-e957-4104-b918-f3fc394c6ea9.mdx\",lineNumber:9,columnNumber:1},this)}function gr(s={}){let{wrapper:c}=s.components||{};return c?(0,A.jsxDEV)(c,Object.assign({},s,{children:(0,A.jsxDEV)(we,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-b909c49b-e957-4104-b918-f3fc394c6ea9.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-b909c49b-e957-4104-b918-f3fc394c6ea9.mdx\"},this):we(s)}var mr=gr;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-qstash-sdk.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-qstash-sdk.mdx", - "sourceFileName": "upstash-qstash-sdk.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-qstash-sdk" - }, - "type": "Project", - "path": "/projects/upstash-qstash-sdk", - "slug": "upstash-qstash-sdk" - }, - "documentHash": "1677516964793", - "hasWarnings": false, - "documentTypeName": "Project" - } - } -} diff --git a/.contentlayer/.cache/v0.3.0/data-AAEZAM7W.json b/.contentlayer/.cache/v0.3.0/data-AAEZAM7W.json deleted file mode 100644 index 059399c..0000000 --- a/.contentlayer/.cache/v0.3.0/data-AAEZAM7W.json +++ /dev/null @@ -1,417 +0,0 @@ -{ - "cacheItemsMap": { - "projects/access.mdx": { - "document": { - "published": true, - "title": "@chronark/access", - "description": "A minimal library for access control. It is designed to be used together with opaque access tokens by providing a simple interface to define roles with different access permissions and verifying requests to resources.", - "date": "2022-11-13T00:00:00.000Z", - "repository": "chronark/access", - "body": { - "raw": "A minimal library for access control. It is designed to be used together with opaque access tokens by providing a simple interface to define roles with different access permissions and verifying requests to resources.\n\n- Fully typed\n- Zero dependencies\n- Serializable to store in a database\n\n## Install\n\n```sh-session\nnpm i @chronark/access\n```\n\n## Usage\n\n```ts\nimport { AccessControl, Role } from \"@chronark/access\";\n\n/**\n * Define all your resources and their access patterns\n *\n * key => resource\n * value => array of access types\n */\ntype Statements = {\n user: [\"read\", \"write\", \"dance\"];\n team: [\"read\", \"write\"];\n};\n\n/**\n * Create an access control instance and pass the Statements type to enjoy full\n * type safety\n */\nconst ac = new AccessControl();\n\n/**\n * Now you can define one or more roles by specifying the access permissions\n *\n * This is already fully typed and typescript will let you know if you try to\n * use anything, that is not defined in the Statements type.\n */\nconst role = ac.newRole({\n user: [\"read\", \"write\"],\n team: [\"read\"],\n});\n\n/**\n * Simulate storing and retrieving the role in a database\n *\n * The idea here is, that you can store permissions alongside an API token.\n * Now, when you verify the token, you can also verify the access permissions.\n */\nconst serialized = role.toString();\n\n/**\n * Note how you can pass in the Statements type again, to get full type safety\n */\nconst recovered = Role.fromString(serialized);\n\n/**\n * Validate the role by specifying the resource and the required access\n *\n * everything is fully typed\n */\nconst res = recovered.authorize({\"team\", [\"read\"]});\n\n// res.success => boolean\n// res.error => string | undefined provides a reason for failure\n```", - "code": "var Component=(()=>{var sn=Object.create;var S=Object.defineProperty;var ln=Object.getOwnPropertyDescriptor;var mn=Object.getOwnPropertyNames;var un=Object.getPrototypeOf,fn=Object.prototype.hasOwnProperty;var z=(l,e)=>()=>(e||l((e={exports:{}}).exports,e),e.exports),hn=(l,e)=>{for(var _ in e)S(l,_,{get:e[_],enumerable:!0})},xe=(l,e,_,k)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let y of mn(e))!fn.call(l,y)&&y!==_&&S(l,y,{get:()=>e[y],enumerable:!(k=ln(e,y))||k.enumerable});return l};var bn=(l,e,_)=>(_=l!=null?sn(un(l)):{},xe(e||!l||!l.__esModule?S(_,\"default\",{value:l,enumerable:!0}):_,l)),_n=l=>xe(S({},\"__esModule\",{value:!0}),l);var Ee=z((gn,ge)=>{ge.exports=React});var je=z(G=>{\"use strict\";(function(){\"use strict\";var l=Ee(),e=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),k=Symbol.for(\"react.fragment\"),y=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),F=Symbol.for(\"react.forward_ref\"),O=Symbol.for(\"react.suspense\"),P=Symbol.for(\"react.suspense_list\"),R=Symbol.for(\"react.memo\"),B=Symbol.for(\"react.lazy\"),Re=Symbol.for(\"react.offscreen\"),Z=Symbol.iterator,Ce=\"@@iterator\";function De(n){if(n===null||typeof n!=\"object\")return null;var a=Z&&n[Z]||n[Ce];return typeof a==\"function\"?a:null}var g=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function f(n){{for(var a=arguments.length,d=new Array(a>1?a-1:0),c=1;c=1&&u>=0&&t[m]!==h[u];)u--;for(;m>=1&&u>=0;m--,u--)if(t[m]!==h[u]){if(m!==1||u!==1)do if(m--,u--,u<0||t[m]!==h[u]){var b=`\n`+t[m].replace(\" at new \",\" at \");return n.displayName&&b.includes(\"\")&&(b=b.replace(\"\",n.displayName)),typeof n==\"function\"&&D.set(n,b),b}while(m>=1&&u>=0);break}}}finally{$=!1,I.current=i,$e(),Error.prepareStackTrace=s}var j=n?n.displayName||n.name:\"\",ke=j?C(j):\"\";return typeof n==\"function\"&&D.set(n,ke),ke}function Ve(n,a,d){return se(n,!1)}function Me(n){var a=n.prototype;return!!(a&&a.isReactComponent)}function w(n,a,d){if(n==null)return\"\";if(typeof n==\"function\")return se(n,Me(n));if(typeof n==\"string\")return C(n);switch(n){case O:return C(\"Suspense\");case P:return C(\"SuspenseList\")}if(typeof n==\"object\")switch(n.$$typeof){case F:return Ve(n.render);case R:return w(n.type,a,d);case B:{var c=n,s=c._payload,i=c._init;try{return w(i(s),a,d)}catch{}}}return\"\"}var T=Object.prototype.hasOwnProperty,ie={},le=g.ReactDebugCurrentFrame;function A(n){if(n){var a=n._owner,d=w(n.type,n._source,a?a.type:null);le.setExtraStackFrame(d)}else le.setExtraStackFrame(null)}function Le(n,a,d,c,s){{var i=Function.call.bind(T);for(var o in n)if(i(n,o)){var t=void 0;try{if(typeof n[o]!=\"function\"){var h=Error((c||\"React class\")+\": \"+d+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof n[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw h.name=\"Invariant Violation\",h}t=n[o](a,o,c,d,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(m){t=m}t&&!(t instanceof Error)&&(A(s),f(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",c||\"React class\",d,o,typeof t),A(null)),t instanceof Error&&!(t.message in ie)&&(ie[t.message]=!0,A(s),f(\"Failed %s type: %s\",d,t.message),A(null))}}}var qe=Array.isArray;function W(n){return qe(n)}function ze(n){{var a=typeof Symbol==\"function\"&&Symbol.toStringTag,d=a&&n[Symbol.toStringTag]||n.constructor.name||\"Object\";return d}}function Ge(n){try{return me(n),!1}catch{return!0}}function me(n){return\"\"+n}function ue(n){if(Ge(n))return f(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",ze(n)),me(n)}var v=g.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},fe,he,V;V={};function Ke(n){if(T.call(n,\"ref\")){var a=Object.getOwnPropertyDescriptor(n,\"ref\").get;if(a&&a.isReactWarning)return!1}return n.ref!==void 0}function He(n){if(T.call(n,\"key\")){var a=Object.getOwnPropertyDescriptor(n,\"key\").get;if(a&&a.isReactWarning)return!1}return n.key!==void 0}function Ze(n,a){if(typeof n.ref==\"string\"&&v.current&&a&&v.current.stateNode!==a){var d=p(v.current.type);V[d]||(f('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(v.current.type),n.ref),V[d]=!0)}}function Je(n,a){{var d=function(){fe||(fe=!0,f(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};d.isReactWarning=!0,Object.defineProperty(n,\"key\",{get:d,configurable:!0})}}function Qe(n,a){{var d=function(){he||(he=!0,f(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};d.isReactWarning=!0,Object.defineProperty(n,\"ref\",{get:d,configurable:!0})}}var en=function(n,a,d,c,s,i,o){var t={$$typeof:e,type:n,key:a,ref:d,props:o,_owner:i};return t._store={},Object.defineProperty(t._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(t,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:c}),Object.defineProperty(t,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:s}),Object.freeze&&(Object.freeze(t.props),Object.freeze(t)),t};function nn(n,a,d,c,s){{var i,o={},t=null,h=null;d!==void 0&&(ue(d),t=\"\"+d),He(a)&&(ue(a.key),t=\"\"+a.key),Ke(a)&&(h=a.ref,Ze(a,s));for(i in a)T.call(a,i)&&!Xe.hasOwnProperty(i)&&(o[i]=a[i]);if(n&&n.defaultProps){var m=n.defaultProps;for(i in m)o[i]===void 0&&(o[i]=m[i])}if(t||h){var u=typeof n==\"function\"?n.displayName||n.name||\"Unknown\":n;t&&Je(o,u),h&&Qe(o,u)}return en(n,t,h,s,c,v.current,o)}}var M=g.ReactCurrentOwner,be=g.ReactDebugCurrentFrame;function E(n){if(n){var a=n._owner,d=w(n.type,n._source,a?a.type:null);be.setExtraStackFrame(d)}else be.setExtraStackFrame(null)}var L;L=!1;function q(n){return typeof n==\"object\"&&n!==null&&n.$$typeof===e}function _e(){{if(M.current){var n=p(M.current.type);if(n)return`\n\nCheck the render method of \\``+n+\"`.\"}return\"\"}}function rn(n){{if(n!==void 0){var a=n.fileName.replace(/^.*[\\\\\\/]/,\"\"),d=n.lineNumber;return`\n\nCheck your code at `+a+\":\"+d+\".\"}return\"\"}}var pe={};function an(n){{var a=_e();if(!a){var d=typeof n==\"string\"?n:n.displayName||n.name;d&&(a=`\n\nCheck the top-level render call using <`+d+\">.\")}return a}}function Ne(n,a){{if(!n._store||n._store.validated||n.key!=null)return;n._store.validated=!0;var d=an(a);if(pe[d])return;pe[d]=!0;var c=\"\";n&&n._owner&&n._owner!==M.current&&(c=\" It was passed a child from \"+p(n._owner.type)+\".\"),E(n),f('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',d,c),E(null)}}function ye(n,a){{if(typeof n!=\"object\")return;if(W(n))for(var d=0;d\",t=\" Did you accidentally export a JSX literal instead of a component?\"):m=typeof n,f(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",m,t)}var u=nn(n,a,d,s,i);if(u==null)return u;if(o){var b=a.children;if(b!==void 0)if(c)if(W(b)){for(var j=0;j{\"use strict\";Ue.exports=je()});var kn={};hn(kn,{default:()=>yn,frontmatter:()=>pn});var r=bn(ve()),pn={title:\"@chronark/access\",description:\"A minimal library for access control. It is designed to be used together with opaque access tokens by providing a simple interface to define roles with different access permissions and verifying requests to resources.\",repository:\"chronark/access\",date:\"2022-11-13\",published:!0};function Fe(l){let e=Object.assign({p:\"p\",ul:\"ul\",li:\"li\",h2:\"h2\",a:\"a\",span:\"span\",div:\"div\",pre:\"pre\",code:\"code\"},l.components);return(0,r.jsxDEV)(r.Fragment,{children:[(0,r.jsxDEV)(e.p,{children:\"A minimal library for access control. It is designed to be used together with opaque access tokens by providing a simple interface to define roles with different access permissions and verifying requests to resources.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ul,{children:[`\n`,(0,r.jsxDEV)(e.li,{children:\"Fully typed\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:\"Zero dependencies\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:\"Serializable to store in a database\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:13,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h2,{id:\"install\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#install\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\"},this),\"Install\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\"npm i @chronark/access\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h2,{id:\"usage\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#usage\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\"},this),\"Usage\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:21,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:104},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" { AccessControl, Role } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:146},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:207},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:247},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"@chronark/access\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:284},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\";\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:348},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:3,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Define all your resources and their access patterns\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:4,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" *\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:5,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * key => resource\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * value => array of access types\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"type\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:60},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"Statements\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:97},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:143},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:180},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:217},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\"user\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:58},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\":\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:135},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:173},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:225},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"write\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:263},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:316},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"dance\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:354},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"];\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:407},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\"team\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:58},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\":\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:135},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:173},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:225},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"write\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:263},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"];\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:316},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"};\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:12,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:14,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Create an access control instance and pass the Statements type to enjoy full\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:15,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * type safety\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:16,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:17,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"ac\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:136},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:173},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:210},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"new\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:247},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:286},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"AccessControl\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:323},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"<\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:372},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"Statements\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:412},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\">();\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:458},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:20,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Now you can define one or more roles by specifying the access permissions\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:21,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:21,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" *\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:22,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:22,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * This is already fully typed and typescript will let you know if you try to\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:23,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:23,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * use anything, that is not defined in the Statements type.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:24,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:24,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:25,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:25,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"role\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:138},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:175},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" ac.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:212},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"newRole\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:252},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:295},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" user: [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:27,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:27,columnNumber:65},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:27,columnNumber:117},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"write\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:27,columnNumber:155},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"],\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:27,columnNumber:208},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:27,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" team: [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:28,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:28,columnNumber:65},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"],\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:28,columnNumber:117},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:28,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"});\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:29,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:29,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:31,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Simulate storing and retrieving the role in a database\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:32,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:32,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" *\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:33,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:33,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * The idea here is, that you can store permissions alongside an API token.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:34,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:34,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Now, when you verify the token, you can also verify the access permissions.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:35,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:36,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:36,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"serialized\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:144},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:181},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" role.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:218},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"toString\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:260},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"();\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:304},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:38,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:39,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:39,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Note how you can pass in the Statements type again, to get full type safety\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:40,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:40,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:41,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:41,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"recovered\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:143},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:180},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" Role.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:217},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"fromString\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:259},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"<\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:305},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"Statements\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:345},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\">(serialized);\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:391},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:43,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:44,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:44,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Validate the role by specifying the resource and the required access\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:45,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:45,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" *\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:46,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:46,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * everything is fully typed\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:47,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:47,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:48,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:48,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"res\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:137},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:174},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" recovered.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:211},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"authorize\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:258},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:303},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"team\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:341},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:393},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:432},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"]});\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:484},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:50,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// res.success => boolean\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:51,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:51,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// res.error => string | undefined provides a reason for failure\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:52,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:52,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:23,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:1},this)}function Nn(l={}){let{wrapper:e}=l.components||{};return e?(0,r.jsxDEV)(e,Object.assign({},l,{children:(0,r.jsxDEV)(Fe,l,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\"},this):Fe(l)}var yn=Nn;return _n(kn);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/access.mdx", - "_raw": { - "sourceFilePath": "projects/access.mdx", - "sourceFileName": "access.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/access" - }, - "type": "Project", - "path": "/projects/access", - "slug": "access" - }, - "documentHash": "1679819558148", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/envshare.mdx": { - "document": { - "published": true, - "title": "envshare.dev", - "description": "EnvShare is a simple tool to share environment variables securely. It uses AES-GCM to encrypt your data before sending it to the server. The encryption key never leaves your browser.", - "date": "2023-01-16T00:00:00.000Z", - "url": "https://envshare.dev", - "repository": "chronark/envshare", - "body": { - "raw": "\nEnvShare is a simple tool to share environment variables securely. It uses\n**AES-GCM** to encrypt your data before sending it to the server. The encryption\nkey never leaves your browser.\n\n## Features\n\n- **Shareable Links:** Share your environment variables securely by sending a\n link\n- **End-to-End Encryption:** AES-GCM encryption is used to encrypt your data\n before sending it to the server\n- **Limit number of reads:** Limit the number of times a link can be read\n- **Auto Expire:** Automatically expire links and delete data after a certain\n time\n\n\n\n![](https://github.com/chronark/envshare/raw/main/img/envshare.png)\n\n## Built with\n\n- [Next.js](https://nextjs.org)\n- [tailwindcss](https://tailwindcss.com)\n- Deployed on [Vercel](https://vercel.com?utm_source=envshare)\n- Data stored on [Upstash](https://upstash.com?utm_source=envshare)\n\n## Deploy your own\n\nDetailed instructions can be found [here](https://envshare.dev/deploy)\n\nAll you need is a Redis database on Upstash and a Vercel account. Click the\nbutton below to clone and deploy:\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?demo-title=EnvShare&demo-description=Simple%20Next.js%20%2B%20Upstash%20app%20to%20share%20environment%20variables%20securely%20using%20AES-GCM%20encryption.&demo-url=https%3A%2F%2Fenvshare.dev%2F&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5SaFBHXp5FBFJbsTzVqIJ3%2Ff0f8382369b7642fd8103debb9025c11%2Fenvshare.png&project-name=EnvShare&repository-name=envshare&repository-url=https%3A%2F%2Fgithub.com%2Fchronark%2Fenvshare&from=templates&integration-ids=oac_V3R1GIpkoJorr6fqyiwdhl17)\n\n\n\n## Configuration\n\n### Environment Variables\n\n`ENABLE_VERCEL_ANALYTICS` Any truthy value will enable Vercel Analytics. This is turned off by default\n\n## Contributing\n\nThis repository uses `pnpm` to manage dependencies. Install it using\n`npm install -g pnpm`\n\nPlease run `pnpm fmt` before committing to format the code.\n\n## Docs\n\nDocs in the README are temporary and will be moved to the website soon.\n\n### API\n\n#### Store a secret\n\n**PLEASE NEVER EVER UPLOAD UNENCRYPTED SECRETS.**\n\nThis endpoint is only meant to store **already encrypted** secrets. The\nencrypted secrets are stored in plain text.\n\n```sh-session\n$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\"\n```\n\nYou can add optional headers to configure the ttl and number of reads.\n\n```sh-session\n$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\" -H \"envshare-ttl: 3600\" -H \"envshare-reads: 10\"\n```\n\n- Omitting the `envshare-ttl` header will set a default of 30 days. Disable the\n ttl by setting it to 0. (`envshare-ttl: 0`)\n- Omitting the `envshare-reads` header will simply disable it and allow reading\n for an unlimited number of times.\n\nThis endpoint returns a JSON response with the secret id:\n\n```json\n{\n \"data\": {\n \"id\": \"HdPbXgpvUvNk43oxSdK97u\",\n \"ttl\": 86400,\n \"reads\": 2,\n \"expiresAt\": \"2023-01-19T20:47:28.383Z\",\n \"url\": \"http://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"\n }\n}\n```\n\n#### Retrieve a secret\n\nYou need an id to retrieve a secret. The id is returned when you store a secret.\n\n```sh-session\n$ curl -s https://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\n```\n\n```json\n{\n \"data\": {\n \"secret\": \"Hello\",\n \"remainingReads\": 1\n }\n}\n```", - "code": "var Component=(()=>{var ln=Object.create;var O=Object.defineProperty;var dn=Object.getOwnPropertyDescriptor;var un=Object.getOwnPropertyNames;var mn=Object.getPrototypeOf,bn=Object.prototype.hasOwnProperty;var X=(d,n)=>()=>(n||d((n={exports:{}}).exports,n),n.exports),hn=(d,n)=>{for(var _ in n)O(d,_,{get:n[_],enumerable:!0})},ye=(d,n,_,x)=>{if(n&&typeof n==\"object\"||typeof n==\"function\")for(let k of un(n))!bn.call(d,k)&&k!==_&&O(d,k,{get:()=>n[k],enumerable:!(x=dn(n,k))||x.enumerable});return d};var fn=(d,n,_)=>(_=d!=null?ln(mn(d)):{},ye(n||!d||!d.__esModule?O(_,\"default\",{value:d,enumerable:!0}):_,d)),_n=d=>ye(O({},\"__esModule\",{value:!0}),d);var ve=X((gn,ge)=>{ge.exports=React});var Ee=X(H=>{\"use strict\";(function(){\"use strict\";var d=ve(),n=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),x=Symbol.for(\"react.fragment\"),k=Symbol.for(\"react.strict_mode\"),q=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),z=Symbol.for(\"react.context\"),R=Symbol.for(\"react.forward_ref\"),A=Symbol.for(\"react.suspense\"),D=Symbol.for(\"react.suspense_list\"),F=Symbol.for(\"react.memo\"),L=Symbol.for(\"react.lazy\"),Fe=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Te=\"@@iterator\";function we(e){if(e===null||typeof e!=\"object\")return null;var t=J&&e[J]||e[Te];return typeof t==\"function\"?t:null}var g=d.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function b(e){{for(var t=arguments.length,a=new Array(t>1?t-1:0),o=1;o=1&&m>=0&&s[u]!==h[m];)m--;for(;u>=1&&m>=0;u--,m--)if(s[u]!==h[m]){if(u!==1||m!==1)do if(u--,m--,m<0||s[u]!==h[m]){var f=`\n`+s[u].replace(\" at new \",\" at \");return e.displayName&&f.includes(\"\")&&(f=f.replace(\"\",e.displayName)),typeof e==\"function\"&&w.set(e,f),f}while(u>=1&&m>=0);break}}}finally{V=!1,I.current=l,Ve(),Error.prepareStackTrace=c}var E=e?e.displayName||e.name:\"\",xe=E?T(E):\"\";return typeof e==\"function\"&&w.set(e,xe),xe}function $e(e,t,a){return ce(e,!1)}function Me(e){var t=e.prototype;return!!(t&&t.isReactComponent)}function S(e,t,a){if(e==null)return\"\";if(typeof e==\"function\")return ce(e,Me(e));if(typeof e==\"string\")return T(e);switch(e){case A:return T(\"Suspense\");case D:return T(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case R:return $e(e.render);case F:return S(e.type,t,a);case L:{var o=e,c=o._payload,l=o._init;try{return S(l(c),t,a)}catch{}}}return\"\"}var C=Object.prototype.hasOwnProperty,le={},de=g.ReactDebugCurrentFrame;function P(e){if(e){var t=e._owner,a=S(e.type,e._source,t?t.type:null);de.setExtraStackFrame(a)}else de.setExtraStackFrame(null)}function We(e,t,a,o,c){{var l=Function.call.bind(C);for(var i in e)if(l(e,i)){var s=void 0;try{if(typeof e[i]!=\"function\"){var h=Error((o||\"React class\")+\": \"+a+\" type `\"+i+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[i]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw h.name=\"Invariant Violation\",h}s=e[i](t,i,o,a,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(u){s=u}s&&!(s instanceof Error)&&(P(c),b(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",o||\"React class\",a,i,typeof s),P(null)),s instanceof Error&&!(s.message in le)&&(le[s.message]=!0,P(c),b(\"Failed %s type: %s\",a,s.message),P(null))}}}var Ge=Array.isArray;function Y(e){return Ge(e)}function Xe(e){{var t=typeof Symbol==\"function\"&&Symbol.toStringTag,a=t&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return a}}function He(e){try{return ue(e),!1}catch{return!0}}function ue(e){return\"\"+e}function me(e){if(He(e))return b(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Xe(e)),ue(e)}var U=g.ReactCurrentOwner,qe={key:!0,ref:!0,__self:!0,__source:!0},be,he,$;$={};function Ke(e){if(C.call(e,\"ref\")){var t=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(t&&t.isReactWarning)return!1}return e.ref!==void 0}function ze(e){if(C.call(e,\"key\")){var t=Object.getOwnPropertyDescriptor(e,\"key\").get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function Je(e,t){if(typeof e.ref==\"string\"&&U.current&&t&&U.current.stateNode!==t){var a=p(U.current.type);$[a]||(b('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(U.current.type),e.ref),$[a]=!0)}}function Ze(e,t){{var a=function(){be||(be=!0,b(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",t))};a.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:a,configurable:!0})}}function Qe(e,t){{var a=function(){he||(he=!0,b(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",t))};a.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:a,configurable:!0})}}var en=function(e,t,a,o,c,l,i){var s={$$typeof:n,type:e,key:t,ref:a,props:i,_owner:l};return s._store={},Object.defineProperty(s._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(s,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(s,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:c}),Object.freeze&&(Object.freeze(s.props),Object.freeze(s)),s};function nn(e,t,a,o,c){{var l,i={},s=null,h=null;a!==void 0&&(me(a),s=\"\"+a),ze(t)&&(me(t.key),s=\"\"+t.key),Ke(t)&&(h=t.ref,Je(t,c));for(l in t)C.call(t,l)&&!qe.hasOwnProperty(l)&&(i[l]=t[l]);if(e&&e.defaultProps){var u=e.defaultProps;for(l in u)i[l]===void 0&&(i[l]=u[l])}if(s||h){var m=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;s&&Ze(i,m),h&&Qe(i,m)}return en(e,s,h,c,o,U.current,i)}}var M=g.ReactCurrentOwner,fe=g.ReactDebugCurrentFrame;function v(e){if(e){var t=e._owner,a=S(e.type,e._source,t?t.type:null);fe.setExtraStackFrame(a)}else fe.setExtraStackFrame(null)}var W;W=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===n}function _e(){{if(M.current){var e=p(M.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function rn(e){{if(e!==void 0){var t=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),a=e.lineNumber;return`\n\nCheck your code at `+t+\":\"+a+\".\"}return\"\"}}var pe={};function tn(e){{var t=_e();if(!t){var a=typeof e==\"string\"?e:e.displayName||e.name;a&&(t=`\n\nCheck the top-level render call using <`+a+\">.\")}return t}}function Ne(e,t){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var a=tn(t);if(pe[a])return;pe[a]=!0;var o=\"\";e&&e._owner&&e._owner!==M.current&&(o=\" It was passed a child from \"+p(e._owner.type)+\".\"),v(e),b('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',a,o),v(null)}}function ke(e,t){{if(typeof e!=\"object\")return;if(Y(e))for(var a=0;a\",s=\" Did you accidentally export a JSX literal instead of a component?\"):u=typeof e,b(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",u,s)}var m=nn(e,t,a,c,l);if(m==null)return m;if(i){var f=t.children;if(f!==void 0)if(o)if(Y(f)){for(var E=0;E{\"use strict\";je.exports=Ee()});var xn={};hn(xn,{default:()=>kn,frontmatter:()=>pn});var r=fn(Ue()),pn={title:\"envshare.dev\",description:\"EnvShare is a simple tool to share environment variables securely. It uses AES-GCM to encrypt your data before sending it to the server. The encryption key never leaves your browser.\",date:\"2023-01-16\",url:\"https://envshare.dev\",repository:\"chronark/envshare\",published:!0};function Re(d){let n=Object.assign({p:\"p\",strong:\"strong\",h2:\"h2\",a:\"a\",span:\"span\",ul:\"ul\",li:\"li\",img:\"img\",h3:\"h3\",code:\"code\",h4:\"h4\",div:\"div\",pre:\"pre\"},d.components);return(0,r.jsxDEV)(r.Fragment,{children:[(0,r.jsxDEV)(n.p,{children:[`EnvShare is a simple tool to share environment variables securely. It uses\n`,(0,r.jsxDEV)(n.strong,{children:\"AES-GCM\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:11,columnNumber:1},this),` to encrypt your data before sending it to the server. The encryption\nkey never leaves your browser.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"features\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#features\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Features\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Shareable Links:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:16,columnNumber:3},this),` Share your environment variables securely by sending a\nlink`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"End-to-End Encryption:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:18,columnNumber:3},this),` AES-GCM encryption is used to encrypt your data\nbefore sending it to the server`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Limit number of reads:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:20,columnNumber:3},this),\" Limit the number of times a link can be read\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Auto Expire:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:21,columnNumber:3},this),` Automatically expire links and delete data after a certain\ntime`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:21,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.img,{src:\"https://github.com/chronark/envshare/raw/main/img/envshare.png\",alt:\"\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:26,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:26,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"built-with\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#built-with\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Built with\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:28,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:(0,r.jsxDEV)(n.a,{href:\"https://nextjs.org\",children:\"Next.js\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:30,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:(0,r.jsxDEV)(n.a,{href:\"https://tailwindcss.com\",children:\"tailwindcss\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:31,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Deployed on \",(0,r.jsxDEV)(n.a,{href:\"https://vercel.com?utm_source=envshare\",children:\"Vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:32,columnNumber:15},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:32,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Data stored on \",(0,r.jsxDEV)(n.a,{href:\"https://upstash.com?utm_source=envshare\",children:\"Upstash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:33,columnNumber:18},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:33,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"deploy-your-own\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#deploy-your-own\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Deploy your own\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"Detailed instructions can be found \",(0,r.jsxDEV)(n.a,{href:\"https://envshare.dev/deploy\",children:\"here\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:37,columnNumber:36},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:37,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:`All you need is a Redis database on Upstash and a Vercel account. Click the\nbutton below to clone and deploy:`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:39,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.a,{href:\"https://vercel.com/new/clone?demo-title=EnvShare&demo-description=Simple%20Next.js%20%2B%20Upstash%20app%20to%20share%20environment%20variables%20securely%20using%20AES-GCM%20encryption.&demo-url=https%3A%2F%2Fenvshare.dev%2F&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5SaFBHXp5FBFJbsTzVqIJ3%2Ff0f8382369b7642fd8103debb9025c11%2Fenvshare.png&project-name=EnvShare&repository-name=envshare&repository-url=https%3A%2F%2Fgithub.com%2Fchronark%2Fenvshare&from=templates&integration-ids=oac_V3R1GIpkoJorr6fqyiwdhl17\",children:(0,r.jsxDEV)(n.img,{src:\"https://vercel.com/button\",alt:\"Deploy with Vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:42,columnNumber:2},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:42,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:42,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"configuration\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#configuration\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Configuration\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:46,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h3,{id:\"environment-variables\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#environment-variables\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Environment Variables\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:48,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[(0,r.jsxDEV)(n.code,{children:\"ENABLE_VERCEL_ANALYTICS\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:50,columnNumber:1},this),\" Any truthy value will enable Vercel Analytics. This is turned off by default\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:50,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"contributing\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#contributing\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Contributing\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:52,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"This repository uses \",(0,r.jsxDEV)(n.code,{children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:54,columnNumber:22},this),` to manage dependencies. Install it using\n`,(0,r.jsxDEV)(n.code,{children:\"npm install -g pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:55,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:54,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"Please run \",(0,r.jsxDEV)(n.code,{children:\"pnpm fmt\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:57,columnNumber:12},this),\" before committing to format the code.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:57,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"docs\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#docs\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Docs\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:59,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"Docs in the README are temporary and will be moved to the website soon.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:61,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h3,{id:\"api\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#api\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"API\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:63,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h4,{id:\"store-a-secret\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#store-a-secret\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Store a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:65,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.strong,{children:\"PLEASE NEVER EVER UPLOAD UNENCRYPTED SECRETS.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:67,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:67,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"This endpoint is only meant to store \",(0,r.jsxDEV)(n.strong,{children:\"already encrypted\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:69,columnNumber:38},this),` secrets. The\nencrypted secrets are stored in plain text.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:69,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:'$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:72,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"You can add optional headers to configure the ttl and number of reads.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:76,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:'$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\" -H \"envshare-ttl: 3600\" -H \"envshare-reads: 10\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:78,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:[\"Omitting the \",(0,r.jsxDEV)(n.code,{children:\"envshare-ttl\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:82,columnNumber:16},this),` header will set a default of 30 days. Disable the\nttl by setting it to 0. (`,(0,r.jsxDEV)(n.code,{children:\"envshare-ttl: 0\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:83,columnNumber:28},this),\")\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Omitting the \",(0,r.jsxDEV)(n.code,{children:\"envshare-reads\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:84,columnNumber:16},this),` header will simply disable it and allow reading\nfor an unlimited number of times.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:84,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"This endpoint returns a JSON response with the secret id:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:87,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"json\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"json\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"data\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"id\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:110},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"HdPbXgpvUvNk43oxSdK97u\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:148},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:218},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"ttl\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:111},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"86400\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:149},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:190},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"reads\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:113},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"2\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:151},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:188},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"expiresAt\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:117},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"2023-01-19T20:47:28.383Z\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:155},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:227},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:7,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"url\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:7,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:7,columnNumber:111},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"http://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:7,columnNumber:149},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:9,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:89,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h4,{id:\"retrieve-a-secret\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#retrieve-a-secret\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Retrieve a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:101,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"You need an id to retrieve a secret. The id is returned when you store a secret.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:103,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:\"$ curl -s https://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:105,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"json\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"json\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"data\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"secret\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:114},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"Hello\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:152},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:205},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"remainingReads\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:122},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:160},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:109,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:1},this)}function Nn(d={}){let{wrapper:n}=d.components||{};return n?(0,r.jsxDEV)(n,Object.assign({},d,{children:(0,r.jsxDEV)(Re,d,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this):Re(d)}var kn=Nn;return _n(xn);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/envshare.mdx", - "_raw": { - "sourceFilePath": "projects/envshare.mdx", - "sourceFileName": "envshare.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/envshare" - }, - "type": "Project", - "path": "/projects/envshare", - "slug": "envshare" - }, - "documentHash": "1679819564284", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/planetfall.mdx": { - "document": { - "published": true, - "title": "planetfall.io", - "description": "I'm building a SAAS providing global latency monitoring for your APIs and websites from edge locations around the world. Have you ever wondered how fast your API is in any part of the world? Planetfall allows you to find out and monitor it continuously.", - "date": "2023-04-01T00:00:00.000Z", - "url": "https://planetfall.io", - "body": { - "raw": "\n\nPlanetfall is a SaaS platform that provides global latency monitoring and synthetic monitoring for APIs. With over 60 regions to monitor from, customers can gain insights into the true performance of their API by checking latency from around the world. \nPlanetfall offers custom timeouts, threshold notifications, and real-time alerts for potential performance issues. Additionally, customers can create custom status pages to share with their customers, which can display availability and latency for every region. Planetfall offers a free tier that includes 100k checks per month and scales as customers grow. Overall, Planetfall helps customers stay in control of their API's performance, improve communication with their customers, and build trust.", - "code": "var Component=(()=>{var sr=Object.create;var D=Object.defineProperty;var lr=Object.getOwnPropertyDescriptor;var fr=Object.getOwnPropertyNames;var cr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,l)=>()=>(l||s((l={exports:{}}).exports,l),l.exports),vr=(s,l)=>{for(var h in l)D(s,h,{get:l[h],enumerable:!0})},_e=(s,l,h,y)=>{if(l&&typeof l==\"object\"||typeof l==\"function\")for(let b of fr(l))!dr.call(s,b)&&b!==h&&D(s,b,{get:()=>l[b],enumerable:!(y=lr(l,b))||y.enumerable});return s};var pr=(s,l,h)=>(h=s!=null?sr(cr(s)):{},_e(l||!s||!s.__esModule?D(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(D({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var we=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),l=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),y=Symbol.for(\"react.fragment\"),b=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),H=Symbol.for(\"react.provider\"),K=Symbol.for(\"react.context\"),C=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),W=Symbol.for(\"react.suspense_list\"),O=Symbol.for(\"react.memo\"),Y=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function ke(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&c>=0&&a[f]!==v[c];)c--;for(;f>=1&&c>=0;f--,c--)if(a[f]!==v[c]){if(f!==1||c!==1)do if(f--,c--,c<0||a[f]!==v[c]){var p=`\n`+a[f].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(f>=1&&c>=0);break}}}finally{M=!1,$.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",Ee=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,Ee),Ee}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function k(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case W:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case C:return Ue(e.render);case O:return k(e.type,r,t);case Y:{var n=e,i=n._payload,u=n._init;try{return k(u(i),r,t)}catch{}}}return\"\"}var x=Object.prototype.hasOwnProperty,le={},fe=_.ReactDebugCurrentFrame;function A(e){if(e){var r=e._owner,t=k(e.type,e._source,r?r.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(x);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){a=f}a&&!(a instanceof Error)&&(A(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),A(null)),a instanceof Error&&!(a.message in le)&&(le[a.message]=!0,A(i),d(\"Failed %s type: %s\",t,a.message),A(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return ce(e),!1}catch{return!0}}function ce(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),ce(e)}var P=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function He(e){if(x.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function Ke(e){if(x.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&P.current&&r&&P.current.stateNode!==r){var t=m(P.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',m(P.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:l,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),Ke(r)&&(de(r.key),a=\"\"+r.key),He(r)&&(v=r.ref,Je(r,i));for(u in r)x.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var f=e.defaultProps;for(u in f)o[u]===void 0&&(o[u]=f[u])}if(a||v){var c=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,c),v&&Qe(o,c)}return er(e,a,v,i,n,P.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=k(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===l}function me(){{if(L.current){var e=m(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=me();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function be(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+m(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function ye(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):f=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",f,a)}var c=rr(e,r,t,i,u);if(c==null)return c;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Pe.exports=we()});var yr={};vr(yr,{default:()=>br,frontmatter:()=>mr});var F=pr(Ce()),mr={title:\"planetfall.io\",description:\"I'm building a SAAS providing global latency monitoring for your APIs and websites from edge locations around the world. Have you ever wondered how fast your API is in any part of the world? Planetfall allows you to find out and monitor it continuously.\",date:\"2023-04-01\",url:\"https://planetfall.io\",published:!0};function Oe(s){let l=Object.assign({p:\"p\"},s.components);return(0,F.jsxDEV)(l.p,{children:`Planetfall is a SaaS platform that provides global latency monitoring and synthetic monitoring for APIs. With over 60 regions to monitor from, customers can gain insights into the true performance of their API by checking latency from around the world.\nPlanetfall offers custom timeouts, threshold notifications, and real-time alerts for potential performance issues. Additionally, customers can create custom status pages to share with their customers, which can display availability and latency for every region. Planetfall offers a free tier that includes 100k checks per month and scales as customers grow. Overall, Planetfall helps customers stay in control of their API's performance, improve communication with their customers, and build trust.`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e9522400-f185-40ad-8df0-2d91f99fdbba.mdx\",lineNumber:11,columnNumber:1},this)}function gr(s={}){let{wrapper:l}=s.components||{};return l?(0,F.jsxDEV)(l,Object.assign({},s,{children:(0,F.jsxDEV)(Oe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e9522400-f185-40ad-8df0-2d91f99fdbba.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e9522400-f185-40ad-8df0-2d91f99fdbba.mdx\"},this):Oe(s)}var br=gr;return hr(yr);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/planetfall.mdx", - "_raw": { - "sourceFilePath": "projects/planetfall.mdx", - "sourceFileName": "planetfall.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/planetfall" - }, - "type": "Project", - "path": "/projects/planetfall", - "slug": "planetfall" - }, - "documentHash": "1679826085197", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/qstash.mdx": { - "document": { - "published": true, - "title": "QStash", - "description": "QStash is a fully managed serverless queue and messaging service designed for the serverless era.", - "date": "2022-07-18T00:00:00.000Z", - "url": "https://upstash.com/qstash", - "body": { - "raw": "\nQStash is an HTTP based messaging and scheduling solution for the serverless and edge runtimes.\n\n- 100% serverless, no stateful connections required. Messages are pushed to your API.\n- At-least-once delivery guaranteed to any public API\n- Pubsub via topics\n- Delay message delivery\n- Message deduplication\n- Scheduling via CRON\n\n\nFormally, QStash is a message queue and task scheduler designed for serverless runtimes. Informally, QStash is a glue for your serverless functions.\n\nThere was a perception serverless was only good for simple tasks. Not anymore. People build powerful systems with serverless stack. Powerful systems are composed of multiple components. Communication among those components is a big engineering problem. There are already great solutions for this problem. But we think existing solutions do not fit in serverless space. Either they are too complex or not designed to work with stateless runtimes. So we want a solution which (is):\n\n- Works anywhere including serverless and edge.\n- Messaging as a service with no backend for users to run.\n- Lightweight, easy to understand, requires nothing to learn.\n- Price scales to zero.\n\nLet's talk about a real world example. We have an e-commerce app and we want to send an informational email after each purchase. We have a service (an API route) for new purchases (newPurchase) and a second service for sending emails and notifications (sendEmail). We can call the sendEmail service from the newPurchase service. But what if the call fails? Should we wait for the response and retry? What if too many calls congest the sendEmail service and the service does not respond on time? You need to handle all these cases in your newPurchase service. Moreover, when you change the contract of sendEmail service; you have to update your newPurchase service too.\n\nIf you use QStash in the above example, you simply send a request to QStash from the newPurchase service. QStash will queue the request and call the sendEmail service. If the service does not respond, QStash will retry with a backoff strategy. The latency of sendEmail service will not affect the newPurchase service, because it will not wait for a response from the sendEmail service. QStash decouples the newPurchase and sendEmail services. You can update both services independently as long as you keep the message format compatible.\n\nWith QStash, you can add delays to the requests. Send an email 3 days after the shipment to remind the customer to add a review. You can also schedule tasks. You can send the requests with a CRON expression, so it will be run repetitively.\n\n\nTo learn more about QStash, visit [upstash.com/qstash](upstash.com/qstash).", - "code": "var Component=(()=>{var ur=Object.create;var F=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var lr=Object.getOwnPropertyNames;var fr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var B=(l,t)=>()=>(t||l((t={exports:{}}).exports,t),t.exports),hr=(l,t)=>{for(var v in t)F(l,v,{get:t[v],enumerable:!0})},Ee=(l,t,v,y)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let g of lr(t))!dr.call(l,g)&&g!==v&&F(l,g,{get:()=>t[g],enumerable:!(y=cr(t,g))||y.enumerable});return l};var mr=(l,t,v)=>(v=l!=null?ur(fr(l)):{},Ee(t||!l||!l.__esModule?F(v,\"default\",{value:l,enumerable:!0}):v,l)),br=l=>Ee(F({},\"__esModule\",{value:!0}),l);var we=B((Er,ke)=>{ke.exports=React});var xe=B(z=>{\"use strict\";(function(){\"use strict\";var l=we(),t=Symbol.for(\"react.element\"),v=Symbol.for(\"react.portal\"),y=Symbol.for(\"react.fragment\"),g=Symbol.for(\"react.strict_mode\"),G=Symbol.for(\"react.profiler\"),X=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),T=Symbol.for(\"react.forward_ref\"),U=Symbol.for(\"react.suspense\"),A=Symbol.for(\"react.suspense_list\"),j=Symbol.for(\"react.memo\"),I=Symbol.for(\"react.lazy\"),je=Symbol.for(\"react.offscreen\"),K=Symbol.iterator,Pe=\"@@iterator\";function Se(e){if(e===null||typeof e!=\"object\")return null;var r=K&&e[K]||e[Pe];return typeof r==\"function\"?r:null}var k=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function h(e){{for(var r=arguments.length,n=new Array(r>1?r-1:0),a=1;a=1&&d>=0&&o[f]!==m[d];)d--;for(;f>=1&&d>=0;f--,d--)if(o[f]!==m[d]){if(f!==1||d!==1)do if(f--,d--,d<0||o[f]!==m[d]){var b=`\n`+o[f].replace(\" at new \",\" at \");return e.displayName&&b.includes(\"\")&&(b=b.replace(\"\",e.displayName)),typeof e==\"function\"&&S.set(e,b),b}while(f>=1&&d>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=s}var x=e?e.displayName||e.name:\"\",ye=x?P(x):\"\";return typeof e==\"function\"&&S.set(e,ye),ye}function Ve(e,r,n){return ue(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function C(e,r,n){if(e==null)return\"\";if(typeof e==\"function\")return ue(e,Le(e));if(typeof e==\"string\")return P(e);switch(e){case U:return P(\"Suspense\");case A:return P(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case T:return Ve(e.render);case j:return C(e.type,r,n);case I:{var a=e,s=a._payload,u=a._init;try{return C(u(s),r,n)}catch{}}}return\"\"}var O=Object.prototype.hasOwnProperty,ce={},le=k.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,n=C(e.type,e._source,r?r.type:null);le.setExtraStackFrame(n)}else le.setExtraStackFrame(null)}function qe(e,r,n,a,s){{var u=Function.call.bind(O);for(var i in e)if(u(e,i)){var o=void 0;try{if(typeof e[i]!=\"function\"){var m=Error((a||\"React class\")+\": \"+n+\" type `\"+i+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[i]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw m.name=\"Invariant Violation\",m}o=e[i](r,i,a,n,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){o=f}o&&!(o instanceof Error)&&(D(s),h(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",a||\"React class\",n,i,typeof o),D(null)),o instanceof Error&&!(o.message in ce)&&(ce[o.message]=!0,D(s),h(\"Failed %s type: %s\",n,o.message),D(null))}}}var Qe=Array.isArray;function $(e){return Qe(e)}function Be(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,n=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return n}}function ze(e){try{return fe(e),!1}catch{return!0}}function fe(e){return\"\"+e}function de(e){if(ze(e))return h(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Be(e)),fe(e)}var N=k.ReactCurrentOwner,Ge={key:!0,ref:!0,__self:!0,__source:!0},he,me,V;V={};function Xe(e){if(O.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(O.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Ke(e,r){if(typeof e.ref==\"string\"&&N.current&&r&&N.current.stateNode!==r){var n=p(N.current.type);V[n]||(h('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(N.current.type),e.ref),V[n]=!0)}}function Je(e,r){{var n=function(){he||(he=!0,h(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};n.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:n,configurable:!0})}}function Ze(e,r){{var n=function(){me||(me=!0,h(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};n.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:n,configurable:!0})}}var er=function(e,r,n,a,s,u,i){var o={$$typeof:t,type:e,key:r,ref:n,props:i,_owner:u};return o._store={},Object.defineProperty(o._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(o,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:a}),Object.defineProperty(o,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:s}),Object.freeze&&(Object.freeze(o.props),Object.freeze(o)),o};function rr(e,r,n,a,s){{var u,i={},o=null,m=null;n!==void 0&&(de(n),o=\"\"+n),He(r)&&(de(r.key),o=\"\"+r.key),Xe(r)&&(m=r.ref,Ke(r,s));for(u in r)O.call(r,u)&&!Ge.hasOwnProperty(u)&&(i[u]=r[u]);if(e&&e.defaultProps){var f=e.defaultProps;for(u in f)i[u]===void 0&&(i[u]=f[u])}if(o||m){var d=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;o&&Je(i,d),m&&Ze(i,d)}return er(e,o,m,s,a,N.current,i)}}var L=k.ReactCurrentOwner,be=k.ReactDebugCurrentFrame;function w(e){if(e){var r=e._owner,n=C(e.type,e._source,r?r.type:null);be.setExtraStackFrame(n)}else be.setExtraStackFrame(null)}var q;q=!1;function Q(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===t}function ve(){{if(L.current){var e=p(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function nr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),n=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+n+\".\"}return\"\"}}var pe={};function ar(e){{var r=ve();if(!r){var n=typeof e==\"string\"?e:e.displayName||e.name;n&&(r=`\n\nCheck the top-level render call using <`+n+\">.\")}return r}}function _e(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var n=ar(r);if(pe[n])return;pe[n]=!0;var a=\"\";e&&e._owner&&e._owner!==L.current&&(a=\" It was passed a child from \"+p(e._owner.type)+\".\"),w(e),h('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',n,a),w(null)}}function ge(e,r){{if(typeof e!=\"object\")return;if($(e))for(var n=0;n\",o=\" Did you accidentally export a JSX literal instead of a component?\"):f=typeof e,h(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",f,o)}var d=rr(e,r,n,s,u);if(d==null)return d;if(i){var b=r.children;if(b!==void 0)if(a)if($(b)){for(var x=0;x{\"use strict\";Re.exports=xe()});var gr={};hr(gr,{default:()=>_r,frontmatter:()=>vr});var c=mr(Ne()),vr={title:\"QStash\",description:\"QStash is a fully managed serverless queue and messaging service designed for the serverless era.\",date:\"2022-07-18\",url:\"https://upstash.com/qstash\",published:!0};function Te(l){let t=Object.assign({p:\"p\",ul:\"ul\",li:\"li\",a:\"a\"},l.components);return(0,c.jsxDEV)(c.Fragment,{children:[(0,c.jsxDEV)(t.p,{children:\"QStash is an HTTP based messaging and scheduling solution for the serverless and edge runtimes.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.ul,{children:[`\n`,(0,c.jsxDEV)(t.li,{children:\"100% serverless, no stateful connections required. Messages are pushed to your API.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"At-least-once delivery guaranteed to any public API\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Pubsub via topics\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Delay message delivery\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Message deduplication\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Scheduling via CRON\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:17,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.p,{children:\"Formally, QStash is a message queue and task scheduler designed for serverless runtimes. Informally, QStash is a glue for your serverless functions.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.p,{children:\"There was a perception serverless was only good for simple tasks. Not anymore. People build powerful systems with serverless stack. Powerful systems are composed of multiple components. Communication among those components is a big engineering problem. There are already great solutions for this problem. But we think existing solutions do not fit in serverless space. Either they are too complex or not designed to work with stateless runtimes. So we want a solution which (is):\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:22,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.ul,{children:[`\n`,(0,c.jsxDEV)(t.li,{children:\"Works anywhere including serverless and edge.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:24,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Messaging as a service with no backend for users to run.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:25,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Lightweight, easy to understand, requires nothing to learn.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:26,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Price scales to zero.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:27,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:24,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.p,{children:\"Let's talk about a real world example. We have an e-commerce app and we want to send an informational email after each purchase. We have a service (an API route) for new purchases (newPurchase) and a second service for sending emails and notifications (sendEmail). We can call the sendEmail service from the newPurchase service. But what if the call fails? Should we wait for the response and retry? What if too many calls congest the sendEmail service and the service does not respond on time? You need to handle all these cases in your newPurchase service. Moreover, when you change the contract of sendEmail service; you have to update your newPurchase service too.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:29,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.p,{children:\"If you use QStash in the above example, you simply send a request to QStash from the newPurchase service. QStash will queue the request and call the sendEmail service. If the service does not respond, QStash will retry with a backoff strategy. The latency of sendEmail service will not affect the newPurchase service, because it will not wait for a response from the sendEmail service. QStash decouples the newPurchase and sendEmail services. You can update both services independently as long as you keep the message format compatible.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.p,{children:\"With QStash, you can add delays to the requests. Send an email 3 days after the shipment to remind the customer to add a review. You can also schedule tasks. You can send the requests with a CRON expression, so it will be run repetitively.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:33,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.p,{children:[\"To learn more about QStash, visit \",(0,c.jsxDEV)(t.a,{href:\"upstash.com/qstash\",children:\"upstash.com/qstash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:36,columnNumber:35},this),\".\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:36,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:1,columnNumber:1},this)}function pr(l={}){let{wrapper:t}=l.components||{};return t?(0,c.jsxDEV)(t,Object.assign({},l,{children:(0,c.jsxDEV)(Te,l,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\"},this):Te(l)}var _r=pr;return br(gr);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/qstash.mdx", - "_raw": { - "sourceFilePath": "projects/qstash.mdx", - "sourceFileName": "qstash.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/qstash" - }, - "type": "Project", - "path": "/projects/qstash", - "slug": "qstash" - }, - "documentHash": "1679819571089", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/terraform-provider-vercel.mdx": { - "document": { - "published": true, - "title": "Vercel Terraform Provider", - "description": "A Terraform provider for Vercel. It has been deprecated it when Vercel rolled out their official provider.", - "date": "2021-03-16T00:00:00.000Z", - "url": "https://registry.terraform.io/providers/chronark/vercel/latest", - "repository": "chronark/terraform-provider-vercel", - "body": { - "raw": "\n\n\nBack in the day when Vercel didn't have an official Terraform provider, I wrote one. \nI needed to manage my Vercel projects and especially sync environment variables from different cloud providers.\nTerraform was great to provision some postgres databases on digital ocean, but there was no way to sync the credentials with Vercel.\n\n```hcl\nterraform {\n required_providers {\n vercel = {\n source = \"registry.terraform.io/chronark/vercel\"\n version = \">=0.10.3\"\n }\n }\n}\n\nprovider \"vercel\" {\n token = \"\"\n}\n\nresource \"vercel_project\" \"my_project\" {\n name = \"project-via-terraform\"\n git_repository {\n type = \"github\"\n repo = \"chronark/terraform-provider-vercel\"\n }\n}\n```\n\nIt was a fun project and I learned a lot about Terraform and Vercel's API. \nIt gave me the opportunity to contribute to the Terraform ecosystem and my appreciation for the work that the Terraform team does is immense.\n\nThere have been quite a few individuals and teams that have used this provider and I am happy that it has been useful to you.\n\nNow that Vercel have stepped in, I have decided to [deprecate](https://twitter.com/chronark_/status/1517759708983177218) this one on April 23rd 2022. \n\nPlease use the [official provider](https://registry.terraform.io/providers/vercel/vercel/latest) instead.", - "code": "var Component=(()=>{var ir=Object.create;var S=Object.defineProperty;var lr=Object.getOwnPropertyDescriptor;var ur=Object.getOwnPropertyNames;var dr=Object.getPrototypeOf,mr=Object.prototype.hasOwnProperty;var G=(u,r)=>()=>(r||u((r={exports:{}}).exports,r),r.exports),hr=(u,r)=>{for(var _ in r)S(u,_,{get:r[_],enumerable:!0})},ve=(u,r,_,k)=>{if(r&&typeof r==\"object\"||typeof r==\"function\")for(let y of ur(r))!mr.call(u,y)&&y!==_&&S(u,y,{get:()=>r[y],enumerable:!(k=lr(r,y))||k.enumerable});return u};var fr=(u,r,_)=>(_=u!=null?ir(dr(u)):{},ve(r||!u||!u.__esModule?S(_,\"default\",{value:u,enumerable:!0}):_,u)),br=u=>ve(S({},\"__esModule\",{value:!0}),u);var ge=G((vr,xe)=>{xe.exports=React});var Ee=G(z=>{\"use strict\";(function(){\"use strict\";var u=ge(),r=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),k=Symbol.for(\"react.fragment\"),y=Symbol.for(\"react.strict_mode\"),K=Symbol.for(\"react.profiler\"),X=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),R=Symbol.for(\"react.forward_ref\"),A=Symbol.for(\"react.suspense\"),D=Symbol.for(\"react.suspense_list\"),F=Symbol.for(\"react.memo\"),B=Symbol.for(\"react.lazy\"),Fe=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Te=\"@@iterator\";function we(e){if(e===null||typeof e!=\"object\")return null;var a=J&&e[J]||e[Te];return typeof a==\"function\"?a:null}var x=u.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function h(e){{for(var a=arguments.length,t=new Array(a>1?a-1:0),c=1;c=1&&m>=0&&o[d]!==f[m];)m--;for(;d>=1&&m>=0;d--,m--)if(o[d]!==f[m]){if(d!==1||m!==1)do if(d--,m--,m<0||o[d]!==f[m]){var b=`\n`+o[d].replace(\" at new \",\" at \");return e.displayName&&b.includes(\"\")&&(b=b.replace(\"\",e.displayName)),typeof e==\"function\"&&w.set(e,b),b}while(d>=1&&m>=0);break}}}finally{Y=!1,I.current=l,Ye(),Error.prepareStackTrace=i}var E=e?e.displayName||e.name:\"\",ke=E?T(E):\"\";return typeof e==\"function\"&&w.set(e,ke),ke}function We(e,a,t){return ie(e,!1)}function Me(e){var a=e.prototype;return!!(a&&a.isReactComponent)}function C(e,a,t){if(e==null)return\"\";if(typeof e==\"function\")return ie(e,Me(e));if(typeof e==\"string\")return T(e);switch(e){case A:return T(\"Suspense\");case D:return T(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case R:return We(e.render);case F:return C(e.type,a,t);case B:{var c=e,i=c._payload,l=c._init;try{return C(l(i),a,t)}catch{}}}return\"\"}var O=Object.prototype.hasOwnProperty,le={},ue=x.ReactDebugCurrentFrame;function P(e){if(e){var a=e._owner,t=C(e.type,e._source,a?a.type:null);ue.setExtraStackFrame(t)}else ue.setExtraStackFrame(null)}function Le(e,a,t,c,i){{var l=Function.call.bind(O);for(var s in e)if(l(e,s)){var o=void 0;try{if(typeof e[s]!=\"function\"){var f=Error((c||\"React class\")+\": \"+t+\" type `\"+s+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[s]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw f.name=\"Invariant Violation\",f}o=e[s](a,s,c,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(d){o=d}o&&!(o instanceof Error)&&(P(i),h(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",c||\"React class\",t,s,typeof o),P(null)),o instanceof Error&&!(o.message in le)&&(le[o.message]=!0,P(i),h(\"Failed %s type: %s\",t,o.message),P(null))}}}var qe=Array.isArray;function $(e){return qe(e)}function Ge(e){{var a=typeof Symbol==\"function\"&&Symbol.toStringTag,t=a&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return de(e),!1}catch{return!0}}function de(e){return\"\"+e}function me(e){if(ze(e))return h(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Ge(e)),de(e)}var U=x.ReactCurrentOwner,Ke={key:!0,ref:!0,__self:!0,__source:!0},he,fe,W;W={};function Xe(e){if(O.call(e,\"ref\")){var a=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(a&&a.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(O.call(e,\"key\")){var a=Object.getOwnPropertyDescriptor(e,\"key\").get;if(a&&a.isReactWarning)return!1}return e.key!==void 0}function Je(e,a){if(typeof e.ref==\"string\"&&U.current&&a&&U.current.stateNode!==a){var t=p(U.current.type);W[t]||(h('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(U.current.type),e.ref),W[t]=!0)}}function Ze(e,a){{var t=function(){he||(he=!0,h(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,a){{var t=function(){fe||(fe=!0,h(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,a,t,c,i,l,s){var o={$$typeof:r,type:e,key:a,ref:t,props:s,_owner:l};return o._store={},Object.defineProperty(o._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(o,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:c}),Object.defineProperty(o,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(o.props),Object.freeze(o)),o};function rr(e,a,t,c,i){{var l,s={},o=null,f=null;t!==void 0&&(me(t),o=\"\"+t),He(a)&&(me(a.key),o=\"\"+a.key),Xe(a)&&(f=a.ref,Je(a,i));for(l in a)O.call(a,l)&&!Ke.hasOwnProperty(l)&&(s[l]=a[l]);if(e&&e.defaultProps){var d=e.defaultProps;for(l in d)s[l]===void 0&&(s[l]=d[l])}if(o||f){var m=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;o&&Ze(s,m),f&&Qe(s,m)}return er(e,o,f,i,c,U.current,s)}}var M=x.ReactCurrentOwner,be=x.ReactDebugCurrentFrame;function g(e){if(e){var a=e._owner,t=C(e.type,e._source,a?a.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var L;L=!1;function q(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===r}function _e(){{if(M.current){var e=p(M.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function nr(e){{if(e!==void 0){var a=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+a+\":\"+t+\".\"}return\"\"}}var pe={};function ar(e){{var a=_e();if(!a){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(a=`\n\nCheck the top-level render call using <`+t+\">.\")}return a}}function Ne(e,a){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=ar(a);if(pe[t])return;pe[t]=!0;var c=\"\";e&&e._owner&&e._owner!==M.current&&(c=\" It was passed a child from \"+p(e._owner.type)+\".\"),g(e),h('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,c),g(null)}}function ye(e,a){{if(typeof e!=\"object\")return;if($(e))for(var t=0;t\",o=\" Did you accidentally export a JSX literal instead of a component?\"):d=typeof e,h(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",d,o)}var m=rr(e,a,t,i,l);if(m==null)return m;if(s){var b=a.children;if(b!==void 0)if(c)if($(b)){for(var E=0;E{\"use strict\";je.exports=Ee()});var yr={};hr(yr,{default:()=>Nr,frontmatter:()=>_r});var n=fr(Ue()),_r={title:\"Vercel Terraform Provider\",description:\"A Terraform provider for Vercel. It has been deprecated it when Vercel rolled out their official provider.\",date:\"2021-03-16\",repository:\"chronark/terraform-provider-vercel\",url:\"https://registry.terraform.io/providers/chronark/vercel/latest\",published:!0};function Re(u){let r=Object.assign({p:\"p\",div:\"div\",pre:\"pre\",code:\"code\",span:\"span\",a:\"a\"},u.components);return(0,n.jsxDEV)(n.Fragment,{children:[(0,n.jsxDEV)(r.p,{children:`Back in the day when Vercel didn't have an official Terraform provider, I wrote one.\nI needed to manage my Vercel projects and especially sync environment variables from different cloud providers.\nTerraform was great to provision some postgres databases on digital ocean, but there was no way to sync the credentials with Vercel.`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(r.pre,{\"data-language\":\"hcl\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(r.code,{\"data-language\":\"hcl\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"terraform\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:1,columnNumber:149},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"required_providers\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:2,columnNumber:58},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:2,columnNumber:112},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:3,columnNumber:66},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:3,columnNumber:103},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:3,columnNumber:140},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:3,columnNumber:177},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" source \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:4,columnNumber:70},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:4,columnNumber:107},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"registry.terraform.io/chronark/vercel\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:4,columnNumber:144},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" version \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:5,columnNumber:70},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:5,columnNumber:107},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\">=0.10.3\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:5,columnNumber:144},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"provider\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:10,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:10,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:'\"vercel\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:10,columnNumber:101},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:10,columnNumber:155},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" token\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:11,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:11,columnNumber:63},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:11,columnNumber:100},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:11,columnNumber:137},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:11,columnNumber:174},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:12,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"resource\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:'\"vercel_project\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:101},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:163},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:'\"my_project\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:200},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:258},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" name\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:15,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:15,columnNumber:62},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:15,columnNumber:99},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:15,columnNumber:136},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"project-via-terraform\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:15,columnNumber:173},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:16,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"git_repository\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:16,columnNumber:58},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:16,columnNumber:108},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" type\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:17,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:17,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:17,columnNumber:101},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:17,columnNumber:138},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"github\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:17,columnNumber:175},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" repo\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:18,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:18,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:18,columnNumber:101},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:18,columnNumber:138},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"chronark/terraform-provider-vercel\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:18,columnNumber:175},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:19,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:20,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:20,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:`It was a fun project and I learned a lot about Terraform and Vercel's API.\nIt gave me the opportunity to contribute to the Terraform ecosystem and my appreciation for the work that the Terraform team does is immense.`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:39,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:\"There have been quite a few individuals and teams that have used this provider and I am happy that it has been useful to you.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:42,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[\"Now that Vercel have stepped in, I have decided to \",(0,n.jsxDEV)(r.a,{href:\"https://twitter.com/chronark_/status/1517759708983177218\",children:\"deprecate\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:44,columnNumber:52},this),\" this one on April 23rd 2022.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:44,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[\"Please use the \",(0,n.jsxDEV)(r.a,{href:\"https://registry.terraform.io/providers/vercel/vercel/latest\",children:\"official provider\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:46,columnNumber:16},this),\" instead.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:46,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:1,columnNumber:1},this)}function pr(u={}){let{wrapper:r}=u.components||{};return r?(0,n.jsxDEV)(r,Object.assign({},u,{children:(0,n.jsxDEV)(Re,u,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\"},this):Re(u)}var Nr=pr;return br(yr);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/terraform-provider-vercel.mdx", - "_raw": { - "sourceFilePath": "projects/terraform-provider-vercel.mdx", - "sourceFileName": "terraform-provider-vercel.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/terraform-provider-vercel" - }, - "type": "Project", - "path": "/projects/terraform-provider-vercel", - "slug": "terraform-provider-vercel" - }, - "documentHash": "1679819574612", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-auth-analytics.mdx": { - "document": { - "title": "Upstash Auth Analytics", - "description": "A library to record and analyse Auth.js user behaviour", - "url": "https://console.upstash.com/ratelimit", - "repository": "upstash/auth-analytics", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var A=Object.defineProperty;var fr=Object.getOwnPropertyDescriptor;var cr=Object.getOwnPropertyNames;var lr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,f)=>()=>(f||s((f={exports:{}}).exports,f),f.exports),vr=(s,f)=>{for(var h in f)A(s,h,{get:f[h],enumerable:!0})},_e=(s,f,h,E)=>{if(f&&typeof f==\"object\"||typeof f==\"function\")for(let m of cr(f))!dr.call(s,m)&&m!==h&&A(s,m,{get:()=>f[m],enumerable:!(E=fr(f,m))||E.enumerable});return s};var pr=(s,f,h)=>(h=s!=null?sr(lr(s)):{},_e(f||!s||!s.__esModule?A(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(A({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),f=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&l>=0&&a[c]!==v[l];)l--;for(;c>=1&&l>=0;c--,l--)if(a[c]!==v[l]){if(c!==1||l!==1)do if(c--,l--,l<0||a[c]!==v[l]){var p=`\n`+a[c].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(c>=1&&l>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,fe={},ce=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);ce.setExtraStackFrame(t)}else ce.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(c){a=c}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in fe)&&(fe[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return le(e),!1}catch{return!0}}function le(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),le(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=b(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',b(O.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:f,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var c=e.defaultProps;for(u in c)o[u]===void 0&&(o[u]=c[u])}if(a||v){var l=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,l),v&&Qe(o,l)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===f}function be(){{if(L.current){var e=b(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=be();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+b(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):c=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",c,a)}var l=rr(e,r,t,i,u);if(l==null)return l;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>br});var F=pr(we()),br={title:\"Upstash Auth Analytics\",description:\"A library to record and analyse Auth.js user behaviour\",url:\"https://console.upstash.com/ratelimit\",repository:\"upstash/auth-analytics\"};function Pe(s){let f=Object.assign({p:\"p\"},s.components);return(0,F.jsxDEV)(f.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e491d153-3318-4404-b9cc-ddf66fe9f45f.mdx\",lineNumber:8,columnNumber:1},this)}function gr(s={}){let{wrapper:f}=s.components||{};return f?(0,F.jsxDEV)(f,Object.assign({},s,{children:(0,F.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e491d153-3318-4404-b9cc-ddf66fe9f45f.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e491d153-3318-4404-b9cc-ddf66fe9f45f.mdx\"},this):Pe(s)}var mr=gr;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-auth-analytics.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-auth-analytics.mdx", - "sourceFileName": "upstash-auth-analytics.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-auth-analytics" - }, - "type": "Project", - "path": "/projects/upstash-auth-analytics", - "slug": "upstash-auth-analytics" - }, - "documentHash": "1679820070900", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-cli.mdx": { - "document": { - "published": true, - "title": "@upstash/cli", - "description": "A CLI to provision and manage Upstash resources, including Redis and Kafka databases.", - "date": "2022-05-16T00:00:00.000Z", - "url": "https://upstash.com/cli", - "repository": "upstash/cli", - "body": { - "raw": "\n\nManage Upstash resources in your terminal or CI.\n\n![](https://raw.githubusercontent.com/upstash/cli/main/img/banner.svg)\n\n![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/upstash/cli)\n[![Downloads/week](https://img.shields.io/npm/dw/lstr.svg)](https://npmjs.org/package/@upstash/cli)\n\n# Installation\n\n## npm\n\nYou can install upstash's cli directly from npm\n\n```bash\nnpm i -g @upstash/cli\n```\n\nIt will be added as `upstash` to your system's path.\n\n## Compiled binaries:\n\n`upstash` is also available from the\n[releases page](https://github.com/upstash/upstash-cli/releases/latest) compiled\nfor windows, linux and mac (both intel and m1).\n\n# Usage\n\n```bash\n> upstash\n\n Usage: upstash \n Version: development\n\n Description:\n\n Official cli for Upstash products\n\n Options:\n\n -h, --help - Show this help. \n -V, --version - Show the version number for this program. \n -c, --config - Path to .upstash.json file\n\n Commands:\n\n auth - Login and logout \n redis - Manage redis database instances \n kafka - Manage kafka clusters and topics \n team - Manage your teams and their members\n\n Environment variables:\n\n UPSTASH_EMAIL - The email you use on upstash\n UPSTASH_API_KEY - The api key from upstash\n```\n\n## Authentication\n\nWhen running `upstash` for the first time, you should log in using\n`upstash auth login`. Provide your email and an api key.\n[See here for how to get a key.](https://docs.upstash.com/redis/howto/developerapi#api-development)\n\nAs an alternative to logging in, you can provide `UPSTASH_EMAIL` and\n`UPSTASH_API_KEY` as environment variables.\n\n## Usage\n\nLet's create a new redis database:\n\n```\n> upstash redis create --name=my-db --region=eu-west-1\n Database has been created\n\n database_id a3e25299-132a-45b9-b026-c73f5a807859\n database_name my-db\n database_type Pay as You Go\n region eu-west-1\n type paid\n port 37090\n creation_time 1652687630\n state active\n password 88ae6392a1084d1186a3da37fb5f5a30\n user_email andreas@upstash.com\n endpoint eu1-magnetic-lacewing-37090.upstash.io\n edge false\n multizone false\n rest_token AZDiASQgYTNlMjUyOTktMTMyYS00NWI5LWIwMjYtYzczZjVhODA3ODU5ODhhZTYzOTJhMTA4NGQxMTg2YTNkYTM3ZmI1ZjVhMzA=\n read_only_rest_token ApDiASQgYTNlMjUyOTktMTMyYS00NWI5LWIwMjYtYzczZjVhODA3ODU5O_InFjRVX1XHsaSjq1wSerFCugZ8t8O1aTfbF6Jhq1I=\n\n\n You can visit your database details page: https://console.upstash.com/redis/a3e25299-132a-45b9-b026-c73f5a807859\n\n Connect to your database with redis-cli: redis-cli -u redis://88ae6392a1084d1186a3da37fb5f5a30@eu1-magnetic-lacewing-37090.upstash.io:37090\n```\n\n## Output\n\nMost commands support the `--json` flag to return the raw api response as json,\nwhich you can parse and automate your system.\n\n```bash\n> upstash redis create --name=test2113 --region=us-central1 --json | jq '.endpoint'\n\n \"gusc1-clean-gelding-30208.upstash.io\"\n```\n", - "code": "var Component=(()=>{var d=Object.create;var c=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,F=Object.prototype.hasOwnProperty;var m=(n,l)=>()=>(l||n((l={exports:{}}).exports,l),l.exports),u=(n,l)=>{for(var s in l)c(n,s,{get:l[s],enumerable:!0})},o=(n,l,s,r)=>{if(l&&typeof l==\"object\"||typeof l==\"function\")for(let a of p(l))!F.call(n,a)&&a!==s&&c(n,a,{get:()=>l[a],enumerable:!(r=E(l,a))||r.enumerable});return n};var B=(n,l,s)=>(s=n!=null?d(y(n)):{},o(l||!n||!n.__esModule?c(s,\"default\",{value:n,enumerable:!0}):s,n)),g=n=>o(c({},\"__esModule\",{value:!0}),n);var t=m((v,i)=>{i.exports=_jsx_runtime});var N={};u(N,{default:()=>f,frontmatter:()=>C});var e=B(t()),C={title:\"@upstash/cli\",description:\"A CLI to provision and manage Upstash resources, including Redis and Kafka databases.\",date:\"2022-05-16\",url:\"https://upstash.com/cli\",repository:\"upstash/cli\",published:!0};function h(n){let l=Object.assign({p:\"p\",img:\"img\",a:\"a\",h1:\"h1\",span:\"span\",h2:\"h2\",div:\"div\",pre:\"pre\",code:\"code\"},n.components);return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(l.p,{children:\"Manage Upstash resources in your terminal or CI.\"}),`\n`,(0,e.jsx)(l.p,{children:(0,e.jsx)(l.img,{src:\"https://raw.githubusercontent.com/upstash/cli/main/img/banner.svg\",alt:\"\"})}),`\n`,(0,e.jsxs)(l.p,{children:[(0,e.jsx)(l.img,{src:\"https://img.shields.io/github/v/release/upstash/cli\",alt:\"GitHub release (latest SemVer)\"}),`\n`,(0,e.jsx)(l.a,{href:\"https://npmjs.org/package/@upstash/cli\",children:(0,e.jsx)(l.img,{src:\"https://img.shields.io/npm/dw/lstr.svg\",alt:\"Downloads/week\"})})]}),`\n`,(0,e.jsxs)(l.h1,{id:\"installation\",children:[(0,e.jsx)(l.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#installation\",children:(0,e.jsx)(l.span,{className:\"icon icon-link\"})}),\"Installation\"]}),`\n`,(0,e.jsxs)(l.h2,{id:\"npm\",children:[(0,e.jsx)(l.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#npm\",children:(0,e.jsx)(l.span,{className:\"icon icon-link\"})}),\"npm\"]}),`\n`,(0,e.jsx)(l.p,{children:\"You can install upstash's cli directly from npm\"}),`\n`,(0,e.jsx)(l.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,e.jsx)(l.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,e.jsx)(l.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"npm\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"i\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#79B8FF\"},children:\"-g\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"@upstash/cli\"})]})})})}),`\n`,(0,e.jsxs)(l.p,{children:[\"It will be added as \",(0,e.jsx)(l.code,{children:\"upstash\"}),\" to your system's path.\"]}),`\n`,(0,e.jsxs)(l.h2,{id:\"compiled-binaries\",children:[(0,e.jsx)(l.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#compiled-binaries\",children:(0,e.jsx)(l.span,{className:\"icon icon-link\"})}),\"Compiled binaries:\"]}),`\n`,(0,e.jsxs)(l.p,{children:[(0,e.jsx)(l.code,{children:\"upstash\"}),` is also available from the\n`,(0,e.jsx)(l.a,{href:\"https://github.com/upstash/upstash-cli/releases/latest\",children:\"releases page\"}),` compiled\nfor windows, linux and mac (both intel and m1).`]}),`\n`,(0,e.jsxs)(l.h1,{id:\"usage\",children:[(0,e.jsx)(l.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#usage\",children:(0,e.jsx)(l.span,{className:\"icon icon-link\"})}),\"Usage\"]}),`\n`,(0,e.jsx)(l.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,e.jsx)(l.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,e.jsxs)(l.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:[(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\">\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" upstash\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"Usage:\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"upstash\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"})]}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"Version:\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"development\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"Description:\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"Official\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"cli\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"for\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"Upstash\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"products\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"Options:\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"-h,\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#79B8FF\"},children:\"--help\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"-\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"Show\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"this\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"help.\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"})]}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"-V,\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#79B8FF\"},children:\"--version\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"-\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"Show\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"the\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"version\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"number\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"for\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"this\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"program.\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"})]}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"-c,\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#79B8FF\"},children:\"--config\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\"<\"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"strin\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\"g\"}),(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\">\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"-\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"Path\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"to\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\".upstash.json\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"file\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"Commands:\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"auth\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"-\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"Login\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"and\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"logout\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"})]}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"redis\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"-\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"Manage\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"redis\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"database\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"instances\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"})]}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"kafka\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"-\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"Manage\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"kafka\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"clusters\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"and\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"topics\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"})]}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"team\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"-\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"Manage\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"your\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"teams\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"and\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"their\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"members\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"Environment\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"variables:\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"UPSTASH_EMAIL\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\"<\"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"strin\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\"g\"}),(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\">\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"-\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"The\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"email\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"you\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"use\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"on\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"upstash\"})]}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"UPSTASH_API_KEY\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\"<\"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"strin\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\"g\"}),(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\">\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"-\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"The\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"api\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"key\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"from\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"upstash\"})]})]})})}),`\n`,(0,e.jsxs)(l.h2,{id:\"authentication\",children:[(0,e.jsx)(l.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#authentication\",children:(0,e.jsx)(l.span,{className:\"icon icon-link\"})}),\"Authentication\"]}),`\n`,(0,e.jsxs)(l.p,{children:[\"When running \",(0,e.jsx)(l.code,{children:\"upstash\"}),` for the first time, you should log in using\n`,(0,e.jsx)(l.code,{children:\"upstash auth login\"}),`. Provide your email and an api key.\n`,(0,e.jsx)(l.a,{href:\"https://docs.upstash.com/redis/howto/developerapi#api-development\",children:\"See here for how to get a key.\"})]}),`\n`,(0,e.jsxs)(l.p,{children:[\"As an alternative to logging in, you can provide \",(0,e.jsx)(l.code,{children:\"UPSTASH_EMAIL\"}),` and\n`,(0,e.jsx)(l.code,{children:\"UPSTASH_API_KEY\"}),\" as environment variables.\"]}),`\n`,(0,e.jsxs)(l.h2,{id:\"usage-1\",children:[(0,e.jsx)(l.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#usage-1\",children:(0,e.jsx)(l.span,{className:\"icon icon-link\"})}),\"Usage\"]}),`\n`,(0,e.jsx)(l.p,{children:\"Let's create a new redis database:\"}),`\n`,(0,e.jsx)(l.pre,{children:(0,e.jsx)(l.code,{children:`> upstash redis create --name=my-db --region=eu-west-1\n Database has been created\n\n database_id a3e25299-132a-45b9-b026-c73f5a807859\n database_name my-db\n database_type Pay as You Go\n region eu-west-1\n type paid\n port 37090\n creation_time 1652687630\n state active\n password 88ae6392a1084d1186a3da37fb5f5a30\n user_email andreas@upstash.com\n endpoint eu1-magnetic-lacewing-37090.upstash.io\n edge false\n multizone false\n rest_token AZDiASQgYTNlMjUyOTktMTMyYS00NWI5LWIwMjYtYzczZjVhODA3ODU5ODhhZTYzOTJhMTA4NGQxMTg2YTNkYTM3ZmI1ZjVhMzA=\n read_only_rest_token ApDiASQgYTNlMjUyOTktMTMyYS00NWI5LWIwMjYtYzczZjVhODA3ODU5O_InFjRVX1XHsaSjq1wSerFCugZ8t8O1aTfbF6Jhq1I=\n\n\n You can visit your database details page: https://console.upstash.com/redis/a3e25299-132a-45b9-b026-c73f5a807859\n\n Connect to your database with redis-cli: redis-cli -u redis://88ae6392a1084d1186a3da37fb5f5a30@eu1-magnetic-lacewing-37090.upstash.io:37090\n`})}),`\n`,(0,e.jsxs)(l.h2,{id:\"output\",children:[(0,e.jsx)(l.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#output\",children:(0,e.jsx)(l.span,{className:\"icon icon-link\"})}),\"Output\"]}),`\n`,(0,e.jsxs)(l.p,{children:[\"Most commands support the \",(0,e.jsx)(l.code,{children:\"--json\"}),` flag to return the raw api response as json,\nwhich you can parse and automate your system.`]}),`\n`,(0,e.jsx)(l.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,e.jsx)(l.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,e.jsxs)(l.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:[(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\">\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" upstash redis create --name\"}),(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"test2113\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" --region\"}),(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"us-central1\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" --json \"}),(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\"|\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"jq\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"'.endpoint'\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:' \"gusc1-clean-gelding-30208.upstash.io\"'})})]})})})]})}function b(n={}){let{wrapper:l}=n.components||{};return l?(0,e.jsx)(l,Object.assign({},n,{children:(0,e.jsx)(h,n)})):h(n)}var f=b;return g(N);})();\n;return Component;" - }, - "_id": "projects/upstash-cli.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-cli.mdx", - "sourceFileName": "upstash-cli.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-cli" - }, - "type": "Project", - "path": "/projects/upstash-cli", - "slug": "upstash-cli" - }, - "documentHash": "1679830227494", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-core-analytics.mdx": { - "document": { - "published": true, - "title": "Upstash Core Analytics", - "description": "Low level utilities to build analytics tools on top of Redis.", - "date": "2023-02-13T00:00:00.000Z", - "url": "https://console.upstash.com/ratelimit", - "repository": "upstash/core-analytics", - "body": { - "raw": "\n\nThis library offers some low level building blocks to record and analyze custom events in Redis.\nIt's main purpose is to provide a simple way to record and query events in Redis without having to worry about the underlying data structure so we can build more advanced analytics features on top of it.\n\n## Quickstart\n\n\n1. Create a redis database\n\nGo to [console.upstash.com/redis](https://console.upstash.com/redis) and create\na new global database.\n\nAfter creating the db, copy the `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN` to your `.env` file.\n\n3. Install `@upstash/analytics` in your project\n\n```bash\nnpm install @upstash/analytics @upstash/redis\n```\n\n4. Create an analytics client\n\n```ts\nimport { Analytyics } from \"@upstash/analytics\";\nimport { Redis } from \"@upstash/redis\";\n\nconst analytics = new Analytics({\n redis: Redis.fromEnv(),\n window: \"1d\",\n});\n```\n\n\n5. Ingest some events\n\nAn event consists of a `time` field and any additional key-value pairs that you can use to record any information you want.\n\n```ts\nconst event = {\n time: Date.now() // optional (default: Date.now())\n userId: \"chronark\",\n page: \"/auth/login\",\n country: \"DE\",\n}\n\nawait analytics.ingest(\"pageviews\", event);\n```\n\n4. Query your events\n\n```ts\n\nconst result = await analytics.query(\"pageviews\");\n\n```\n\n## Development\n\nThis project uses `pnpm` for dependency management.\n\n#### Install dependencies\n\n```bash\npnpm install\n```\n\n#### Build\n\n```bash\npnpm build\n```\n\n\n## Database Schema\n\nAll metrics are stored in Redis `Hash` data types and sharded into buckets based on the `window` option.\n```\n@upstash/analytics:{TABLE}:{TIMESTAMP}\n```\n- `TABLE` is a namespace to group events together. ie for managing multiple projects int a single database\n- `TIMESTAMP` is the starting timestamp of each window\n\nThe field of each hash is a serialized JSON object with the user's event data and the value is the number of times this event has been recorded.\n\n```json\n{\n '{\"page\": \"/auth/login\",\"country\": \"DE\"}': 5,\n '{\"page\": \"/auth/login\",\"country\": \"US\"}': 2\n}\n```\n", - "code": "var Component=(()=>{var cn=Object.create;var P=Object.defineProperty;var ln=Object.getOwnPropertyDescriptor;var mn=Object.getOwnPropertyNames;var un=Object.getPrototypeOf,hn=Object.prototype.hasOwnProperty;var z=(l,e)=>()=>(e||l((e={exports:{}}).exports,e),e.exports),fn=(l,e)=>{for(var _ in e)P(l,_,{get:e[_],enumerable:!0})},xe=(l,e,_,y)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let k of mn(e))!hn.call(l,k)&&k!==_&&P(l,k,{get:()=>e[k],enumerable:!(y=ln(e,k))||y.enumerable});return l};var bn=(l,e,_)=>(_=l!=null?cn(un(l)):{},xe(e||!l||!l.__esModule?P(_,\"default\",{value:l,enumerable:!0}):_,l)),_n=l=>xe(P({},\"__esModule\",{value:!0}),l);var Ee=z((gn,ge)=>{ge.exports=React});var je=z(G=>{\"use strict\";(function(){\"use strict\";var l=Ee(),e=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),y=Symbol.for(\"react.fragment\"),k=Symbol.for(\"react.strict_mode\"),H=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),X=Symbol.for(\"react.context\"),F=Symbol.for(\"react.forward_ref\"),D=Symbol.for(\"react.suspense\"),A=Symbol.for(\"react.suspense_list\"),R=Symbol.for(\"react.memo\"),B=Symbol.for(\"react.lazy\"),Re=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Te=\"@@iterator\";function Ce(n){if(n===null||typeof n!=\"object\")return null;var a=J&&n[J]||n[Te];return typeof a==\"function\"?a:null}var g=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function h(n){{for(var a=arguments.length,t=new Array(a>1?a-1:0),o=1;o=1&&u>=0&&s[m]!==f[u];)u--;for(;m>=1&&u>=0;m--,u--)if(s[m]!==f[u]){if(m!==1||u!==1)do if(m--,u--,u<0||s[m]!==f[u]){var b=`\n`+s[m].replace(\" at new \",\" at \");return n.displayName&&b.includes(\"\")&&(b=b.replace(\"\",n.displayName)),typeof n==\"function\"&&C.set(n,b),b}while(m>=1&&u>=0);break}}}finally{M=!1,I.current=c,Me(),Error.prepareStackTrace=i}var j=n?n.displayName||n.name:\"\",ye=j?T(j):\"\";return typeof n==\"function\"&&C.set(n,ye),ye}function $e(n,a,t){return ie(n,!1)}function We(n){var a=n.prototype;return!!(a&&a.isReactComponent)}function w(n,a,t){if(n==null)return\"\";if(typeof n==\"function\")return ie(n,We(n));if(typeof n==\"string\")return T(n);switch(n){case D:return T(\"Suspense\");case A:return T(\"SuspenseList\")}if(typeof n==\"object\")switch(n.$$typeof){case F:return $e(n.render);case R:return w(n.type,a,t);case B:{var o=n,i=o._payload,c=o._init;try{return w(c(i),a,t)}catch{}}}return\"\"}var S=Object.prototype.hasOwnProperty,ce={},le=g.ReactDebugCurrentFrame;function O(n){if(n){var a=n._owner,t=w(n.type,n._source,a?a.type:null);le.setExtraStackFrame(t)}else le.setExtraStackFrame(null)}function Ve(n,a,t,o,i){{var c=Function.call.bind(S);for(var d in n)if(c(n,d)){var s=void 0;try{if(typeof n[d]!=\"function\"){var f=Error((o||\"React class\")+\": \"+t+\" type `\"+d+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof n[d]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw f.name=\"Invariant Violation\",f}s=n[d](a,d,o,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(m){s=m}s&&!(s instanceof Error)&&(O(i),h(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",o||\"React class\",t,d,typeof s),O(null)),s instanceof Error&&!(s.message in ce)&&(ce[s.message]=!0,O(i),h(\"Failed %s type: %s\",t,s.message),O(null))}}}var qe=Array.isArray;function Y(n){return qe(n)}function ze(n){{var a=typeof Symbol==\"function\"&&Symbol.toStringTag,t=a&&n[Symbol.toStringTag]||n.constructor.name||\"Object\";return t}}function Ge(n){try{return me(n),!1}catch{return!0}}function me(n){return\"\"+n}function ue(n){if(Ge(n))return h(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",ze(n)),me(n)}var v=g.ReactCurrentOwner,He={key:!0,ref:!0,__self:!0,__source:!0},he,fe,$;$={};function Ke(n){if(S.call(n,\"ref\")){var a=Object.getOwnPropertyDescriptor(n,\"ref\").get;if(a&&a.isReactWarning)return!1}return n.ref!==void 0}function Xe(n){if(S.call(n,\"key\")){var a=Object.getOwnPropertyDescriptor(n,\"key\").get;if(a&&a.isReactWarning)return!1}return n.key!==void 0}function Je(n,a){if(typeof n.ref==\"string\"&&v.current&&a&&v.current.stateNode!==a){var t=p(v.current.type);$[t]||(h('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(v.current.type),n.ref),$[t]=!0)}}function Qe(n,a){{var t=function(){he||(he=!0,h(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(n,\"key\",{get:t,configurable:!0})}}function Ze(n,a){{var t=function(){fe||(fe=!0,h(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(n,\"ref\",{get:t,configurable:!0})}}var en=function(n,a,t,o,i,c,d){var s={$$typeof:e,type:n,key:a,ref:t,props:d,_owner:c};return s._store={},Object.defineProperty(s._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(s,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(s,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(s.props),Object.freeze(s)),s};function nn(n,a,t,o,i){{var c,d={},s=null,f=null;t!==void 0&&(ue(t),s=\"\"+t),Xe(a)&&(ue(a.key),s=\"\"+a.key),Ke(a)&&(f=a.ref,Je(a,i));for(c in a)S.call(a,c)&&!He.hasOwnProperty(c)&&(d[c]=a[c]);if(n&&n.defaultProps){var m=n.defaultProps;for(c in m)d[c]===void 0&&(d[c]=m[c])}if(s||f){var u=typeof n==\"function\"?n.displayName||n.name||\"Unknown\":n;s&&Qe(d,u),f&&Ze(d,u)}return en(n,s,f,i,o,v.current,d)}}var W=g.ReactCurrentOwner,be=g.ReactDebugCurrentFrame;function E(n){if(n){var a=n._owner,t=w(n.type,n._source,a?a.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var V;V=!1;function q(n){return typeof n==\"object\"&&n!==null&&n.$$typeof===e}function _e(){{if(W.current){var n=p(W.current.type);if(n)return`\n\nCheck the render method of \\``+n+\"`.\"}return\"\"}}function rn(n){{if(n!==void 0){var a=n.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=n.lineNumber;return`\n\nCheck your code at `+a+\":\"+t+\".\"}return\"\"}}var pe={};function an(n){{var a=_e();if(!a){var t=typeof n==\"string\"?n:n.displayName||n.name;t&&(a=`\n\nCheck the top-level render call using <`+t+\">.\")}return a}}function Ne(n,a){{if(!n._store||n._store.validated||n.key!=null)return;n._store.validated=!0;var t=an(a);if(pe[t])return;pe[t]=!0;var o=\"\";n&&n._owner&&n._owner!==W.current&&(o=\" It was passed a child from \"+p(n._owner.type)+\".\"),E(n),h('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,o),E(null)}}function ke(n,a){{if(typeof n!=\"object\")return;if(Y(n))for(var t=0;t\",s=\" Did you accidentally export a JSX literal instead of a component?\"):m=typeof n,h(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",m,s)}var u=nn(n,a,t,i,c);if(u==null)return u;if(d){var b=a.children;if(b!==void 0)if(o)if(Y(b)){for(var j=0;j{\"use strict\";Ue.exports=je()});var yn={};fn(yn,{default:()=>kn,frontmatter:()=>pn});var r=bn(ve()),pn={title:\"Upstash Core Analytics\",description:\"Low level utilities to build analytics tools on top of Redis.\",date:\"2023-02-13\",url:\"https://console.upstash.com/ratelimit\",repository:\"upstash/core-analytics\",published:!0};function Fe(l){let e=Object.assign({p:\"p\",h2:\"h2\",a:\"a\",span:\"span\",ol:\"ol\",li:\"li\",code:\"code\",div:\"div\",pre:\"pre\",h4:\"h4\",ul:\"ul\"},l.components);return(0,r.jsxDEV)(r.Fragment,{children:[(0,r.jsxDEV)(e.p,{children:`This library offers some low level building blocks to record and analyze custom events in Redis.\nIt's main purpose is to provide a simple way to record and query events in Redis without having to worry about the underlying data structure so we can build more advanced analytics features on top of it.`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h2,{id:\"quickstart\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#quickstart\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this),\"Quickstart\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ol,{children:[`\n`,(0,r.jsxDEV)(e.li,{children:\"Create a redis database\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:18,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:[\"Go to \",(0,r.jsxDEV)(e.a,{href:\"https://console.upstash.com/redis\",children:\"console.upstash.com/redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:20,columnNumber:7},this),` and create\na new global database.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:[\"After creating the db, copy the \",(0,r.jsxDEV)(e.code,{children:\"UPSTASH_REDIS_REST_URL\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:23,columnNumber:33},this),\" and \",(0,r.jsxDEV)(e.code,{children:\"UPSTASH_REDIS_REST_TOKEN\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:23,columnNumber:62},this),\" to your \",(0,r.jsxDEV)(e.code,{children:\".env\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:23,columnNumber:97},this),\" file.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:23,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ol,{start:\"3\",children:[`\n`,(0,r.jsxDEV)(e.li,{children:[\"Install \",(0,r.jsxDEV)(e.code,{children:\"@upstash/analytics\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:25,columnNumber:12},this),\" in your project\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:25,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:25,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"npm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:104},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:143},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"install\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:180},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:223},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"@upstash/analytics\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:260},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:314},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"@upstash/redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:351},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:27,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ol,{start:\"4\",children:[`\n`,(0,r.jsxDEV)(e.li,{children:\"Create an analytics client\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:31,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:104},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" { Analytyics } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:146},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:198},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:238},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"@upstash/analytics\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:275},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\";\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:341},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" { Redis } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:62},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:109},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:149},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"@upstash/redis\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:186},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\";\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:248},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"analytics\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:143},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:180},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:217},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"new\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:254},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:293},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"Analytics\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:330},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:375},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis: Redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:5,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"fromEnv\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:5,columnNumber:71},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(),\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:5,columnNumber:114},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" window: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:6,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"1d\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:6,columnNumber:66},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:6,columnNumber:116},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"});\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:7,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:33,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ol,{start:\"5\",children:[`\n`,(0,r.jsxDEV)(e.li,{children:\"Ingest some events\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:44,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:44,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:[\"An event consists of a \",(0,r.jsxDEV)(e.code,{children:\"time\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:46,columnNumber:24},this),\" field and any additional key-value pairs that you can use to record any information you want.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:46,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:104},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:145},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"event\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:182},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:223},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:260},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:297},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" time: Date.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"now\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:69},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"() \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:108},this),(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// optional (default: Date.now())\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:147},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" userId: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"chronark\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:66},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:122},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" page: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"/auth/login\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:64},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:123},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" country: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:5,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"DE\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:5,columnNumber:67},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:5,columnNumber:117},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:8,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" analytics.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:8,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"ingest\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:8,columnNumber:108},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:8,columnNumber:150},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"pageviews\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:8,columnNumber:187},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", event);\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:8,columnNumber:244},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:8,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:48,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ol,{start:\"4\",children:[`\n`,(0,r.jsxDEV)(e.li,{children:\"Query your events\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:59,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:59,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"result\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:140},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:177},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:214},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:251},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" analytics.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:292},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"query\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:339},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:380},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"pageviews\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:417},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\");\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:474},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:61,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h2,{id:\"development\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#development\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this),\"Development\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:67,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:[\"This project uses \",(0,r.jsxDEV)(e.code,{children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:69,columnNumber:19},this),\" for dependency management.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:69,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h4,{id:\"install-dependencies\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#install-dependencies\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this),\"Install dependencies\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:71,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:104},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:144},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"install\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:181},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:73,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h4,{id:\"build\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#build\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this),\"Build\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:77,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:104},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:144},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"build\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:181},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:79,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h2,{id:\"database-schema\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#database-schema\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this),\"Database Schema\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:84,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:[\"All metrics are stored in Redis \",(0,r.jsxDEV)(e.code,{children:\"Hash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:86,columnNumber:33},this),\" data types and sharded into buckets based on the \",(0,r.jsxDEV)(e.code,{children:\"window\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:86,columnNumber:89},this),\" option.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:86,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.pre,{children:(0,r.jsxDEV)(e.code,{children:`@upstash/analytics:{TABLE}:{TIMESTAMP}\n`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:87,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:87,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ul,{children:[`\n`,(0,r.jsxDEV)(e.li,{children:[(0,r.jsxDEV)(e.code,{children:\"TABLE\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:90,columnNumber:3},this),\" is a namespace to group events together. ie for managing multiple projects int a single database\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:90,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:[(0,r.jsxDEV)(e.code,{children:\"TIMESTAMP\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:91,columnNumber:3},this),\" is the starting timestamp of each window\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:91,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:90,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:\"The field of each hash is a serialized JSON object with the user's event data and the value is the number of times this event has been recorded.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:93,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"json\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"json\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FDAEB7\",fontStyle:\"italic\"},children:\"'{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:'\"page\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:120},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:172},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"/auth/login\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:210},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:269},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:'\"country\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:306},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:361},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"DE\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:399},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"}': \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:449},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"5\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:493},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:530},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" '{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:'\"page\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:64},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:116},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"/auth/login\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:154},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:213},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:'\"country\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:250},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:305},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"US\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:343},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"}': \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:393},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"2\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:437},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:95,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:1},this)}function Nn(l={}){let{wrapper:e}=l.components||{};return e?(0,r.jsxDEV)(e,Object.assign({},l,{children:(0,r.jsxDEV)(Fe,l,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this):Fe(l)}var kn=Nn;return _n(yn);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-core-analytics.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-core-analytics.mdx", - "sourceFileName": "upstash-core-analytics.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-core-analytics" - }, - "type": "Project", - "path": "/projects/upstash-core-analytics", - "slug": "upstash-core-analytics" - }, - "documentHash": "1679831865461", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-edge-flags.mdx": { - "document": { - "published": true, - "title": "@upstash/edge-flags", - "description": "Featues flags for your edge functions.", - "date": "2022-12-12T00:00:00.000Z", - "url": "https://upstash.com/edge-flags", - "repository": "upstash/edge-flags", - "body": { - "raw": "\n\nWhether you want to ship without breaking things, run A/B tests or just want to test in production,\nfeature flags are a great way to dynamically change the behaviour of your app without redeploying. We're excited to announce the public\nbeta release of our new feature flagging library: [@upstash/edge-flags](https://github.com/upstash/edge-flags).\n\n*Edge Flags*, as the name implies, is a feature flag solution built to run at the edge. It is using [Upstash Redis](https://upstash.com/), a globally replicated serverless Redis service, to store configuration and is \ndesigned to work with [Next.js](https://nextjs.org) and [Vercel](https://vercel.com). We want to support other frameworks in the future, so if you have a suggestion, please let us know!\n\nWith the ability to toggle features on and off at the edge, you can quickly respond\nto user feedback and optimize the user experience. Whether you are looking to\nperform A/B testing, gradually roll out a new feature, or simply have the\nability to turn things off in case of an issue, our feature flagging library has\nyou covered.\n\n\n\n## Reference\n\nCheck out the full announcement on [upstash.com](https://upstash.com/blog/edge-flags-beta) for more details.", - "code": "var Component=(()=>{var c=Object.create;var r=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty;var m=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),y=(t,e)=>{for(var a in e)r(t,a,{get:e[a],enumerable:!0})},i=(t,e,a,o)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let s of d(e))!p.call(t,s)&&s!==a&&r(t,s,{get:()=>e[s],enumerable:!(o=g(e,s))||o.enumerable});return t};var b=(t,e,a)=>(a=t!=null?c(f(t)):{},i(e||!t||!t.__esModule?r(a,\"default\",{value:t,enumerable:!0}):a,t)),w=t=>i(r({},\"__esModule\",{value:!0}),t);var l=m((W,h)=>{h.exports=_jsx_runtime});var v={};y(v,{default:()=>k,frontmatter:()=>x});var n=b(l()),x={title:\"@upstash/edge-flags\",description:\"Featues flags for your edge functions.\",date:\"2022-12-12\",url:\"https://upstash.com/edge-flags\",repository:\"upstash/edge-flags\",published:!0};function u(t){let e=Object.assign({p:\"p\",a:\"a\",em:\"em\",h2:\"h2\",span:\"span\"},t.components);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(e.p,{children:[`Whether you want to ship without breaking things, run A/B tests or just want to test in production,\nfeature flags are a great way to dynamically change the behaviour of your app without redeploying. We're excited to announce the public\nbeta release of our new feature flagging library: `,(0,n.jsx)(e.a,{href:\"https://github.com/upstash/edge-flags\",children:\"@upstash/edge-flags\"}),\".\"]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.em,{children:\"Edge Flags\"}),\", as the name implies, is a feature flag solution built to run at the edge. It is using \",(0,n.jsx)(e.a,{href:\"https://upstash.com/\",children:\"Upstash Redis\"}),`, a globally replicated serverless Redis service, to store configuration and is\ndesigned to work with `,(0,n.jsx)(e.a,{href:\"https://nextjs.org\",children:\"Next.js\"}),\" and \",(0,n.jsx)(e.a,{href:\"https://vercel.com\",children:\"Vercel\"}),\". We want to support other frameworks in the future, so if you have a suggestion, please let us know!\"]}),`\n`,(0,n.jsx)(e.p,{children:`With the ability to toggle features on and off at the edge, you can quickly respond\nto user feedback and optimize the user experience. Whether you are looking to\nperform A/B testing, gradually roll out a new feature, or simply have the\nability to turn things off in case of an issue, our feature flagging library has\nyou covered.`}),`\n`,(0,n.jsxs)(e.h2,{id:\"reference\",children:[(0,n.jsx)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#reference\",children:(0,n.jsx)(e.span,{className:\"icon icon-link\"})}),\"Reference\"]}),`\n`,(0,n.jsxs)(e.p,{children:[\"Check out the full announcement on \",(0,n.jsx)(e.a,{href:\"https://upstash.com/blog/edge-flags-beta\",children:\"upstash.com\"}),\" for more details.\"]})]})}function j(t={}){let{wrapper:e}=t.components||{};return e?(0,n.jsx)(e,Object.assign({},t,{children:(0,n.jsx)(u,t)})):u(t)}var k=j;return w(v);})();\n;return Component;" - }, - "_id": "projects/upstash-edge-flags.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-edge-flags.mdx", - "sourceFileName": "upstash-edge-flags.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-edge-flags" - }, - "type": "Project", - "path": "/projects/upstash-edge-flags", - "slug": "upstash-edge-flags" - }, - "documentHash": "1679830323463", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-kafka.mdx": { - "document": { - "published": true, - "title": "@upstash/kafka", - "description": "A fully typed Kafka client built for Upstash Kafka and HTTP, perfect for serverless and edge runtimes", - "date": "2022-01-08T00:00:00.000Z", - "url": "https://upstash.com/kafka", - "repository": "upstash/upstash-kafka", - "body": { - "raw": "\n\nAn HTTP/REST based Kafka client built on top of\n[Upstash REST API](https://docs.upstash.com/kafka/rest).\n\nIt is the only connectionless (HTTP based) Kafka client and designed for:\n\n- Serverless functions (AWS Lambda ...)\n- Cloudflare Workers (see the example)\n- Fastly Compute@Edge\n- Next.js Edge, Remix ...\n- Client side web/mobile applications\n- WebAssembly and other environments where HTTP is preferred over TCP\n connections.\n\n# Installation\n\n```bash\nnpm install @upstash/kafka\n```\n\n# Quickstart\n\n## Auth\n\n1. Go to [upstash](https://console.upstash.com/kafka) and select your database.\n2. Copy the `REST API` secrets at the bottom of the page\n\n```typescript\nimport { Kafka } from \"@upstash/kafka\"\n\nconst kafka = new Kafka({\n url: \"\",\n username: \"\",\n password: \"\",\n})\n```\n\n## Produce a single message\n\n```typescript\nconst p = kafka.producer()\nconst message = { hello: \"world\" } // Objects will get serialized using `JSON.stringify`\nconst res = await p.produce(\"\", message)\nconst res = await p.produce(\"\", message, {\n partition: 1,\n timestamp: 12345,\n key: \"\",\n headers: [{ key: \"traceId\", value: \"85a9f12\" }],\n})\n```\n\n## Produce multiple messages.\n\nThe same options from the example above can be set for every message.\n\n```typescript\nconst p = kafka.producer()\nconst res = await p.produceMany([\n {\n topic: \"my.topic\",\n value: { hello: \"world\" },\n // ...options\n },\n {\n topic: \"another.topic\",\n value: \"another message\",\n // ...options\n },\n])\n```\n\n## Consume\n\nThe first time a consumer is created, it needs to figure out the group\ncoordinator by asking the Kafka brokers and joins the consumer group. This\nprocess takes some time to complete. That's why when a consumer instance is\ncreated first time, it may return empty messages until consumer group\ncoordination is completed.\n\n```typescript\nconst c = kafka.consumer()\nconst messages = await c.consume({\n consumerGroupId: \"group_1\",\n instanceId: \"instance_1\",\n topics: [\"test.topic\"],\n autoOffsetReset: \"earliest\",\n})\n```\n\nMore examples can be found in the\n[docstring](https://github.com/upstash/upstash-kafka/blob/main/pkg/consumer.ts#L265)\n\n## Commit manually\n\nWhile `consume` can handle committing automatically, you can also use\n`Consumer.commit` to manually commit.\n\n```typescript\nconst consumerGroupId = \"mygroup\"\nconst instanceId = \"myinstance\"\nconst topic = \"my.topic\"\n\nconst c = kafka.consumer()\nconst messages = await c.consume({\n consumerGroupId,\n instanceId,\n topics: [topic],\n autoCommit: false,\n})\n\nfor (const message of messages) {\n // message handling logic\n\n await c.commit({\n consumerGroupId,\n instanceId,\n offset: {\n topic: message.topic,\n partition: message.partition,\n offset: message.offset,\n },\n })\n}\n```\n\n## Fetch\n\nYou can also manage offsets manually by using `Consumer.fetch`\n\n```typescript\nconst c = kafka.consumer()\nconst messages = await c.fetch({\n topic: \"greeting\",\n partition: 3,\n offset: 42,\n timeout: 1000,\n})\n```\n\n## Examples\n\nSee [/examples](https://github.com/upstash/upstash-kafka/tree/main/examples) as\nwell as various examples in the docstrings of each method.\n\n# Contributing\n\n## Requirements\n\n- [nodejs](https://nodejs.org) v14.x or higher\n- [pnpm](https://pnpm.io/installation)\n\n## Setup\n\n0. Install dependencies using `pnpm install`\n1. Create a kafka instance on upstash.\n [docs](https://docs.upstash.com/kafka#create-a-kafka-cluster)\n2. Create the following topics: `blue`, `red`, `green`.\n [docs](https://docs.upstash.com/kafka#create-a-topic)\n\n The partitions or retention settings don't matter at this time.\n\n3. Create `.env` file with your kafka secrets `cp .env.example .env`\n\n## Running tests\n\n```bash\npnpm test\n```\n", - "code": "var Component=(()=>{var dn=Object.create;var P=Object.defineProperty;var mn=Object.getOwnPropertyDescriptor;var ln=Object.getOwnPropertyNames;var bn=Object.getPrototypeOf,un=Object.prototype.hasOwnProperty;var G=(m,e)=>()=>(e||m((e={exports:{}}).exports,e),e.exports),hn=(m,e)=>{for(var _ in e)P(m,_,{get:e[_],enumerable:!0})},ye=(m,e,_,x)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let k of ln(e))!un.call(m,k)&&k!==_&&P(m,k,{get:()=>e[k],enumerable:!(x=mn(e,k))||x.enumerable});return m};var fn=(m,e,_)=>(_=m!=null?dn(bn(m)):{},ye(e||!m||!m.__esModule?P(_,\"default\",{value:m,enumerable:!0}):_,m)),_n=m=>ye(P({},\"__esModule\",{value:!0}),m);var Ee=G((gn,ge)=>{ge.exports=React});var je=G(q=>{\"use strict\";(function(){\"use strict\";var m=Ee(),e=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),x=Symbol.for(\"react.fragment\"),k=Symbol.for(\"react.strict_mode\"),H=Symbol.for(\"react.profiler\"),z=Symbol.for(\"react.provider\"),X=Symbol.for(\"react.context\"),F=Symbol.for(\"react.forward_ref\"),O=Symbol.for(\"react.suspense\"),A=Symbol.for(\"react.suspense_list\"),C=Symbol.for(\"react.memo\"),D=Symbol.for(\"react.lazy\"),Ce=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Re=\"@@iterator\";function Te(r){if(r===null||typeof r!=\"object\")return null;var a=J&&r[J]||r[Re];return typeof a==\"function\"?a:null}var g=m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function u(r){{for(var a=arguments.length,t=new Array(a>1?a-1:0),o=1;o=1&&b>=0&&s[l]!==h[b];)b--;for(;l>=1&&b>=0;l--,b--)if(s[l]!==h[b]){if(l!==1||b!==1)do if(l--,b--,b<0||s[l]!==h[b]){var f=`\n`+s[l].replace(\" at new \",\" at \");return r.displayName&&f.includes(\"\")&&(f=f.replace(\"\",r.displayName)),typeof r==\"function\"&&T.set(r,f),f}while(l>=1&&b>=0);break}}}finally{W=!1,I.current=i,We(),Error.prepareStackTrace=d}var j=r?r.displayName||r.name:\"\",xe=j?R(j):\"\";return typeof r==\"function\"&&T.set(r,xe),xe}function Me(r,a,t){return de(r,!1)}function $e(r){var a=r.prototype;return!!(a&&a.isReactComponent)}function w(r,a,t){if(r==null)return\"\";if(typeof r==\"function\")return de(r,$e(r));if(typeof r==\"string\")return R(r);switch(r){case O:return R(\"Suspense\");case A:return R(\"SuspenseList\")}if(typeof r==\"object\")switch(r.$$typeof){case F:return Me(r.render);case C:return w(r.type,a,t);case D:{var o=r,d=o._payload,i=o._init;try{return w(i(d),a,t)}catch{}}}return\"\"}var S=Object.prototype.hasOwnProperty,ie={},me=g.ReactDebugCurrentFrame;function B(r){if(r){var a=r._owner,t=w(r.type,r._source,a?a.type:null);me.setExtraStackFrame(t)}else me.setExtraStackFrame(null)}function Ve(r,a,t,o,d){{var i=Function.call.bind(S);for(var c in r)if(i(r,c)){var s=void 0;try{if(typeof r[c]!=\"function\"){var h=Error((o||\"React class\")+\": \"+t+\" type `\"+c+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof r[c]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw h.name=\"Invariant Violation\",h}s=r[c](a,c,o,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(l){s=l}s&&!(s instanceof Error)&&(B(d),u(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",o||\"React class\",t,c,typeof s),B(null)),s instanceof Error&&!(s.message in ie)&&(ie[s.message]=!0,B(d),u(\"Failed %s type: %s\",t,s.message),B(null))}}}var Ke=Array.isArray;function Y(r){return Ke(r)}function Ge(r){{var a=typeof Symbol==\"function\"&&Symbol.toStringTag,t=a&&r[Symbol.toStringTag]||r.constructor.name||\"Object\";return t}}function qe(r){try{return le(r),!1}catch{return!0}}function le(r){return\"\"+r}function be(r){if(qe(r))return u(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Ge(r)),le(r)}var v=g.ReactCurrentOwner,He={key:!0,ref:!0,__self:!0,__source:!0},ue,he,M;M={};function ze(r){if(S.call(r,\"ref\")){var a=Object.getOwnPropertyDescriptor(r,\"ref\").get;if(a&&a.isReactWarning)return!1}return r.ref!==void 0}function Xe(r){if(S.call(r,\"key\")){var a=Object.getOwnPropertyDescriptor(r,\"key\").get;if(a&&a.isReactWarning)return!1}return r.key!==void 0}function Je(r,a){if(typeof r.ref==\"string\"&&v.current&&a&&v.current.stateNode!==a){var t=p(v.current.type);M[t]||(u('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(v.current.type),r.ref),M[t]=!0)}}function Qe(r,a){{var t=function(){ue||(ue=!0,u(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(r,\"key\",{get:t,configurable:!0})}}function Ze(r,a){{var t=function(){he||(he=!0,u(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(r,\"ref\",{get:t,configurable:!0})}}var en=function(r,a,t,o,d,i,c){var s={$$typeof:e,type:r,key:a,ref:t,props:c,_owner:i};return s._store={},Object.defineProperty(s._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(s,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(s,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:d}),Object.freeze&&(Object.freeze(s.props),Object.freeze(s)),s};function nn(r,a,t,o,d){{var i,c={},s=null,h=null;t!==void 0&&(be(t),s=\"\"+t),Xe(a)&&(be(a.key),s=\"\"+a.key),ze(a)&&(h=a.ref,Je(a,d));for(i in a)S.call(a,i)&&!He.hasOwnProperty(i)&&(c[i]=a[i]);if(r&&r.defaultProps){var l=r.defaultProps;for(i in l)c[i]===void 0&&(c[i]=l[i])}if(s||h){var b=typeof r==\"function\"?r.displayName||r.name||\"Unknown\":r;s&&Qe(c,b),h&&Ze(c,b)}return en(r,s,h,d,o,v.current,c)}}var $=g.ReactCurrentOwner,fe=g.ReactDebugCurrentFrame;function E(r){if(r){var a=r._owner,t=w(r.type,r._source,a?a.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}var V;V=!1;function K(r){return typeof r==\"object\"&&r!==null&&r.$$typeof===e}function _e(){{if($.current){var r=p($.current.type);if(r)return`\n\nCheck the render method of \\``+r+\"`.\"}return\"\"}}function rn(r){{if(r!==void 0){var a=r.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=r.lineNumber;return`\n\nCheck your code at `+a+\":\"+t+\".\"}return\"\"}}var pe={};function an(r){{var a=_e();if(!a){var t=typeof r==\"string\"?r:r.displayName||r.name;t&&(a=`\n\nCheck the top-level render call using <`+t+\">.\")}return a}}function Ne(r,a){{if(!r._store||r._store.validated||r.key!=null)return;r._store.validated=!0;var t=an(a);if(pe[t])return;pe[t]=!0;var o=\"\";r&&r._owner&&r._owner!==$.current&&(o=\" It was passed a child from \"+p(r._owner.type)+\".\"),E(r),u('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,o),E(null)}}function ke(r,a){{if(typeof r!=\"object\")return;if(Y(r))for(var t=0;t\",s=\" Did you accidentally export a JSX literal instead of a component?\"):l=typeof r,u(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",l,s)}var b=nn(r,a,t,d,i);if(b==null)return b;if(c){var f=a.children;if(f!==void 0)if(o)if(Y(f)){for(var j=0;j{\"use strict\";Ue.exports=je()});var xn={};hn(xn,{default:()=>kn,frontmatter:()=>pn});var n=fn(ve()),pn={title:\"@upstash/kafka\",description:\"A fully typed Kafka client built for Upstash Kafka and HTTP, perfect for serverless and edge runtimes\",date:\"2022-01-08\",url:\"https://upstash.com/kafka\",repository:\"upstash/upstash-kafka\",published:!0};function Fe(m){let e=Object.assign({p:\"p\",a:\"a\",ul:\"ul\",li:\"li\",h1:\"h1\",span:\"span\",div:\"div\",pre:\"pre\",code:\"code\",h2:\"h2\",ol:\"ol\"},m.components);return(0,n.jsxDEV)(n.Fragment,{children:[(0,n.jsxDEV)(e.p,{children:[`An HTTP/REST based Kafka client built on top of\n`,(0,n.jsxDEV)(e.a,{href:\"https://docs.upstash.com/kafka/rest\",children:\"Upstash REST API\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:1},this),\".\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:\"It is the only connectionless (HTTP based) Kafka client and designed for:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.ul,{children:[`\n`,(0,n.jsxDEV)(e.li,{children:\"Serverless functions (AWS Lambda ...)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"Cloudflare Workers (see the example)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"Fastly Compute@Edge\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"Next.js Edge, Remix ...\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"Client side web/mobile applications\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:21,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:`WebAssembly and other environments where HTTP is preferred over TCP\nconnections.`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:22,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h1,{id:\"installation\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#installation\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Installation\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:25,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"npm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:143},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"install\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:180},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:223},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"@upstash/kafka\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:260},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:27,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h1,{id:\"quickstart\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#quickstart\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Quickstart\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"auth\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#auth\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Auth\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:33,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.ol,{children:[`\n`,(0,n.jsxDEV)(e.li,{children:[\"Go to \",(0,n.jsxDEV)(e.a,{href:\"https://console.upstash.com/kafka\",children:\"upstash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:35,columnNumber:10},this),\" and select your database.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:[\"Copy the \",(0,n.jsxDEV)(e.code,{children:\"REST API\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:36,columnNumber:13},this),\" secrets at the bottom of the page\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:36,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" { Kafka } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:146},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:193},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:233},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"@upstash/kafka\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:270},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"kafka\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:139},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:176},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:213},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"new\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:250},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:289},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"Kafka\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:326},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:367},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" url: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:63},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:141},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" username: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:68},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:151},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" password: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:68},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:151},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:38,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"produce-a-single-message\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#produce-a-single-message\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Produce a single message\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:48,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:145},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"p\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:182},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:219},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:256},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:293},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"producer\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:336},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:380},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"message\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:141},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:178},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" { hello: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:215},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"world\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:261},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:314},this),(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// Objects will get serialized using `JSON.stringify`\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:353},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"res\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:137},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:174},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:211},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:248},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" p.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:289},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"produce\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:328},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:371},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:408},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", message)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:472},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"res\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:137},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:174},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:211},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:248},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" p.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:289},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"produce\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:328},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:371},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:408},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", message, {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:472},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" partition: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:69},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:106},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" timestamp: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"12345\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:69},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" key: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:63},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:129},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" headers: [{ key: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"traceId\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:75},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", value: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:130},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"85a9f12\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:175},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" }],\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:230},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:50,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"produce-multiple-messages\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#produce-multiple-messages\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Produce multiple messages.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:62,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:\"The same options from the example above can be set for every message.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:64,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:145},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"p\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:182},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:219},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:256},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:293},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"producer\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:336},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:380},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"res\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:137},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:174},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:211},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:248},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" p.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:289},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"produceMany\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:328},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"([\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:375},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topic: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"my.topic\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:67},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:123},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" value: { hello: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"world\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:76},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" },\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:129},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// ...options\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:60},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" },\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topic: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"another.topic\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:67},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:128},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" value: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"another message\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:67},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:130},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:11,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// ...options\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:11,columnNumber:60},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" },\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:12,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"])\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:66,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"consume\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#consume\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Consume\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:`The first time a consumer is created, it needs to figure out the group\ncoordinator by asking the Kafka brokers and joins the consumer group. This\nprocess takes some time to complete. That's why when a consumer instance is\ncreated first time, it may return empty messages until consumer group\ncoordination is completed.`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:84,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:145},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"c\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:182},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:219},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:256},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:293},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"consumer\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:336},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:380},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"messages\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:142},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:179},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:216},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:253},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" c.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:294},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"consume\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:333},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:376},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" consumerGroupId: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"group_1\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:75},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:130},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" instanceId: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"instance_1\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:70},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:128},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topics: [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"test.topic\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:67},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"],\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:125},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" autoOffsetReset: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"earliest\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:75},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:131},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:90,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:[`More examples can be found in the\n`,(0,n.jsxDEV)(e.a,{href:\"https://github.com/upstash/upstash-kafka/blob/main/pkg/consumer.ts#L265\",children:\"docstring\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:101,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:100,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"commit-manually\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#commit-manually\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Commit manually\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:103,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:[\"While \",(0,n.jsxDEV)(e.code,{children:\"consume\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:105,columnNumber:7},this),` can handle committing automatically, you can also use\n`,(0,n.jsxDEV)(e.code,{children:\"Consumer.commit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:106,columnNumber:1},this),\" to manually commit.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:105,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:145},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"consumerGroupId\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:182},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:233},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:270},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:307},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"mygroup\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:344},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"instanceId\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:144},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:181},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:218},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"myinstance\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:255},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"topic\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:139},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:176},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:213},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"my.topic\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:250},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"c\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:135},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:172},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:209},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"consumer\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:252},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:296},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"messages\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:142},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:179},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:216},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:253},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" c.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:294},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"consume\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:333},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:376},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" consumerGroupId,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" instanceId,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topics: [topic],\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" autoCommit: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"false\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:70},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:111},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:11,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"for\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" (\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:59},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:97},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:138},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"message\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:175},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:218},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"of\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:255},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" messages) {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:293},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:14,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// message handling logic\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:14,columnNumber:58},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:16,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:16,columnNumber:58},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" c.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:16,columnNumber:99},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"commit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:16,columnNumber:138},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:16,columnNumber:180},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" consumerGroupId,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:17,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" instanceId,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:18,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" offset: {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:19,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topic: message.topic,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:20,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" partition: message.partition,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:21,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:21,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" offset: message.offset,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:22,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:22,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" },\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:23,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:23,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" })\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:24,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:24,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:25,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:25,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:108,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"fetch\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#fetch\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Fetch\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:136,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:[\"You can also manage offsets manually by using \",(0,n.jsxDEV)(e.code,{children:\"Consumer.fetch\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:138,columnNumber:47},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:138,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:145},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"c\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:182},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:219},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:256},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:293},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"consumer\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:336},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:380},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"messages\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:142},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:179},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:216},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:253},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" c.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:294},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"fetch\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:333},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:374},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topic: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"greeting\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:65},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:121},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" partition: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"3\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:69},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:106},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" offset: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"42\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:66},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:104},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" timeout: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"1000\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:67},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:107},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:140,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"examples\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#examples\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Examples\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:150,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:[\"See \",(0,n.jsxDEV)(e.a,{href:\"https://github.com/upstash/upstash-kafka/tree/main/examples\",children:\"/examples\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:152,columnNumber:5},this),` as\nwell as various examples in the docstrings of each method.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:152,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h1,{id:\"contributing\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#contributing\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Contributing\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:155,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"requirements\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#requirements\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Requirements\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:157,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.ul,{children:[`\n`,(0,n.jsxDEV)(e.li,{children:[(0,n.jsxDEV)(e.a,{href:\"https://nodejs.org\",children:\"nodejs\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:159,columnNumber:3},this),\" v14.x or higher\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:159,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:(0,n.jsxDEV)(e.a,{href:\"https://pnpm.io/installation\",children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:160,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:160,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:159,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"setup\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#setup\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Setup\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:162,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.ol,{start:\"0\",children:[`\n`,(0,n.jsxDEV)(e.li,{children:[`\n`,(0,n.jsxDEV)(e.p,{children:[\"Install dependencies using \",(0,n.jsxDEV)(e.code,{children:\"pnpm install\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:164,columnNumber:31},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:164,columnNumber:4},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:164,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:[`\n`,(0,n.jsxDEV)(e.p,{children:[`Create a kafka instance on upstash.\n`,(0,n.jsxDEV)(e.a,{href:\"https://docs.upstash.com/kafka#create-a-kafka-cluster\",children:\"docs\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:166,columnNumber:4},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:165,columnNumber:4},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:165,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:[`\n`,(0,n.jsxDEV)(e.p,{children:[\"Create the following topics: \",(0,n.jsxDEV)(e.code,{children:\"blue\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:167,columnNumber:33},this),\", \",(0,n.jsxDEV)(e.code,{children:\"red\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:167,columnNumber:41},this),\", \",(0,n.jsxDEV)(e.code,{children:\"green\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:167,columnNumber:48},this),`.\n`,(0,n.jsxDEV)(e.a,{href:\"https://docs.upstash.com/kafka#create-a-topic\",children:\"docs\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:168,columnNumber:4},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:167,columnNumber:4},this),`\n`,(0,n.jsxDEV)(e.p,{children:\"The partitions or retention settings don't matter at this time.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:170,columnNumber:4},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:167,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:[`\n`,(0,n.jsxDEV)(e.p,{children:[\"Create \",(0,n.jsxDEV)(e.code,{children:\".env\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:172,columnNumber:11},this),\" file with your kafka secrets \",(0,n.jsxDEV)(e.code,{children:\"cp .env.example .env\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:172,columnNumber:47},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:172,columnNumber:4},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:172,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:164,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"running-tests\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#running-tests\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Running tests\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:174,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:144},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"test\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:181},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:176,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)}function Nn(m={}){let{wrapper:e}=m.components||{};return e?(0,n.jsxDEV)(e,Object.assign({},m,{children:(0,n.jsxDEV)(Fe,m,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this):Fe(m)}var kn=Nn;return _n(xn);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-kafka.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-kafka.mdx", - "sourceFileName": "upstash-kafka.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-kafka" - }, - "type": "Project", - "path": "/projects/upstash-kafka", - "slug": "upstash-kafka" - }, - "documentHash": "1679819588795", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-qstash-sdk.mdx": { - "document": { - "published": true, - "title": "@upstash/qstash", - "description": "A typescript client and consumer for QStash.", - "date": "2022-07-18T00:00:00.000Z", - "url": "https://upstash.com/qstash", - "repository": "upstash/sdk-qstash-ts", - "body": { - "raw": "\n\n@upstash/qstash is the official client and consumer for [QStash](https://chronark.com/projects/qstash).\n\nQStash is the message broker between your serverless apps. You send an HTTP\nrequest to QStash, that includes a destination, a payload and optional settings.\nWe durably store your message and will deliver it to the destination API via\nHTTP. In case the destination is not ready to receive the message, we will retry\nthe message later, to guarentee at-least-once delivery.\n\n```bash\nnpm install @upstash/qstash\n```\n", - "code": "var Component=(()=>{var h=Object.create;var r=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var m=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var g=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),f=(t,e)=>{for(var a in e)r(t,a,{get:e[a],enumerable:!0})},i=(t,e,a,o)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let n of u(e))!y.call(t,n)&&n!==a&&r(t,n,{get:()=>e[n],enumerable:!(o=p(e,n))||o.enumerable});return t};var x=(t,e,a)=>(a=t!=null?h(m(t)):{},i(e||!t||!t.__esModule?r(a,\"default\",{value:t,enumerable:!0}):a,t)),b=t=>i(r({},\"__esModule\",{value:!0}),t);var c=g((_,l)=>{l.exports=_jsx_runtime});var q={};f(q,{default:()=>E,frontmatter:()=>j});var s=x(c()),j={title:\"@upstash/qstash\",description:\"A typescript client and consumer for QStash.\",date:\"2022-07-18\",url:\"https://upstash.com/qstash\",repository:\"upstash/sdk-qstash-ts\",published:!0};function d(t){let e=Object.assign({p:\"p\",a:\"a\",div:\"div\",pre:\"pre\",code:\"code\",span:\"span\"},t.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(e.p,{children:[\"@upstash/qstash is the official client and consumer for \",(0,s.jsx)(e.a,{href:\"https://chronark.com/projects/qstash\",children:\"QStash\"}),\".\"]}),`\n`,(0,s.jsx)(e.p,{children:`QStash is the message broker between your serverless apps. You send an HTTP\nrequest to QStash, that includes a destination, a payload and optional settings.\nWe durably store your message and will deliver it to the destination API via\nHTTP. In case the destination is not ready to receive the message, we will retry\nthe message later, to guarentee at-least-once delivery.`}),`\n`,(0,s.jsx)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,s.jsx)(e.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,s.jsx)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,s.jsxs)(e.span,{className:\"line\",children:[(0,s.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"npm\"}),(0,s.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,s.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"install\"}),(0,s.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,s.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"@upstash/qstash\"})]})})})})]})}function v(t={}){let{wrapper:e}=t.components||{};return e?(0,s.jsx)(e,Object.assign({},t,{children:(0,s.jsx)(d,t)})):d(t)}var E=v;return b(q);})();\n;return Component;" - }, - "_id": "projects/upstash-qstash-sdk.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-qstash-sdk.mdx", - "sourceFileName": "upstash-qstash-sdk.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-qstash-sdk" - }, - "type": "Project", - "path": "/projects/upstash-qstash-sdk", - "slug": "upstash-qstash-sdk" - }, - "documentHash": "1679830397516", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-ratelimit.mdx": { - "document": { - "published": true, - "title": "@upstash/ratelimit", - "description": "Ratelimiting library for serverless and edge runtimes. Built on top of Upstash Redis.", - "date": "2022-06-06T00:00:00.000Z", - "url": "https://upstash.com/ratelimit", - "repository": "upstash/ratelimit", - "body": { - "raw": "\nIn today's digital age, serverless computing has become increasingly popular due to its scalability and cost-efficiency. One of the challenges of serverless computing is to manage resources efficiently, and one critical aspect of this is rate limiting. Rate limiting is a technique that limits the number of requests a client can make to a server over a given period. This technique can prevent abuse, improve performance, and reduce costs. One npm package that helps implement rate limiting for serverless applications is @upstash/ratelimit, built on top of Upstash Redis.\n\nUpstash is a managed Redis-compatible database service designed for serverless applications.\n\n`@upstash/ratelimit` is an npm package that provides serverless rate limiting using Upstash Redis. The package offers a simple API that can be used to limit the number of requests a client can make within a given time frame. The following algorithms are supported:\n\n- Fixed window\n- Sliding window\n- Leaky bucket\n\n\nUsing `@upstash/ratelimit` is straightforward. First, you need to install the package using npm:\n\n```bash\nnpm install @upstash/ratelimit @upstash/redis\n```\nThen, you can use it in your application:\n\n```ts\nimport { Ratelimit } from \"@upstash/ratelimit\"\nimport { Redis } from \"@upstash/redis\"\n\nconst ratelimit = new Ratelimit({\n redis: new Redis({\n url: \"\",\n token: \"\"\n }),\n limiter: Ratelimit.slidingWindow(10, \"10s\"),\n analytics: true\n})\n\n\n// Check if the client has exceeded the rate limit\nconst { success } = await ratelimit.limit(\"identifier\")\n```\n\nIn the code above, we initialize Upstash with our Upstash Redis credentials and define our rate limiting rules. We then call the `limit` function, passing the identifier. The function returns a Promise that resolves with `success` and some other useful data.\n\n`@upstash/ratelimit` is a useful npm package for serverless rate limiting that simplifies the process of implementing rate limiting for serverless applications. The package is built on top of Upstash Redis, which provides a complete solution for serverless applications. With `@upstash/ratelimit`, serverless developers can easily implement rate limiting, which can help prevent abuse, improve performance, and reduce costs.", - "code": "var Component=(()=>{var ir=Object.create;var S=Object.defineProperty;var lr=Object.getOwnPropertyDescriptor;var ur=Object.getOwnPropertyNames;var dr=Object.getPrototypeOf,mr=Object.prototype.hasOwnProperty;var z=(u,r)=>()=>(r||u((r={exports:{}}).exports,r),r.exports),hr=(u,r)=>{for(var p in r)S(u,p,{get:r[p],enumerable:!0})},ke=(u,r,p,g)=>{if(r&&typeof r==\"object\"||typeof r==\"function\")for(let y of ur(r))!mr.call(u,y)&&y!==p&&S(u,y,{get:()=>r[y],enumerable:!(g=lr(r,y))||g.enumerable});return u};var fr=(u,r,p)=>(p=u!=null?ir(dr(u)):{},ke(r||!u||!u.__esModule?S(p,\"default\",{value:u,enumerable:!0}):p,u)),br=u=>ke(S({},\"__esModule\",{value:!0}),u);var ve=z((kr,xe)=>{xe.exports=React});var Ee=z(G=>{\"use strict\";(function(){\"use strict\";var u=ve(),r=Symbol.for(\"react.element\"),p=Symbol.for(\"react.portal\"),g=Symbol.for(\"react.fragment\"),y=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),R=Symbol.for(\"react.forward_ref\"),D=Symbol.for(\"react.suspense\"),A=Symbol.for(\"react.suspense_list\"),F=Symbol.for(\"react.memo\"),B=Symbol.for(\"react.lazy\"),Fe=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Te=\"@@iterator\";function we(e){if(e===null||typeof e!=\"object\")return null;var a=J&&e[J]||e[Te];return typeof a==\"function\"?a:null}var x=u.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function h(e){{for(var a=arguments.length,t=new Array(a>1?a-1:0),c=1;c=1&&m>=0&&o[d]!==f[m];)m--;for(;d>=1&&m>=0;d--,m--)if(o[d]!==f[m]){if(d!==1||m!==1)do if(d--,m--,m<0||o[d]!==f[m]){var b=`\n`+o[d].replace(\" at new \",\" at \");return e.displayName&&b.includes(\"\")&&(b=b.replace(\"\",e.displayName)),typeof e==\"function\"&&w.set(e,b),b}while(d>=1&&m>=0);break}}}finally{Y=!1,I.current=l,Ye(),Error.prepareStackTrace=i}var E=e?e.displayName||e.name:\"\",ge=E?T(E):\"\";return typeof e==\"function\"&&w.set(e,ge),ge}function Me(e,a,t){return ie(e,!1)}function Ve(e){var a=e.prototype;return!!(a&&a.isReactComponent)}function C(e,a,t){if(e==null)return\"\";if(typeof e==\"function\")return ie(e,Ve(e));if(typeof e==\"string\")return T(e);switch(e){case D:return T(\"Suspense\");case A:return T(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case R:return Me(e.render);case F:return C(e.type,a,t);case B:{var c=e,i=c._payload,l=c._init;try{return C(l(i),a,t)}catch{}}}return\"\"}var O=Object.prototype.hasOwnProperty,le={},ue=x.ReactDebugCurrentFrame;function P(e){if(e){var a=e._owner,t=C(e.type,e._source,a?a.type:null);ue.setExtraStackFrame(t)}else ue.setExtraStackFrame(null)}function Le(e,a,t,c,i){{var l=Function.call.bind(O);for(var s in e)if(l(e,s)){var o=void 0;try{if(typeof e[s]!=\"function\"){var f=Error((c||\"React class\")+\": \"+t+\" type `\"+s+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[s]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw f.name=\"Invariant Violation\",f}o=e[s](a,s,c,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(d){o=d}o&&!(o instanceof Error)&&(P(i),h(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",c||\"React class\",t,s,typeof o),P(null)),o instanceof Error&&!(o.message in le)&&(le[o.message]=!0,P(i),h(\"Failed %s type: %s\",t,o.message),P(null))}}}var qe=Array.isArray;function $(e){return qe(e)}function ze(e){{var a=typeof Symbol==\"function\"&&Symbol.toStringTag,t=a&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function Ge(e){try{return de(e),!1}catch{return!0}}function de(e){return\"\"+e}function me(e){if(Ge(e))return h(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",ze(e)),de(e)}var U=x.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},he,fe,M;M={};function Ke(e){if(O.call(e,\"ref\")){var a=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(a&&a.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(O.call(e,\"key\")){var a=Object.getOwnPropertyDescriptor(e,\"key\").get;if(a&&a.isReactWarning)return!1}return e.key!==void 0}function Je(e,a){if(typeof e.ref==\"string\"&&U.current&&a&&U.current.stateNode!==a){var t=_(U.current.type);M[t]||(h('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',_(U.current.type),e.ref),M[t]=!0)}}function Ze(e,a){{var t=function(){he||(he=!0,h(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,a){{var t=function(){fe||(fe=!0,h(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,a,t,c,i,l,s){var o={$$typeof:r,type:e,key:a,ref:t,props:s,_owner:l};return o._store={},Object.defineProperty(o._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(o,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:c}),Object.defineProperty(o,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(o.props),Object.freeze(o)),o};function rr(e,a,t,c,i){{var l,s={},o=null,f=null;t!==void 0&&(me(t),o=\"\"+t),He(a)&&(me(a.key),o=\"\"+a.key),Ke(a)&&(f=a.ref,Je(a,i));for(l in a)O.call(a,l)&&!Xe.hasOwnProperty(l)&&(s[l]=a[l]);if(e&&e.defaultProps){var d=e.defaultProps;for(l in d)s[l]===void 0&&(s[l]=d[l])}if(o||f){var m=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;o&&Ze(s,m),f&&Qe(s,m)}return er(e,o,f,i,c,U.current,s)}}var V=x.ReactCurrentOwner,be=x.ReactDebugCurrentFrame;function v(e){if(e){var a=e._owner,t=C(e.type,e._source,a?a.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var L;L=!1;function q(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===r}function pe(){{if(V.current){var e=_(V.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function nr(e){{if(e!==void 0){var a=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+a+\":\"+t+\".\"}return\"\"}}var _e={};function ar(e){{var a=pe();if(!a){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(a=`\n\nCheck the top-level render call using <`+t+\">.\")}return a}}function Ne(e,a){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=ar(a);if(_e[t])return;_e[t]=!0;var c=\"\";e&&e._owner&&e._owner!==V.current&&(c=\" It was passed a child from \"+_(e._owner.type)+\".\"),v(e),h('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,c),v(null)}}function ye(e,a){{if(typeof e!=\"object\")return;if($(e))for(var t=0;t\",o=\" Did you accidentally export a JSX literal instead of a component?\"):d=typeof e,h(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",d,o)}var m=rr(e,a,t,i,l);if(m==null)return m;if(s){var b=a.children;if(b!==void 0)if(c)if($(b)){for(var E=0;E{\"use strict\";je.exports=Ee()});var yr={};hr(yr,{default:()=>Nr,frontmatter:()=>pr});var n=fr(Ue()),pr={title:\"@upstash/ratelimit\",description:\"Ratelimiting library for serverless and edge runtimes. Built on top of Upstash Redis.\",date:\"2022-06-06\",url:\"https://upstash.com/ratelimit\",repository:\"upstash/ratelimit\",published:!0};function Re(u){let r=Object.assign({p:\"p\",code:\"code\",ul:\"ul\",li:\"li\",div:\"div\",pre:\"pre\",span:\"span\"},u.components);return(0,n.jsxDEV)(n.Fragment,{children:[(0,n.jsxDEV)(r.p,{children:\"In today's digital age, serverless computing has become increasingly popular due to its scalability and cost-efficiency. One of the challenges of serverless computing is to manage resources efficiently, and one critical aspect of this is rate limiting. Rate limiting is a technique that limits the number of requests a client can make to a server over a given period. This technique can prevent abuse, improve performance, and reduce costs. One npm package that helps implement rate limiting for serverless applications is @upstash/ratelimit, built on top of Upstash Redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:\"Upstash is a managed Redis-compatible database service designed for serverless applications.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[(0,n.jsxDEV)(r.code,{children:\"@upstash/ratelimit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:1},this),\" is an npm package that provides serverless rate limiting using Upstash Redis. The package offers a simple API that can be used to limit the number of requests a client can make within a given time frame. The following algorithms are supported:\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.ul,{children:[`\n`,(0,n.jsxDEV)(r.li,{children:\"Fixed window\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.li,{children:\"Sliding window\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.li,{children:\"Leaky bucket\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:19,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[\"Using \",(0,n.jsxDEV)(r.code,{children:\"@upstash/ratelimit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:22,columnNumber:7},this),\" is straightforward. First, you need to install the package using npm:\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:22,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(r.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(r.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"npm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:143},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"install\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:180},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:223},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"@upstash/ratelimit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:260},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:314},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"@upstash/redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:351},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:24,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:\"Then, you can use it in your application:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:27,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(r.pre,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(r.code,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" { Ratelimit } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:146},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:197},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:237},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"@upstash/ratelimit\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:274},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" { Redis } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:2,columnNumber:62},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:2,columnNumber:109},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:2,columnNumber:149},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"@upstash/redis\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:2,columnNumber:186},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:61},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"ratelimit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:98},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:143},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:180},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:217},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"new\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:254},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:293},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"Ratelimit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:330},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:375},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" redis: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"new\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:5,columnNumber:67},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:5,columnNumber:106},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"Redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:5,columnNumber:143},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:5,columnNumber:184},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" url: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:6,columnNumber:69},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:6,columnNumber:117},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" token: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:7,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:7,columnNumber:71},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" }),\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" limiter: Ratelimit.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:9,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"slidingWindow\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:9,columnNumber:79},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:9,columnNumber:128},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"10\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:9,columnNumber:165},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:9,columnNumber:203},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"10s\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:9,columnNumber:241},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"),\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:9,columnNumber:292},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" analytics: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:10,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"true\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:10,columnNumber:71},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:11,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#6A737D\"},children:\"// Check if the client has exceeded the rate limit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:14,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" { \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:61},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"success\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:100},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:143},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:182},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:219},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:256},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" ratelimit.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:297},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"limit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:344},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:385},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"identifier\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:422},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\")\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:480},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:29,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[\"In the code above, we initialize Upstash with our Upstash Redis credentials and define our rate limiting rules. We then call the \",(0,n.jsxDEV)(r.code,{children:\"limit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:47,columnNumber:130},this),\" function, passing the identifier. The function returns a Promise that resolves with \",(0,n.jsxDEV)(r.code,{children:\"success\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:47,columnNumber:222},this),\" and some other useful data.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:47,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[(0,n.jsxDEV)(r.code,{children:\"@upstash/ratelimit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:49,columnNumber:1},this),\" is a useful npm package for serverless rate limiting that simplifies the process of implementing rate limiting for serverless applications. The package is built on top of Upstash Redis, which provides a complete solution for serverless applications. With \",(0,n.jsxDEV)(r.code,{children:\"@upstash/ratelimit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:49,columnNumber:277},this),\", serverless developers can easily implement rate limiting, which can help prevent abuse, improve performance, and reduce costs.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:49,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:1},this)}function _r(u={}){let{wrapper:r}=u.components||{};return r?(0,n.jsxDEV)(r,Object.assign({},u,{children:(0,n.jsxDEV)(Re,u,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\"},this):Re(u)}var Nr=_r;return br(yr);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-ratelimit.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-ratelimit.mdx", - "sourceFileName": "upstash-ratelimit.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-ratelimit" - }, - "type": "Project", - "path": "/projects/upstash-ratelimit", - "slug": "upstash-ratelimit" - }, - "documentHash": "1679831176938", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-react-ui.mdx": { - "document": { - "published": true, - "title": "React.js CLI", - "description": "A CLI React component to interact with Upstash Redis databases.", - "date": "2023-02-05T00:00:00.000Z", - "url": "https://upstash.com", - "repository": "upstash/react-ui", - "body": { - "raw": "\n\n`@upstash/react-ui` is powering the CLI in your browser on [console.upstash.com](https://comsole.upstash.com). It allows you to interact with your Upstash Redis database in a simple and intuitive way.", - "code": "var Component=(()=>{var sr=Object.create;var A=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var lr=Object.getOwnPropertyNames;var fr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(c,u)=>()=>(u||c((u={exports:{}}).exports,u),u.exports),vr=(c,u)=>{for(var b in u)A(c,b,{get:u[b],enumerable:!0})},_e=(c,u,b,E)=>{if(u&&typeof u==\"object\"||typeof u==\"function\")for(let g of lr(u))!dr.call(c,g)&&g!==b&&A(c,g,{get:()=>u[g],enumerable:!(E=cr(u,g))||E.enumerable});return c};var pr=(c,u,b)=>(b=c!=null?sr(fr(c)):{},_e(u||!c||!c.__esModule?A(b,\"default\",{value:c,enumerable:!0}):b,c)),br=c=>_e(A({},\"__esModule\",{value:!0}),c);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var c=Te(),u=Symbol.for(\"react.element\"),b=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),g=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),P=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),N=Symbol.for(\"react.suspense_list\"),j=Symbol.for(\"react.memo\"),Y=Symbol.for(\"react.lazy\"),je=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Se=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[Se];return typeof r==\"function\"?r:null}var _=c.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&f>=0&&a[l]!==v[f];)f--;for(;l>=1&&f>=0;l--,f--)if(a[l]!==v[f]){if(l!==1||f!==1)do if(l--,f--,f<0||a[l]!==v[f]){var p=`\n`+a[l].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&x.set(e,p),p}while(l>=1&&f>=0);break}}}finally{W=!1,$.current=s,We(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&x.set(e,ye),ye}function Me(e,r,t){return se(e,!1)}function Ve(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function k(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Ve(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case N:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case P:return Me(e.render);case j:return k(e.type,r,t);case Y:{var n=e,i=n._payload,s=n._init;try{return k(s(i),r,t)}catch{}}}return\"\"}var D=Object.prototype.hasOwnProperty,ce={},le=_.ReactDebugCurrentFrame;function F(e){if(e){var r=e._owner,t=k(e.type,e._source,r?r.type:null);le.setExtraStackFrame(t)}else le.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var s=Function.call.bind(D);for(var o in e)if(s(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(l){a=l}a&&!(a instanceof Error)&&(F(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),F(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,F(i),d(\"Failed %s type: %s\",t,a.message),F(null))}}}var Ge=Array.isArray;function L(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return fe(e),!1}catch{return!0}}function fe(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),fe(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,M;M={};function Ke(e){if(D.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(D.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=h(O.current.type);M[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',h(O.current.type),e.ref),M[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,s,o){var a={$$typeof:u,type:e,key:r,ref:t,props:o,_owner:s};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var s,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(s in r)D.call(r,s)&&!Xe.hasOwnProperty(s)&&(o[s]=r[s]);if(e&&e.defaultProps){var l=e.defaultProps;for(s in l)o[s]===void 0&&(o[s]=l[s])}if(a||v){var f=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,f),v&&Qe(o,f)}return er(e,a,v,i,n,O.current,o)}}var V=_.ReactCurrentOwner,be=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=k(e.type,e._source,r?r.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===u}function he(){{if(V.current){var e=h(V.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var me={};function nr(e){{var r=he();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function ge(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(me[t])return;me[t]=!0;var n=\"\";e&&e._owner&&e._owner!==V.current&&(n=\" It was passed a child from \"+h(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(L(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):l=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",l,a)}var f=rr(e,r,t,i,s);if(f==null)return f;if(o){var p=r.children;if(p!==void 0)if(n)if(L(p)){for(var T=0;T{\"use strict\";we.exports=Ce()});var Er={};vr(Er,{default:()=>gr,frontmatter:()=>hr});var C=pr(Oe()),hr={title:\"React.js CLI\",description:\"A CLI React component to interact with Upstash Redis databases.\",date:\"2023-02-05\",url:\"https://upstash.com\",repository:\"upstash/react-ui\",published:!0};function Pe(c){let u=Object.assign({p:\"p\",code:\"code\",a:\"a\"},c.components);return(0,C.jsxDEV)(u.p,{children:[(0,C.jsxDEV)(u.code,{children:\"@upstash/react-ui\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d18f6cb-fd44-423b-9018-b550a3b2d423.mdx\",lineNumber:12,columnNumber:1},this),\" is powering the CLI in your browser on \",(0,C.jsxDEV)(u.a,{href:\"https://comsole.upstash.com\",children:\"console.upstash.com\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d18f6cb-fd44-423b-9018-b550a3b2d423.mdx\",lineNumber:12,columnNumber:60},this),\". It allows you to interact with your Upstash Redis database in a simple and intuitive way.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d18f6cb-fd44-423b-9018-b550a3b2d423.mdx\",lineNumber:12,columnNumber:1},this)}function mr(c={}){let{wrapper:u}=c.components||{};return u?(0,C.jsxDEV)(u,Object.assign({},c,{children:(0,C.jsxDEV)(Pe,c,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d18f6cb-fd44-423b-9018-b550a3b2d423.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d18f6cb-fd44-423b-9018-b550a3b2d423.mdx\"},this):Pe(c)}var gr=mr;return br(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-react-ui.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-react-ui.mdx", - "sourceFileName": "upstash-react-ui.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-react-ui" - }, - "type": "Project", - "path": "/projects/upstash-react-ui", - "slug": "upstash-react-ui" - }, - "documentHash": "1679831965421", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-redis.mdx": { - "document": { - "published": true, - "title": "@upstash/redis", - "description": "A fully typed Redis client built for Upstash Redis and HTTP, perfect for serverless and edge runtimes.", - "date": "2022-03-14T00:00:00.000Z", - "url": "https://upstash.com/redis", - "repository": "upstash/upstash-redis", - "body": { - "raw": "\nUpstash is a cloud-based service provider that offers a Redis-compatible service. In addition to that, we have also created an npm package called `@upstash/redis`. This package provides a strongly typed Redis client that uses HTTP instead of TCP to communicate with the database, making it perfect for serverless and edge runtimes.\n\nRedis is a popular open-source, in-memory data structure store that can be used as a database, cache, and message broker. It is commonly used for web applications that require fast data access and manipulation. Redis clients communicate with Redis servers using the Redis protocol over TCP/IP.\n\nHowever, in some cases, TCP is not available. For example, edge functions run on cloud platforms, which often block TCP connections for various reasons. This is where `@upstash/redis` comes in handy. Instead of using TCP, it uses HTTP to communicate with the servers.\n\nThe package is designed to be easy to use and provides a simple API for Redis commands. It also includes support for Redis transactions and Lua scripting. It is written in TypeScript, which provides static typing and better code completion in modern editors.\n\nOne of the main benefits of using `@upstash/redis` is that it is strongly typed. This means that you get better type checking and error handling in your code. Additionally, the package is designed to be lightweight and optimized for performance. This makes it an excellent choice for applications that require fast data access and manipulation.\n\n```ts\nimport { Redis } from \"@upstash/redis\"\n\nconst redis = new Redis({\n url: ,\n token: ,\n})\n\n// string\nawait redis.set('key', 'value');\nlet data = await redis.get('key');\nconsole.log(data)\n\nawait redis.set('key2', 'value2', {ex: 1});\n\n// sorted set\nawait redis.zadd('scores', { score: 1, member: 'team1' })\ndata = await redis.zrange('scores', 0, 100 )\nconsole.log(data)\n\n// list\nawait redis.lpush('elements', 'magnesium')\ndata = await redis.lrange('elements', 0, 100 )\nconsole.log(data)\n```", - "code": "var Component=(()=>{var ir=Object.create;var O=Object.defineProperty;var lr=Object.getOwnPropertyDescriptor;var dr=Object.getOwnPropertyNames;var ur=Object.getPrototypeOf,mr=Object.prototype.hasOwnProperty;var z=(d,r)=>()=>(r||d((r={exports:{}}).exports,r),r.exports),br=(d,r)=>{for(var _ in r)O(d,_,{get:r[_],enumerable:!0})},xe=(d,r,_,k)=>{if(r&&typeof r==\"object\"||typeof r==\"function\")for(let y of dr(r))!mr.call(d,y)&&y!==_&&O(d,y,{get:()=>r[y],enumerable:!(k=lr(r,y))||k.enumerable});return d};var hr=(d,r,_)=>(_=d!=null?ir(ur(d)):{},xe(r||!d||!d.__esModule?O(_,\"default\",{value:d,enumerable:!0}):_,d)),fr=d=>xe(O({},\"__esModule\",{value:!0}),d);var Ee=z((xr,ge)=>{ge.exports=React});var ve=z(q=>{\"use strict\";(function(){\"use strict\";var d=Ee(),r=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),k=Symbol.for(\"react.fragment\"),y=Symbol.for(\"react.strict_mode\"),G=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),X=Symbol.for(\"react.context\"),F=Symbol.for(\"react.forward_ref\"),D=Symbol.for(\"react.suspense\"),A=Symbol.for(\"react.suspense_list\"),R=Symbol.for(\"react.memo\"),B=Symbol.for(\"react.lazy\"),Re=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Te=\"@@iterator\";function Ce(e){if(e===null||typeof e!=\"object\")return null;var t=J&&e[J]||e[Te];return typeof t==\"function\"?t:null}var g=d.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function b(e){{for(var t=arguments.length,a=new Array(t>1?t-1:0),o=1;o=1&&m>=0&&c[u]!==h[m];)m--;for(;u>=1&&m>=0;u--,m--)if(c[u]!==h[m]){if(u!==1||m!==1)do if(u--,m--,m<0||c[u]!==h[m]){var f=`\n`+c[u].replace(\" at new \",\" at \");return e.displayName&&f.includes(\"\")&&(f=f.replace(\"\",e.displayName)),typeof e==\"function\"&&C.set(e,f),f}while(u>=1&&m>=0);break}}}finally{$=!1,I.current=l,$e(),Error.prepareStackTrace=i}var v=e?e.displayName||e.name:\"\",ke=v?T(v):\"\";return typeof e==\"function\"&&C.set(e,ke),ke}function Me(e,t,a){return ie(e,!1)}function Ve(e){var t=e.prototype;return!!(t&&t.isReactComponent)}function w(e,t,a){if(e==null)return\"\";if(typeof e==\"function\")return ie(e,Ve(e));if(typeof e==\"string\")return T(e);switch(e){case D:return T(\"Suspense\");case A:return T(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case F:return Me(e.render);case R:return w(e.type,t,a);case B:{var o=e,i=o._payload,l=o._init;try{return w(l(i),t,a)}catch{}}}return\"\"}var P=Object.prototype.hasOwnProperty,le={},de=g.ReactDebugCurrentFrame;function S(e){if(e){var t=e._owner,a=w(e.type,e._source,t?t.type:null);de.setExtraStackFrame(a)}else de.setExtraStackFrame(null)}function Le(e,t,a,o,i){{var l=Function.call.bind(P);for(var s in e)if(l(e,s)){var c=void 0;try{if(typeof e[s]!=\"function\"){var h=Error((o||\"React class\")+\": \"+a+\" type `\"+s+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[s]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw h.name=\"Invariant Violation\",h}c=e[s](t,s,o,a,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(u){c=u}c&&!(c instanceof Error)&&(S(i),b(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",o||\"React class\",a,s,typeof c),S(null)),c instanceof Error&&!(c.message in le)&&(le[c.message]=!0,S(i),b(\"Failed %s type: %s\",a,c.message),S(null))}}}var He=Array.isArray;function W(e){return He(e)}function ze(e){{var t=typeof Symbol==\"function\"&&Symbol.toStringTag,a=t&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return a}}function qe(e){try{return ue(e),!1}catch{return!0}}function ue(e){return\"\"+e}function me(e){if(qe(e))return b(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",ze(e)),ue(e)}var U=g.ReactCurrentOwner,Ge={key:!0,ref:!0,__self:!0,__source:!0},be,he,M;M={};function Ke(e){if(P.call(e,\"ref\")){var t=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(t&&t.isReactWarning)return!1}return e.ref!==void 0}function Xe(e){if(P.call(e,\"key\")){var t=Object.getOwnPropertyDescriptor(e,\"key\").get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function Je(e,t){if(typeof e.ref==\"string\"&&U.current&&t&&U.current.stateNode!==t){var a=p(U.current.type);M[a]||(b('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(U.current.type),e.ref),M[a]=!0)}}function Ze(e,t){{var a=function(){be||(be=!0,b(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",t))};a.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:a,configurable:!0})}}function Qe(e,t){{var a=function(){he||(he=!0,b(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",t))};a.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:a,configurable:!0})}}var er=function(e,t,a,o,i,l,s){var c={$$typeof:r,type:e,key:t,ref:a,props:s,_owner:l};return c._store={},Object.defineProperty(c._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(c,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(c,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(c.props),Object.freeze(c)),c};function rr(e,t,a,o,i){{var l,s={},c=null,h=null;a!==void 0&&(me(a),c=\"\"+a),Xe(t)&&(me(t.key),c=\"\"+t.key),Ke(t)&&(h=t.ref,Je(t,i));for(l in t)P.call(t,l)&&!Ge.hasOwnProperty(l)&&(s[l]=t[l]);if(e&&e.defaultProps){var u=e.defaultProps;for(l in u)s[l]===void 0&&(s[l]=u[l])}if(c||h){var m=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;c&&Ze(s,m),h&&Qe(s,m)}return er(e,c,h,i,o,U.current,s)}}var V=g.ReactCurrentOwner,fe=g.ReactDebugCurrentFrame;function E(e){if(e){var t=e._owner,a=w(e.type,e._source,t?t.type:null);fe.setExtraStackFrame(a)}else fe.setExtraStackFrame(null)}var L;L=!1;function H(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===r}function _e(){{if(V.current){var e=p(V.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function nr(e){{if(e!==void 0){var t=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),a=e.lineNumber;return`\n\nCheck your code at `+t+\":\"+a+\".\"}return\"\"}}var pe={};function tr(e){{var t=_e();if(!t){var a=typeof e==\"string\"?e:e.displayName||e.name;a&&(t=`\n\nCheck the top-level render call using <`+a+\">.\")}return t}}function Ne(e,t){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var a=tr(t);if(pe[a])return;pe[a]=!0;var o=\"\";e&&e._owner&&e._owner!==V.current&&(o=\" It was passed a child from \"+p(e._owner.type)+\".\"),E(e),b('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',a,o),E(null)}}function ye(e,t){{if(typeof e!=\"object\")return;if(W(e))for(var a=0;a\",c=\" Did you accidentally export a JSX literal instead of a component?\"):u=typeof e,b(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",u,c)}var m=rr(e,t,a,i,l);if(m==null)return m;if(s){var f=t.children;if(f!==void 0)if(o)if(W(f)){for(var v=0;v{\"use strict\";je.exports=ve()});var yr={};br(yr,{default:()=>Nr,frontmatter:()=>_r});var n=hr(Ue()),_r={title:\"@upstash/redis\",description:\"A fully typed Redis client built for Upstash Redis and HTTP, perfect for serverless and edge runtimes.\",date:\"2022-03-14\",url:\"https://upstash.com/redis\",repository:\"upstash/upstash-redis\",published:!0};function Fe(d){let r=Object.assign({p:\"p\",code:\"code\",div:\"div\",pre:\"pre\",span:\"span\"},d.components);return(0,n.jsxDEV)(n.Fragment,{children:[(0,n.jsxDEV)(r.p,{children:[\"Upstash is a cloud-based service provider that offers a Redis-compatible service. In addition to that, we have also created an npm package called \",(0,n.jsxDEV)(r.code,{children:\"@upstash/redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:11,columnNumber:147},this),\". This package provides a strongly typed Redis client that uses HTTP instead of TCP to communicate with the database, making it perfect for serverless and edge runtimes.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:\"Redis is a popular open-source, in-memory data structure store that can be used as a database, cache, and message broker. It is commonly used for web applications that require fast data access and manipulation. Redis clients communicate with Redis servers using the Redis protocol over TCP/IP.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[\"However, in some cases, TCP is not available. For example, edge functions run on cloud platforms, which often block TCP connections for various reasons. This is where \",(0,n.jsxDEV)(r.code,{children:\"@upstash/redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:15,columnNumber:168},this),\" comes in handy. Instead of using TCP, it uses HTTP to communicate with the servers.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:\"The package is designed to be easy to use and provides a simple API for Redis commands. It also includes support for Redis transactions and Lua scripting. It is written in TypeScript, which provides static typing and better code completion in modern editors.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[\"One of the main benefits of using \",(0,n.jsxDEV)(r.code,{children:\"@upstash/redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:19,columnNumber:35},this),\" is that it is strongly typed. This means that you get better type checking and error handling in your code. Additionally, the package is designed to be lightweight and optimized for performance. This makes it an excellent choice for applications that require fast data access and manipulation.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(r.pre,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(r.code,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" { Redis } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:1,columnNumber:146},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:1,columnNumber:193},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:1,columnNumber:233},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"@upstash/redis\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:1,columnNumber:270},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:61},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:98},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:139},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:176},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:213},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"new\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:250},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:289},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"Redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:326},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:367},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" url: <\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"UPSTASH_REDIS_REST_URL\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:4,columnNumber:67},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\">,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:4,columnNumber:125},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" token: <\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"UPSTASH_REDIS_REST_TOKEN\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:5,columnNumber:69},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\">,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:5,columnNumber:129},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#6A737D\"},children:\"// string\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:9,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:9,columnNumber:61},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"set\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:9,columnNumber:104},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:9,columnNumber:143},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'key'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:9,columnNumber:180},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:9,columnNumber:229},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'value'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:9,columnNumber:267},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\");\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:9,columnNumber:318},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"let\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" data \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:59},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:101},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:138},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:175},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:216},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"get\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:259},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:298},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'key'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:335},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\");\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:384},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"console.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:11,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"log\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:11,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(data)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:11,columnNumber:103},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:61},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"set\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:104},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:143},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'key2'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:180},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:230},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'value2'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:268},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", {ex: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:320},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:363},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"});\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:400},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#6A737D\"},children:\"// sorted set\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:15,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:61},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"zadd\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:104},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:144},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'scores'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:181},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", { score: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:233},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:280},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", member: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:317},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'team1'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:363},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" })\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:414},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"data \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:61},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:98},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:135},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:176},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"zrange\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:219},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:261},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'scores'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:298},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:350},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"0\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:388},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:425},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"100\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:463},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" )\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:502},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"console.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:18,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"log\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:18,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(data)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:18,columnNumber:103},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#6A737D\"},children:\"// list\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:20,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:61},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"lpush\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:104},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:145},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'elements'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:182},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:236},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'magnesium'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:274},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\")\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:329},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"data \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:61},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:98},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:135},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:176},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"lrange\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:219},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:261},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'elements'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:298},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:352},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"0\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:390},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:427},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"100\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:465},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" )\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:504},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"console.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:23,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"log\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:23,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(data)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:23,columnNumber:103},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:23,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:1,columnNumber:1},this)}function pr(d={}){let{wrapper:r}=d.components||{};return r?(0,n.jsxDEV)(r,Object.assign({},d,{children:(0,n.jsxDEV)(Fe,d,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\"},this):Fe(d)}var Nr=pr;return fr(yr);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-redis.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-redis.mdx", - "sourceFileName": "upstash-redis.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-redis" - }, - "type": "Project", - "path": "/projects/upstash-redis", - "slug": "upstash-redis" - }, - "documentHash": "1679831759268", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-web-analytics.mdx": { - "document": { - "published": true, - "title": "Upstash Web Analytics", - "description": "A library to record and analyse web page traffic and user behaviour", - "repository": "upstash/web-analytics", - "body": { - "raw": "\nComing soon", - "code": "var Component=(()=>{var sr=Object.create;var A=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var fr=Object.getOwnPropertyNames;var lr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,c)=>()=>(c||s((c={exports:{}}).exports,c),c.exports),vr=(s,c)=>{for(var b in c)A(s,b,{get:c[b],enumerable:!0})},_e=(s,c,b,E)=>{if(c&&typeof c==\"object\"||typeof c==\"function\")for(let m of fr(c))!dr.call(s,m)&&m!==b&&A(s,m,{get:()=>c[m],enumerable:!(E=cr(c,m))||E.enumerable});return s};var pr=(s,c,b)=>(b=s!=null?sr(lr(s)):{},_e(c||!s||!s.__esModule?A(b,\"default\",{value:s,enumerable:!0}):b,s)),br=s=>_e(A({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),c=Symbol.for(\"react.element\"),b=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),O=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),W=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),Y=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&l>=0&&a[f]!==v[l];)l--;for(;f>=1&&l>=0;f--,l--)if(a[f]!==v[l]){if(f!==1||l!==1)do if(f--,l--,l<0||a[f]!==v[l]){var p=`\n`+a[f].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(f>=1&&l>=0);break}}}finally{M=!1,$.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case W:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case O:return Ue(e.render);case P:return x(e.type,r,t);case Y:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,ce={},fe=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){a=f}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return le(e),!1}catch{return!0}}function le(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),le(e)}var w=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&w.current&&r&&w.current.stateNode!==r){var t=h(w.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',h(w.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:c,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var f=e.defaultProps;for(u in f)o[u]===void 0&&(o[u]=f[u])}if(a||v){var l=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,l),v&&Qe(o,l)}return er(e,a,v,i,n,w.current,o)}}var L=_.ReactCurrentOwner,be=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===c}function he(){{if(L.current){var e=h(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=he();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+h(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):f=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",f,a)}var l=rr(e,r,t,i,u);if(l==null)return l;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";we.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>hr});var F=pr(Oe()),hr={title:\"Upstash Web Analytics\",description:\"A library to record and analyse web page traffic and user behaviour\",repository:\"upstash/web-analytics\",published:!0};function Pe(s){let c=Object.assign({p:\"p\"},s.components);return(0,F.jsxDEV)(c.p,{children:\"Coming soon\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-5fa4787f-baae-4c3e-bcce-87c94c71b8e1.mdx\",lineNumber:8,columnNumber:1},this)}function gr(s={}){let{wrapper:c}=s.components||{};return c?(0,F.jsxDEV)(c,Object.assign({},s,{children:(0,F.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-5fa4787f-baae-4c3e-bcce-87c94c71b8e1.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-5fa4787f-baae-4c3e-bcce-87c94c71b8e1.mdx\"},this):Pe(s)}var mr=gr;return br(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-web-analytics.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-web-analytics.mdx", - "sourceFileName": "upstash-web-analytics.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-web-analytics" - }, - "type": "Project", - "path": "/projects/upstash-web-analytics", - "slug": "upstash-web-analytics" - }, - "documentHash": "1679831889438", - "hasWarnings": false, - "documentTypeName": "Project" - } - } -} diff --git a/.contentlayer/.cache/v0.3.0/data-IGZ3LN4S.json b/.contentlayer/.cache/v0.3.0/data-IGZ3LN4S.json deleted file mode 100644 index 47ae51f..0000000 --- a/.contentlayer/.cache/v0.3.0/data-IGZ3LN4S.json +++ /dev/null @@ -1,162 +0,0 @@ -{ - "cacheItemsMap": { - "projects/envshare.mdx": { - "document": { - "title": "envshare.dev", - "description": "EnvShare is a simple tool to share environment variables securely. It uses AES-GCM to encrypt your data before sending it to the server. The encryption key never leaves your browser.", - "date": "2023-01-16T00:00:00.000Z", - "url": "https://envshare.dev", - "repository": "chronark/envshare", - "body": { - "raw": "\nEnvShare is a simple tool to share environment variables securely. It uses\n**AES-GCM** to encrypt your data before sending it to the server. The encryption\nkey never leaves your browser.\n\n## Features\n\n- **Shareable Links:** Share your environment variables securely by sending a\n link\n- **End-to-End Encryption:** AES-GCM encryption is used to encrypt your data\n before sending it to the server\n- **Limit number of reads:** Limit the number of times a link can be read\n- **Auto Expire:** Automatically expire links and delete data after a certain\n time\n\n\n\n![](img/envshare.png)\n\n## Built with\n\n- [Next.js](https://nextjs.org)\n- [tailwindcss](https://tailwindcss.com)\n- Deployed on [Vercel](https://vercel.com?utm_source=envshare)\n- Data stored on [Upstash](https://upstash.com?utm_source=envshare)\n\n## Deploy your own\n\nDetailed instructions can be found [here](https://envshare.dev/deploy)\n\nAll you need is a Redis database on Upstash and a Vercel account. Click the\nbutton below to clone and deploy:\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?demo-title=EnvShare&demo-description=Simple%20Next.js%20%2B%20Upstash%20app%20to%20share%20environment%20variables%20securely%20using%20AES-GCM%20encryption.&demo-url=https%3A%2F%2Fenvshare.dev%2F&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5SaFBHXp5FBFJbsTzVqIJ3%2Ff0f8382369b7642fd8103debb9025c11%2Fenvshare.png&project-name=EnvShare&repository-name=envshare&repository-url=https%3A%2F%2Fgithub.com%2Fchronark%2Fenvshare&from=templates&integration-ids=oac_V3R1GIpkoJorr6fqyiwdhl17)\n\n\n\n## Configuration\n\n### Environment Variables\n\n`ENABLE_VERCEL_ANALYTICS` Any truthy value will enable Vercel Analytics. This is turned off by default\n\n## Contributing\n\nThis repository uses `pnpm` to manage dependencies. Install it using\n`npm install -g pnpm`\n\nPlease run `pnpm fmt` before committing to format the code.\n\n## Docs\n\nDocs in the README are temporary and will be moved to the website soon.\n\n### API\n\n#### Store a secret\n\n**PLEASE NEVER EVER UPLOAD UNENCRYPTED SECRETS.**\n\nThis endpoint is only meant to store **already encrypted** secrets. The\nencrypted secrets are stored in plain text.\n\n```sh-session\n$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\"\n```\n\nYou can add optional headers to configure the ttl and number of reads.\n\n```sh-session\n$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\" -H \"envshare-ttl: 3600\" -H \"envshare-reads: 10\"\n```\n\n- Omitting the `envshare-ttl` header will set a default of 30 days. Disable the\n ttl by setting it to 0. (`envshare-ttl: 0`)\n- Omitting the `envshare-reads` header will simply disable it and allow reading\n for an unlimited number of times.\n\nThis endpoint returns a JSON response with the secret id:\n\n```json\n{\n \"data\": {\n \"id\": \"HdPbXgpvUvNk43oxSdK97u\",\n \"ttl\": 86400,\n \"reads\": 2,\n \"expiresAt\": \"2023-01-19T20:47:28.383Z\",\n \"url\": \"http://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"\n }\n}\n```\n\n#### Retrieve a secret\n\nYou need an id to retrieve a secret. The id is returned when you store a secret.\n\n```sh-session\n$ curl -s https://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\n```\n\n```json\n{\n \"data\": {\n \"secret\": \"Hello\",\n \"remainingReads\": 1\n }\n}\n```", - "code": "var Component=(()=>{var dn=Object.create;var O=Object.defineProperty;var ln=Object.getOwnPropertyDescriptor;var un=Object.getOwnPropertyNames;var mn=Object.getPrototypeOf,fn=Object.prototype.hasOwnProperty;var X=(l,n)=>()=>(n||l((n={exports:{}}).exports,n),n.exports),hn=(l,n)=>{for(var _ in n)O(l,_,{get:n[_],enumerable:!0})},ye=(l,n,_,x)=>{if(n&&typeof n==\"object\"||typeof n==\"function\")for(let k of un(n))!fn.call(l,k)&&k!==_&&O(l,k,{get:()=>n[k],enumerable:!(x=ln(n,k))||x.enumerable});return l};var bn=(l,n,_)=>(_=l!=null?dn(mn(l)):{},ye(n||!l||!l.__esModule?O(_,\"default\",{value:l,enumerable:!0}):_,l)),_n=l=>ye(O({},\"__esModule\",{value:!0}),l);var ve=X((gn,ge)=>{ge.exports=React});var Ee=X(H=>{\"use strict\";(function(){\"use strict\";var l=ve(),n=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),x=Symbol.for(\"react.fragment\"),k=Symbol.for(\"react.strict_mode\"),q=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),z=Symbol.for(\"react.context\"),R=Symbol.for(\"react.forward_ref\"),A=Symbol.for(\"react.suspense\"),D=Symbol.for(\"react.suspense_list\"),F=Symbol.for(\"react.memo\"),L=Symbol.for(\"react.lazy\"),Fe=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Te=\"@@iterator\";function we(e){if(e===null||typeof e!=\"object\")return null;var t=J&&e[J]||e[Te];return typeof t==\"function\"?t:null}var g=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function f(e){{for(var t=arguments.length,c=new Array(t>1?t-1:0),a=1;a=1&&m>=0&&o[u]!==h[m];)m--;for(;u>=1&&m>=0;u--,m--)if(o[u]!==h[m]){if(u!==1||m!==1)do if(u--,m--,m<0||o[u]!==h[m]){var b=`\n`+o[u].replace(\" at new \",\" at \");return e.displayName&&b.includes(\"\")&&(b=b.replace(\"\",e.displayName)),typeof e==\"function\"&&w.set(e,b),b}while(u>=1&&m>=0);break}}}finally{V=!1,I.current=d,Ve(),Error.prepareStackTrace=i}var E=e?e.displayName||e.name:\"\",xe=E?T(E):\"\";return typeof e==\"function\"&&w.set(e,xe),xe}function $e(e,t,c){return ie(e,!1)}function Me(e){var t=e.prototype;return!!(t&&t.isReactComponent)}function S(e,t,c){if(e==null)return\"\";if(typeof e==\"function\")return ie(e,Me(e));if(typeof e==\"string\")return T(e);switch(e){case A:return T(\"Suspense\");case D:return T(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case R:return $e(e.render);case F:return S(e.type,t,c);case L:{var a=e,i=a._payload,d=a._init;try{return S(d(i),t,c)}catch{}}}return\"\"}var C=Object.prototype.hasOwnProperty,de={},le=g.ReactDebugCurrentFrame;function P(e){if(e){var t=e._owner,c=S(e.type,e._source,t?t.type:null);le.setExtraStackFrame(c)}else le.setExtraStackFrame(null)}function We(e,t,c,a,i){{var d=Function.call.bind(C);for(var s in e)if(d(e,s)){var o=void 0;try{if(typeof e[s]!=\"function\"){var h=Error((a||\"React class\")+\": \"+c+\" type `\"+s+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[s]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw h.name=\"Invariant Violation\",h}o=e[s](t,s,a,c,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(u){o=u}o&&!(o instanceof Error)&&(P(i),f(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",a||\"React class\",c,s,typeof o),P(null)),o instanceof Error&&!(o.message in de)&&(de[o.message]=!0,P(i),f(\"Failed %s type: %s\",c,o.message),P(null))}}}var Ge=Array.isArray;function Y(e){return Ge(e)}function Xe(e){{var t=typeof Symbol==\"function\"&&Symbol.toStringTag,c=t&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return c}}function He(e){try{return ue(e),!1}catch{return!0}}function ue(e){return\"\"+e}function me(e){if(He(e))return f(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Xe(e)),ue(e)}var U=g.ReactCurrentOwner,qe={key:!0,ref:!0,__self:!0,__source:!0},fe,he,$;$={};function Ke(e){if(C.call(e,\"ref\")){var t=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(t&&t.isReactWarning)return!1}return e.ref!==void 0}function ze(e){if(C.call(e,\"key\")){var t=Object.getOwnPropertyDescriptor(e,\"key\").get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function Je(e,t){if(typeof e.ref==\"string\"&&U.current&&t&&U.current.stateNode!==t){var c=p(U.current.type);$[c]||(f('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(U.current.type),e.ref),$[c]=!0)}}function Ze(e,t){{var c=function(){fe||(fe=!0,f(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",t))};c.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:c,configurable:!0})}}function Qe(e,t){{var c=function(){he||(he=!0,f(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",t))};c.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:c,configurable:!0})}}var en=function(e,t,c,a,i,d,s){var o={$$typeof:n,type:e,key:t,ref:c,props:s,_owner:d};return o._store={},Object.defineProperty(o._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(o,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:a}),Object.defineProperty(o,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(o.props),Object.freeze(o)),o};function nn(e,t,c,a,i){{var d,s={},o=null,h=null;c!==void 0&&(me(c),o=\"\"+c),ze(t)&&(me(t.key),o=\"\"+t.key),Ke(t)&&(h=t.ref,Je(t,i));for(d in t)C.call(t,d)&&!qe.hasOwnProperty(d)&&(s[d]=t[d]);if(e&&e.defaultProps){var u=e.defaultProps;for(d in u)s[d]===void 0&&(s[d]=u[d])}if(o||h){var m=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;o&&Ze(s,m),h&&Qe(s,m)}return en(e,o,h,i,a,U.current,s)}}var M=g.ReactCurrentOwner,be=g.ReactDebugCurrentFrame;function v(e){if(e){var t=e._owner,c=S(e.type,e._source,t?t.type:null);be.setExtraStackFrame(c)}else be.setExtraStackFrame(null)}var W;W=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===n}function _e(){{if(M.current){var e=p(M.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function rn(e){{if(e!==void 0){var t=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),c=e.lineNumber;return`\n\nCheck your code at `+t+\":\"+c+\".\"}return\"\"}}var pe={};function tn(e){{var t=_e();if(!t){var c=typeof e==\"string\"?e:e.displayName||e.name;c&&(t=`\n\nCheck the top-level render call using <`+c+\">.\")}return t}}function Ne(e,t){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var c=tn(t);if(pe[c])return;pe[c]=!0;var a=\"\";e&&e._owner&&e._owner!==M.current&&(a=\" It was passed a child from \"+p(e._owner.type)+\".\"),v(e),f('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',c,a),v(null)}}function ke(e,t){{if(typeof e!=\"object\")return;if(Y(e))for(var c=0;c\",o=\" Did you accidentally export a JSX literal instead of a component?\"):u=typeof e,f(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",u,o)}var m=nn(e,t,c,i,d);if(m==null)return m;if(s){var b=t.children;if(b!==void 0)if(a)if(Y(b)){for(var E=0;E{\"use strict\";je.exports=Ee()});var xn={};hn(xn,{default:()=>kn,frontmatter:()=>pn});var r=bn(Ue()),pn={title:\"envshare.dev\",description:\"EnvShare is a simple tool to share environment variables securely. It uses AES-GCM to encrypt your data before sending it to the server. The encryption key never leaves your browser.\",date:\"2023-01-16\",url:\"https://envshare.dev\",repository:\"chronark/envshare\"};function Re(l){let n=Object.assign({p:\"p\",strong:\"strong\",h2:\"h2\",a:\"a\",span:\"span\",ul:\"ul\",li:\"li\",img:\"img\",h3:\"h3\",code:\"code\",h4:\"h4\",div:\"div\",pre:\"pre\"},l.components);return(0,r.jsxDEV)(r.Fragment,{children:[(0,r.jsxDEV)(n.p,{children:[`EnvShare is a simple tool to share environment variables securely. It uses\n`,(0,r.jsxDEV)(n.strong,{children:\"AES-GCM\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:11,columnNumber:1},this),` to encrypt your data before sending it to the server. The encryption\nkey never leaves your browser.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"features\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#features\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\"},this),\"Features\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Shareable Links:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:16,columnNumber:3},this),` Share your environment variables securely by sending a\nlink`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"End-to-End Encryption:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:18,columnNumber:3},this),` AES-GCM encryption is used to encrypt your data\nbefore sending it to the server`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Limit number of reads:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:20,columnNumber:3},this),\" Limit the number of times a link can be read\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Auto Expire:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:21,columnNumber:3},this),` Automatically expire links and delete data after a certain\ntime`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:21,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.img,{src:\"img/envshare.png\",alt:\"\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:26,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:26,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"built-with\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#built-with\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\"},this),\"Built with\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:28,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:(0,r.jsxDEV)(n.a,{href:\"https://nextjs.org\",children:\"Next.js\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:30,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:(0,r.jsxDEV)(n.a,{href:\"https://tailwindcss.com\",children:\"tailwindcss\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:31,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Deployed on \",(0,r.jsxDEV)(n.a,{href:\"https://vercel.com?utm_source=envshare\",children:\"Vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:32,columnNumber:15},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:32,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Data stored on \",(0,r.jsxDEV)(n.a,{href:\"https://upstash.com?utm_source=envshare\",children:\"Upstash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:33,columnNumber:18},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:33,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"deploy-your-own\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#deploy-your-own\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\"},this),\"Deploy your own\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"Detailed instructions can be found \",(0,r.jsxDEV)(n.a,{href:\"https://envshare.dev/deploy\",children:\"here\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:37,columnNumber:36},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:37,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:`All you need is a Redis database on Upstash and a Vercel account. Click the\nbutton below to clone and deploy:`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:39,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.a,{href:\"https://vercel.com/new/clone?demo-title=EnvShare&demo-description=Simple%20Next.js%20%2B%20Upstash%20app%20to%20share%20environment%20variables%20securely%20using%20AES-GCM%20encryption.&demo-url=https%3A%2F%2Fenvshare.dev%2F&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5SaFBHXp5FBFJbsTzVqIJ3%2Ff0f8382369b7642fd8103debb9025c11%2Fenvshare.png&project-name=EnvShare&repository-name=envshare&repository-url=https%3A%2F%2Fgithub.com%2Fchronark%2Fenvshare&from=templates&integration-ids=oac_V3R1GIpkoJorr6fqyiwdhl17\",children:(0,r.jsxDEV)(n.img,{src:\"https://vercel.com/button\",alt:\"Deploy with Vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:42,columnNumber:2},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:42,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:42,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"configuration\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#configuration\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\"},this),\"Configuration\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:46,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h3,{id:\"environment-variables\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#environment-variables\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\"},this),\"Environment Variables\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:48,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[(0,r.jsxDEV)(n.code,{children:\"ENABLE_VERCEL_ANALYTICS\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:50,columnNumber:1},this),\" Any truthy value will enable Vercel Analytics. This is turned off by default\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:50,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"contributing\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#contributing\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\"},this),\"Contributing\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:52,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"This repository uses \",(0,r.jsxDEV)(n.code,{children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:54,columnNumber:22},this),` to manage dependencies. Install it using\n`,(0,r.jsxDEV)(n.code,{children:\"npm install -g pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:55,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:54,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"Please run \",(0,r.jsxDEV)(n.code,{children:\"pnpm fmt\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:57,columnNumber:12},this),\" before committing to format the code.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:57,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"docs\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#docs\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\"},this),\"Docs\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:59,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"Docs in the README are temporary and will be moved to the website soon.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:61,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h3,{id:\"api\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#api\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\"},this),\"API\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:63,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h4,{id:\"store-a-secret\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#store-a-secret\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\"},this),\"Store a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:65,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.strong,{children:\"PLEASE NEVER EVER UPLOAD UNENCRYPTED SECRETS.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:67,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:67,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"This endpoint is only meant to store \",(0,r.jsxDEV)(n.strong,{children:\"already encrypted\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:69,columnNumber:38},this),` secrets. The\nencrypted secrets are stored in plain text.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:69,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:'$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:72,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"You can add optional headers to configure the ttl and number of reads.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:76,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:'$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\" -H \"envshare-ttl: 3600\" -H \"envshare-reads: 10\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:78,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:[\"Omitting the \",(0,r.jsxDEV)(n.code,{children:\"envshare-ttl\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:82,columnNumber:16},this),` header will set a default of 30 days. Disable the\nttl by setting it to 0. (`,(0,r.jsxDEV)(n.code,{children:\"envshare-ttl: 0\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:83,columnNumber:28},this),\")\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Omitting the \",(0,r.jsxDEV)(n.code,{children:\"envshare-reads\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:84,columnNumber:16},this),` header will simply disable it and allow reading\nfor an unlimited number of times.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:84,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"This endpoint returns a JSON response with the secret id:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:87,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"json\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"json\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"data\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"id\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:3,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:3,columnNumber:110},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"HdPbXgpvUvNk43oxSdK97u\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:3,columnNumber:148},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:3,columnNumber:218},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"ttl\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:4,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:4,columnNumber:111},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"86400\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:4,columnNumber:149},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:4,columnNumber:190},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:5,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"reads\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:5,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:5,columnNumber:113},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"2\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:5,columnNumber:151},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:5,columnNumber:188},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:6,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"expiresAt\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:6,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:6,columnNumber:117},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"2023-01-19T20:47:28.383Z\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:6,columnNumber:155},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:6,columnNumber:227},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:7,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"url\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:7,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:7,columnNumber:111},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"http://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:7,columnNumber:149},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:9,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:89,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h4,{id:\"retrieve-a-secret\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#retrieve-a-secret\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\"},this),\"Retrieve a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:101,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"You need an id to retrieve a secret. The id is returned when you store a secret.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:103,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:\"$ curl -s https://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:105,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"json\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"json\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"data\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"secret\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:3,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:3,columnNumber:114},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"Hello\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:3,columnNumber:152},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:3,columnNumber:205},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"remainingReads\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:4,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:4,columnNumber:122},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:4,columnNumber:160},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:5,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:6,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:109,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\",lineNumber:1,columnNumber:1},this)}function Nn(l={}){let{wrapper:n}=l.components||{};return n?(0,r.jsxDEV)(n,Object.assign({},l,{children:(0,r.jsxDEV)(Re,l,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5076ceb-cc94-467b-8047-0d1f7ec9d6fa.mdx\"},this):Re(l)}var kn=Nn;return _n(xn);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/envshare.mdx", - "_raw": { - "sourceFilePath": "projects/envshare.mdx", - "sourceFileName": "envshare.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/envshare" - }, - "type": "Project", - "path": "/projects/envshare", - "slug": "envshare" - }, - "documentHash": "1677516594972", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/redis-query.mdx": { - "document": { - "title": "Redis Query", - "description": "Client side secondary indexing for Redis. It allows you to query your Redis data efficiently. Inspired by FaunaDB indices.", - "repository": "chronark/redis-query", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var lr=Object.getOwnPropertyNames;var fr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var G=(s,c)=>()=>(c||s((c={exports:{}}).exports,c),c.exports),vr=(s,c)=>{for(var b in c)F(s,b,{get:c[b],enumerable:!0})},_e=(s,c,b,y)=>{if(c&&typeof c==\"object\"||typeof c==\"function\")for(let m of lr(c))!dr.call(s,m)&&m!==b&&F(s,m,{get:()=>c[m],enumerable:!(y=cr(c,m))||y.enumerable});return s};var pr=(s,c,b)=>(b=s!=null?sr(fr(s)):{},_e(c||!s||!s.__esModule?F(b,\"default\",{value:s,enumerable:!0}):b,s)),br=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=G((_r,Re)=>{Re.exports=React});var Ce=G(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),c=Symbol.for(\"react.element\"),b=Symbol.for(\"react.portal\"),y=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&f>=0&&a[l]!==v[f];)f--;for(;l>=1&&f>=0;l--,f--)if(a[l]!==v[f]){if(l!==1||f!==1)do if(l--,f--,f<0||a[l]!==v[f]){var p=`\n`+a[l].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(l>=1&&f>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",Ee=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,Ee),Ee}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,ce={},le=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);le.setExtraStackFrame(t)}else le.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(l){a=l}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var qe=Array.isArray;function V(e){return qe(e)}function Ge(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return fe(e),!1}catch{return!0}}function fe(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Ge(e)),fe(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=h(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',h(O.current.type),e.ref),U[t]=!0)}}function Qe(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Ze(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:c,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var l=e.defaultProps;for(u in l)o[u]===void 0&&(o[u]=l[u])}if(a||v){var f=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Qe(o,f),v&&Ze(o,f)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,be=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var B;B=!1;function q(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===c}function he(){{if(L.current){var e=h(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=he();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+h(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function ye(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):l=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",l,a)}var f=rr(e,r,t,i,u);if(f==null)return f;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var yr={};vr(yr,{default:()=>mr,frontmatter:()=>hr});var A=pr(we()),hr={title:\"Redis Query\",description:\"Client side secondary indexing for Redis. It allows you to query your Redis data efficiently. Inspired by FaunaDB indices.\",repository:\"chronark/redis-query\"};function Pe(s){let c=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(c.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-ade8b0ba-8e48-43b5-a329-ad24bc5e37ae.mdx\",lineNumber:8,columnNumber:1},this)}function gr(s={}){let{wrapper:c}=s.components||{};return c?(0,A.jsxDEV)(c,Object.assign({},s,{children:(0,A.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-ade8b0ba-8e48-43b5-a329-ad24bc5e37ae.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-ade8b0ba-8e48-43b5-a329-ad24bc5e37ae.mdx\"},this):Pe(s)}var mr=gr;return br(yr);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/redis-query.mdx", - "_raw": { - "sourceFilePath": "projects/redis-query.mdx", - "sourceFileName": "redis-query.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/redis-query" - }, - "type": "Project", - "path": "/projects/redis-query", - "slug": "redis-query" - }, - "documentHash": "1677517184762", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/terraform-provider-vercel.mdx": { - "document": { - "title": "Vercel Terraform Provider", - "description": "A Terraform provider for Vercel. It has been deprecated it when Vercel rolled out their official provider.", - "date": "2021-03-16T00:00:00.000Z", - "repository": "chronark/terraform-provider-vercel", - "body": { - "raw": "TODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var fr=Object.getOwnPropertyNames;var lr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,c)=>()=>(c||s((c={exports:{}}).exports,c),c.exports),vr=(s,c)=>{for(var h in c)F(s,h,{get:c[h],enumerable:!0})},_e=(s,c,h,E)=>{if(c&&typeof c==\"object\"||typeof c==\"function\")for(let m of fr(c))!dr.call(s,m)&&m!==h&&F(s,m,{get:()=>c[m],enumerable:!(E=cr(c,m))||E.enumerable});return s};var pr=(s,c,h)=>(h=s!=null?sr(lr(s)):{},_e(c||!s||!s.__esModule?F(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),c=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),V=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),Y=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&l>=0&&a[f]!==v[l];)l--;for(;f>=1&&l>=0;f--,l--)if(a[f]!==v[l]){if(f!==1||l!==1)do if(f--,l--,l<0||a[f]!==v[l]){var p=`\n`+a[f].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(f>=1&&l>=0);break}}}finally{N=!1,$.current=u,Ne(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case V:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case Y:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,ce={},fe=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){a=f}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function M(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return le(e),!1}catch{return!0}}function le(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),le(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=b(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',b(O.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:c,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var f=e.defaultProps;for(u in f)o[u]===void 0&&(o[u]=f[u])}if(a||v){var l=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,l),v&&Qe(o,l)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===c}function be(){{if(L.current){var e=b(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=be();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+b(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(M(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):f=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",f,a)}var l=rr(e,r,t,i,u);if(l==null)return l;if(o){var p=r.children;if(p!==void 0)if(n)if(M(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>br});var A=pr(we()),br={title:\"Vercel Terraform Provider\",description:\"A Terraform provider for Vercel. It has been deprecated it when Vercel rolled out their official provider.\",date:\"2021-03-16\",repository:\"chronark/terraform-provider-vercel\"};function Pe(s){let c=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(c.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-4f8e2f4e-66cf-4943-87bc-2971caa80aea.mdx\",lineNumber:7,columnNumber:1},this)}function gr(s={}){let{wrapper:c}=s.components||{};return c?(0,A.jsxDEV)(c,Object.assign({},s,{children:(0,A.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-4f8e2f4e-66cf-4943-87bc-2971caa80aea.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-4f8e2f4e-66cf-4943-87bc-2971caa80aea.mdx\"},this):Pe(s)}var mr=gr;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/terraform-provider-vercel.mdx", - "_raw": { - "sourceFilePath": "projects/terraform-provider-vercel.mdx", - "sourceFileName": "terraform-provider-vercel.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/terraform-provider-vercel" - }, - "type": "Project", - "path": "/projects/terraform-provider-vercel", - "slug": "terraform-provider-vercel" - }, - "documentHash": "1677517152082", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-auth-analytics.mdx": { - "document": { - "title": "Upstash Auth Analytics", - "description": "A library to record and analyse Auth.js user behaviour", - "url": "https://console.upstash.com/ratelimit", - "repository": "upstash/auth-analytics", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var A=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var lr=Object.getOwnPropertyNames;var fr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,c)=>()=>(c||s((c={exports:{}}).exports,c),c.exports),vr=(s,c)=>{for(var h in c)A(s,h,{get:c[h],enumerable:!0})},_e=(s,c,h,E)=>{if(c&&typeof c==\"object\"||typeof c==\"function\")for(let m of lr(c))!dr.call(s,m)&&m!==h&&A(s,m,{get:()=>c[m],enumerable:!(E=cr(c,m))||E.enumerable});return s};var pr=(s,c,h)=>(h=s!=null?sr(fr(s)):{},_e(c||!s||!s.__esModule?A(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(A({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),c=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&f>=0&&a[l]!==v[f];)f--;for(;l>=1&&f>=0;l--,f--)if(a[l]!==v[f]){if(l!==1||f!==1)do if(l--,f--,f<0||a[l]!==v[f]){var p=`\n`+a[l].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(l>=1&&f>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,ce={},le=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);le.setExtraStackFrame(t)}else le.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(l){a=l}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return fe(e),!1}catch{return!0}}function fe(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),fe(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=b(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',b(O.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:c,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var l=e.defaultProps;for(u in l)o[u]===void 0&&(o[u]=l[u])}if(a||v){var f=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,f),v&&Qe(o,f)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===c}function be(){{if(L.current){var e=b(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=be();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+b(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):l=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",l,a)}var f=rr(e,r,t,i,u);if(f==null)return f;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>br});var F=pr(we()),br={title:\"Upstash Auth Analytics\",description:\"A library to record and analyse Auth.js user behaviour\",url:\"https://console.upstash.com/ratelimit\",repository:\"upstash/auth-analytics\"};function Pe(s){let c=Object.assign({p:\"p\"},s.components);return(0,F.jsxDEV)(c.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-2c6a871a-2ce1-4dea-9eb1-0ddf7c36bf74.mdx\",lineNumber:9,columnNumber:1},this)}function gr(s={}){let{wrapper:c}=s.components||{};return c?(0,F.jsxDEV)(c,Object.assign({},s,{children:(0,F.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-2c6a871a-2ce1-4dea-9eb1-0ddf7c36bf74.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-2c6a871a-2ce1-4dea-9eb1-0ddf7c36bf74.mdx\"},this):Pe(s)}var mr=gr;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-auth-analytics.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-auth-analytics.mdx", - "sourceFileName": "upstash-auth-analytics.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-auth-analytics" - }, - "type": "Project", - "path": "/projects/upstash-auth-analytics", - "slug": "upstash-auth-analytics" - }, - "documentHash": "1677516995292", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-core-analytics.mdx": { - "document": { - "title": "Upstash Core Analytics", - "description": "Low level utilities to build analytics tools on top of Redis.", - "date": "2023-02-13T00:00:00.000Z", - "url": "https://console.upstash.com/ratelimit", - "repository": "upstash/core-analytics", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var lr=Object.getOwnPropertyDescriptor;var cr=Object.getOwnPropertyNames;var fr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,l)=>()=>(l||s((l={exports:{}}).exports,l),l.exports),vr=(s,l)=>{for(var b in l)F(s,b,{get:l[b],enumerable:!0})},_e=(s,l,b,E)=>{if(l&&typeof l==\"object\"||typeof l==\"function\")for(let m of cr(l))!dr.call(s,m)&&m!==b&&F(s,m,{get:()=>l[m],enumerable:!(E=lr(l,m))||E.enumerable});return s};var pr=(s,l,b)=>(b=s!=null?sr(fr(s)):{},_e(l||!s||!s.__esModule?F(b,\"default\",{value:s,enumerable:!0}):b,s)),br=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),l=Symbol.for(\"react.element\"),b=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&f>=0&&a[c]!==v[f];)f--;for(;c>=1&&f>=0;c--,f--)if(a[c]!==v[f]){if(c!==1||f!==1)do if(c--,f--,f<0||a[c]!==v[f]){var p=`\n`+a[c].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(c>=1&&f>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,le={},ce=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);ce.setExtraStackFrame(t)}else ce.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(c){a=c}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in le)&&(le[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return fe(e),!1}catch{return!0}}function fe(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),fe(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=h(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',h(O.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:l,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var c=e.defaultProps;for(u in c)o[u]===void 0&&(o[u]=c[u])}if(a||v){var f=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,f),v&&Qe(o,f)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,be=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===l}function he(){{if(L.current){var e=h(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=he();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+h(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):c=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",c,a)}var f=rr(e,r,t,i,u);if(f==null)return f;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>hr});var A=pr(we()),hr={title:\"Upstash Core Analytics\",description:\"Low level utilities to build analytics tools on top of Redis.\",date:\"2023-02-13\",url:\"https://console.upstash.com/ratelimit\",repository:\"upstash/core-analytics\"};function Pe(s){let l=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(l.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-fa914456-b490-4b04-8303-046c011a2df5.mdx\",lineNumber:10,columnNumber:1},this)}function gr(s={}){let{wrapper:l}=s.components||{};return l?(0,A.jsxDEV)(l,Object.assign({},s,{children:(0,A.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-fa914456-b490-4b04-8303-046c011a2df5.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-fa914456-b490-4b04-8303-046c011a2df5.mdx\"},this):Pe(s)}var mr=gr;return br(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-core-analytics.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-core-analytics.mdx", - "sourceFileName": "upstash-core-analytics.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-core-analytics" - }, - "type": "Project", - "path": "/projects/upstash-core-analytics", - "slug": "upstash-core-analytics" - }, - "documentHash": "1677516952361", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-qstash-sdk.mdx": { - "document": { - "title": "QStash SDK", - "description": "A typescript client and consumer for QStash.", - "date": "2023-07-18T00:00:00.000Z", - "url": "https://upstash.com/qstash", - "repository": "upstash/sdk-qstash-ts", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var fr=Object.getOwnPropertyDescriptor;var cr=Object.getOwnPropertyNames;var lr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var G=(s,f)=>()=>(f||s((f={exports:{}}).exports,f),f.exports),vr=(s,f)=>{for(var b in f)F(s,b,{get:f[b],enumerable:!0})},_e=(s,f,b,E)=>{if(f&&typeof f==\"object\"||typeof f==\"function\")for(let m of cr(f))!dr.call(s,m)&&m!==b&&F(s,m,{get:()=>f[m],enumerable:!(E=fr(f,m))||E.enumerable});return s};var pr=(s,f,b)=>(b=s!=null?sr(lr(s)):{},_e(f||!s||!s.__esModule?F(b,\"default\",{value:s,enumerable:!0}):b,s)),br=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=G((_r,Re)=>{Re.exports=React});var Ce=G(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),f=Symbol.for(\"react.element\"),b=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),K=Symbol.for(\"react.profiler\"),X=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),S=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),w=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Pe=Symbol.for(\"react.offscreen\"),Q=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=Q&&e[Q]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&l>=0&&a[c]!==v[l];)l--;for(;c>=1&&l>=0;c--,l--)if(a[c]!==v[l]){if(c!==1||l!==1)do if(c--,l--,l<0||a[c]!==v[l]){var p=`\n`+a[c].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(c>=1&&l>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?P(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return P(e);switch(e){case I:return P(\"Suspense\");case Y:return P(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case S:return Ue(e.render);case w:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,fe={},ce=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);ce.setExtraStackFrame(t)}else ce.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(c){a=c}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in fe)&&(fe[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var qe=Array.isArray;function V(e){return qe(e)}function Ge(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return le(e),!1}catch{return!0}}function le(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Ge(e)),le(e)}var O=_.ReactCurrentOwner,Ke={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Xe(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Qe(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=h(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',h(O.current.type),e.ref),U[t]=!0)}}function Je(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Ze(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:f,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Xe(r)&&(v=r.ref,Qe(r,i));for(u in r)k.call(r,u)&&!Ke.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var c=e.defaultProps;for(u in c)o[u]===void 0&&(o[u]=c[u])}if(a||v){var l=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Je(o,l),v&&Ze(o,l)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,be=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var B;B=!1;function q(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===f}function he(){{if(L.current){var e=h(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=he();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+h(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):c=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",c,a)}var l=rr(e,r,t,i,u);if(l==null)return l;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>hr});var A=pr(Se()),hr={title:\"QStash SDK\",description:\"A typescript client and consumer for QStash.\",date:\"2023-07-18\",url:\"https://upstash.com/qstash\",repository:\"upstash/sdk-qstash-ts\"};function we(s){let f=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(f.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-dbf70bae-ef4b-4e57-bf5e-2ade17e6a204.mdx\",lineNumber:9,columnNumber:1},this)}function gr(s={}){let{wrapper:f}=s.components||{};return f?(0,A.jsxDEV)(f,Object.assign({},s,{children:(0,A.jsxDEV)(we,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-dbf70bae-ef4b-4e57-bf5e-2ade17e6a204.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-dbf70bae-ef4b-4e57-bf5e-2ade17e6a204.mdx\"},this):we(s)}var mr=gr;return br(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-qstash-sdk.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-qstash-sdk.mdx", - "sourceFileName": "upstash-qstash-sdk.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-qstash-sdk" - }, - "type": "Project", - "path": "/projects/upstash-qstash-sdk", - "slug": "upstash-qstash-sdk" - }, - "documentHash": "1677516964793", - "hasWarnings": false, - "documentTypeName": "Project" - } - } -} diff --git a/.contentlayer/.cache/v0.3.0/data-KFUTZ636.json b/.contentlayer/.cache/v0.3.0/data-KFUTZ636.json deleted file mode 100644 index 29d9642..0000000 --- a/.contentlayer/.cache/v0.3.0/data-KFUTZ636.json +++ /dev/null @@ -1,378 +0,0 @@ -{ - "cacheItemsMap": { - "projects/access.mdx": { - "document": { - "title": "@chronark/access", - "description": "A minimal library for access control. It is designed to be used together with opaque access tokens by providing a simple interface to define roles with different access permissions and verifying requests to resources.", - "date": "2022-11-13T00:00:00.000Z", - "repository": "chronark/access", - "body": { - "raw": "A minimal library for access control. It is designed to be used together with opaque access tokens by providing a simple interface to define roles with different access permissions and verifying requests to resources.\n\n- Fully typed\n- Zero dependencies\n- Serializable to store in a database\n\n## Install\n\n```sh-session\nnpm i @chronark/access\n```\n\n## Usage\n\n```ts\nimport { AccessControl, Role } from \"@chronark/access\";\n\n/**\n * Define all your resources and their access patterns\n *\n * key => resource\n * value => array of access types\n */\ntype Statements = {\n user: [\"read\", \"write\", \"dance\"];\n team: [\"read\", \"write\"];\n};\n\n/**\n * Create an access control instance and pass the Statements type to enjoy full\n * type safety\n */\nconst ac = new AccessControl();\n\n/**\n * Now you can define one or more roles by specifying the access permissions\n *\n * This is already fully typed and typescript will let you know if you try to\n * use anything, that is not defined in the Statements type.\n */\nconst role = ac.newRole({\n user: [\"read\", \"write\"],\n team: [\"read\"],\n});\n\n/**\n * Simulate storing and retrieving the role in a database\n *\n * The idea here is, that you can store permissions alongside an API token.\n * Now, when you verify the token, you can also verify the access permissions.\n */\nconst serialized = role.toString();\n\n/**\n * Note how you can pass in the Statements type again, to get full type safety\n */\nconst recovered = Role.fromString(serialized);\n\n/**\n * Validate the role by specifying the resource and the required access\n *\n * everything is fully typed\n */\nconst res = recovered.authorize({\"team\", [\"read\"]});\n\n// res.success => boolean\n// res.error => string | undefined provides a reason for failure\n```", - "code": "var Component=(()=>{var h=Object.create;var a=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,m=Object.prototype.hasOwnProperty;var F=(l,e)=>()=>(e||l((e={exports:{}}).exports,e),e.exports),N=(l,e)=>{for(var s in e)a(l,s,{get:e[s],enumerable:!0})},o=(l,e,s,r)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let c of y(e))!m.call(l,c)&&c!==s&&a(l,c,{get:()=>e[c],enumerable:!(r=p(e,c))||r.enumerable});return l};var u=(l,e,s)=>(s=l!=null?h(E(l)):{},o(e||!l||!l.__esModule?a(s,\"default\",{value:l,enumerable:!0}):s,l)),f=l=>o(a({},\"__esModule\",{value:!0}),l);var t=F((v,i)=>{i.exports=_jsx_runtime});var B={};N(B,{default:()=>D,frontmatter:()=>g});var n=u(t()),g={title:\"@chronark/access\",description:\"A minimal library for access control. It is designed to be used together with opaque access tokens by providing a simple interface to define roles with different access permissions and verifying requests to resources.\",repository:\"chronark/access\",date:\"2022-11-13\"};function d(l){let e=Object.assign({p:\"p\",ul:\"ul\",li:\"li\",h2:\"h2\",a:\"a\",span:\"span\",div:\"div\",pre:\"pre\",code:\"code\"},l.components);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.p,{children:\"A minimal library for access control. It is designed to be used together with opaque access tokens by providing a simple interface to define roles with different access permissions and verifying requests to resources.\"}),`\n`,(0,n.jsxs)(e.ul,{children:[`\n`,(0,n.jsx)(e.li,{children:\"Fully typed\"}),`\n`,(0,n.jsx)(e.li,{children:\"Zero dependencies\"}),`\n`,(0,n.jsx)(e.li,{children:\"Serializable to store in a database\"}),`\n`]}),`\n`,(0,n.jsxs)(e.h2,{id:\"install\",children:[(0,n.jsx)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#install\",children:(0,n.jsx)(e.span,{className:\"icon icon-link\"})}),\"Install\"]}),`\n`,(0,n.jsx)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsx)(e.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,n.jsx)(e.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#e1e4e8\"},children:\"npm i @chronark/access\"})})})})}),`\n`,(0,n.jsxs)(e.h2,{id:\"usage\",children:[(0,n.jsx)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#usage\",children:(0,n.jsx)(e.span,{className:\"icon icon-link\"})}),\"Usage\"]}),`\n`,(0,n.jsx)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsx)(e.pre,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,n.jsxs)(e.code,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:[(0,n.jsxs)(e.span,{className:\"line\",children:[(0,n.jsx)(e.span,{style:{color:\"#F97583\"},children:\"import\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" { AccessControl, Role } \"}),(0,n.jsx)(e.span,{style:{color:\"#F97583\"},children:\"from\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,n.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"@chronark/access\"'}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\";\"})]}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:\" \"}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\" * Define all your resources and their access patterns\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\" *\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\" * key => resource\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\" * value => array of access types\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\" */\"})}),`\n`,(0,n.jsxs)(e.span,{className:\"line\",children:[(0,n.jsx)(e.span,{style:{color:\"#F97583\"},children:\"type\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,n.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"Statements\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,n.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"})]}),`\n`,(0,n.jsxs)(e.span,{className:\"line\",children:[(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,n.jsx)(e.span,{style:{color:\"#FFAB70\"},children:\"user\"}),(0,n.jsx)(e.span,{style:{color:\"#F97583\"},children:\":\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" [\"}),(0,n.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"}),(0,n.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"write\"'}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"}),(0,n.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"dance\"'}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"];\"})]}),`\n`,(0,n.jsxs)(e.span,{className:\"line\",children:[(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,n.jsx)(e.span,{style:{color:\"#FFAB70\"},children:\"team\"}),(0,n.jsx)(e.span,{style:{color:\"#F97583\"},children:\":\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" [\"}),(0,n.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"}),(0,n.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"write\"'}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"];\"})]}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"};\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:\" \"}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\" * Create an access control instance and pass the Statements type to enjoy full\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\" * type safety\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\" */\"})}),`\n`,(0,n.jsxs)(e.span,{className:\"line\",children:[(0,n.jsx)(e.span,{style:{color:\"#F97583\"},children:\"const\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,n.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"ac\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,n.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,n.jsx)(e.span,{style:{color:\"#F97583\"},children:\"new\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,n.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"AccessControl\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"<\"}),(0,n.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"Statements\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\">();\"})]}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:\" \"}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\" * Now you can define one or more roles by specifying the access permissions\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\" *\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\" * This is already fully typed and typescript will let you know if you try to\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\" * use anything, that is not defined in the Statements type.\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\" */\"})}),`\n`,(0,n.jsxs)(e.span,{className:\"line\",children:[(0,n.jsx)(e.span,{style:{color:\"#F97583\"},children:\"const\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,n.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"role\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,n.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" ac.\"}),(0,n.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"newRole\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"})]}),`\n`,(0,n.jsxs)(e.span,{className:\"line\",children:[(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" user: [\"}),(0,n.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"}),(0,n.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"write\"'}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"],\"})]}),`\n`,(0,n.jsxs)(e.span,{className:\"line\",children:[(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" team: [\"}),(0,n.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"],\"})]}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"});\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:\" \"}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\" * Simulate storing and retrieving the role in a database\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\" *\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\" * The idea here is, that you can store permissions alongside an API token.\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\" * Now, when you verify the token, you can also verify the access permissions.\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\" */\"})}),`\n`,(0,n.jsxs)(e.span,{className:\"line\",children:[(0,n.jsx)(e.span,{style:{color:\"#F97583\"},children:\"const\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,n.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"serialized\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,n.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" role.\"}),(0,n.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"toString\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"();\"})]}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:\" \"}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\" * Note how you can pass in the Statements type again, to get full type safety\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\" */\"})}),`\n`,(0,n.jsxs)(e.span,{className:\"line\",children:[(0,n.jsx)(e.span,{style:{color:\"#F97583\"},children:\"const\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,n.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"recovered\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,n.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" Role.\"}),(0,n.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"fromString\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"<\"}),(0,n.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"Statements\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\">(serialized);\"})]}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:\" \"}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\" * Validate the role by specifying the resource and the required access\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\" *\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\" * everything is fully typed\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\" */\"})}),`\n`,(0,n.jsxs)(e.span,{className:\"line\",children:[(0,n.jsx)(e.span,{style:{color:\"#F97583\"},children:\"const\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,n.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"res\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,n.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" recovered.\"}),(0,n.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"authorize\"}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"}),(0,n.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"team\"'}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\", [\"}),(0,n.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'}),(0,n.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"]});\"})]}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:\" \"}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\"// res.success => boolean\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{color:\"#6A737D\"},children:\"// res.error => string | undefined provides a reason for failure\"})})]})})})]})}function A(l={}){let{wrapper:e}=l.components||{};return e?(0,n.jsx)(e,Object.assign({},l,{children:(0,n.jsx)(d,l)})):d(l)}var D=A;return f(B);})();\n;return Component;" - }, - "_id": "projects/access.mdx", - "_raw": { - "sourceFilePath": "projects/access.mdx", - "sourceFileName": "access.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/access" - }, - "type": "Project", - "path": "/projects/access", - "slug": "access" - }, - "documentHash": "1679527360059", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/envshare.mdx": { - "document": { - "title": "envshare.dev", - "description": "EnvShare is a simple tool to share environment variables securely. It uses AES-GCM to encrypt your data before sending it to the server. The encryption key never leaves your browser.", - "date": "2023-01-16T00:00:00.000Z", - "url": "https://envshare.dev", - "repository": "chronark/envshare", - "body": { - "raw": "\nEnvShare is a simple tool to share environment variables securely. It uses\n**AES-GCM** to encrypt your data before sending it to the server. The encryption\nkey never leaves your browser.\n\n## Features\n\n- **Shareable Links:** Share your environment variables securely by sending a\n link\n- **End-to-End Encryption:** AES-GCM encryption is used to encrypt your data\n before sending it to the server\n- **Limit number of reads:** Limit the number of times a link can be read\n- **Auto Expire:** Automatically expire links and delete data after a certain\n time\n\n\n\n![](https://github.com/chronark/envshare/raw/main/img/envshare.png)\n\n## Built with\n\n- [Next.js](https://nextjs.org)\n- [tailwindcss](https://tailwindcss.com)\n- Deployed on [Vercel](https://vercel.com?utm_source=envshare)\n- Data stored on [Upstash](https://upstash.com?utm_source=envshare)\n\n## Deploy your own\n\nDetailed instructions can be found [here](https://envshare.dev/deploy)\n\nAll you need is a Redis database on Upstash and a Vercel account. Click the\nbutton below to clone and deploy:\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?demo-title=EnvShare&demo-description=Simple%20Next.js%20%2B%20Upstash%20app%20to%20share%20environment%20variables%20securely%20using%20AES-GCM%20encryption.&demo-url=https%3A%2F%2Fenvshare.dev%2F&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5SaFBHXp5FBFJbsTzVqIJ3%2Ff0f8382369b7642fd8103debb9025c11%2Fenvshare.png&project-name=EnvShare&repository-name=envshare&repository-url=https%3A%2F%2Fgithub.com%2Fchronark%2Fenvshare&from=templates&integration-ids=oac_V3R1GIpkoJorr6fqyiwdhl17)\n\n\n\n## Configuration\n\n### Environment Variables\n\n`ENABLE_VERCEL_ANALYTICS` Any truthy value will enable Vercel Analytics. This is turned off by default\n\n## Contributing\n\nThis repository uses `pnpm` to manage dependencies. Install it using\n`npm install -g pnpm`\n\nPlease run `pnpm fmt` before committing to format the code.\n\n## Docs\n\nDocs in the README are temporary and will be moved to the website soon.\n\n### API\n\n#### Store a secret\n\n**PLEASE NEVER EVER UPLOAD UNENCRYPTED SECRETS.**\n\nThis endpoint is only meant to store **already encrypted** secrets. The\nencrypted secrets are stored in plain text.\n\n```sh-session\n$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\"\n```\n\nYou can add optional headers to configure the ttl and number of reads.\n\n```sh-session\n$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\" -H \"envshare-ttl: 3600\" -H \"envshare-reads: 10\"\n```\n\n- Omitting the `envshare-ttl` header will set a default of 30 days. Disable the\n ttl by setting it to 0. (`envshare-ttl: 0`)\n- Omitting the `envshare-reads` header will simply disable it and allow reading\n for an unlimited number of times.\n\nThis endpoint returns a JSON response with the secret id:\n\n```json\n{\n \"data\": {\n \"id\": \"HdPbXgpvUvNk43oxSdK97u\",\n \"ttl\": 86400,\n \"reads\": 2,\n \"expiresAt\": \"2023-01-19T20:47:28.383Z\",\n \"url\": \"http://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"\n }\n}\n```\n\n#### Retrieve a secret\n\nYou need an id to retrieve a secret. The id is returned when you store a secret.\n\n```sh-session\n$ curl -s https://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\n```\n\n```json\n{\n \"data\": {\n \"secret\": \"Hello\",\n \"remainingReads\": 1\n }\n}\n```", - "code": "var Component=(()=>{var dn=Object.create;var O=Object.defineProperty;var ln=Object.getOwnPropertyDescriptor;var un=Object.getOwnPropertyNames;var mn=Object.getPrototypeOf,hn=Object.prototype.hasOwnProperty;var X=(l,n)=>()=>(n||l((n={exports:{}}).exports,n),n.exports),bn=(l,n)=>{for(var _ in n)O(l,_,{get:n[_],enumerable:!0})},ye=(l,n,_,x)=>{if(n&&typeof n==\"object\"||typeof n==\"function\")for(let k of un(n))!hn.call(l,k)&&k!==_&&O(l,k,{get:()=>n[k],enumerable:!(x=ln(n,k))||x.enumerable});return l};var fn=(l,n,_)=>(_=l!=null?dn(mn(l)):{},ye(n||!l||!l.__esModule?O(_,\"default\",{value:l,enumerable:!0}):_,l)),_n=l=>ye(O({},\"__esModule\",{value:!0}),l);var ve=X((gn,ge)=>{ge.exports=React});var Ee=X(H=>{\"use strict\";(function(){\"use strict\";var l=ve(),n=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),x=Symbol.for(\"react.fragment\"),k=Symbol.for(\"react.strict_mode\"),q=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),z=Symbol.for(\"react.context\"),R=Symbol.for(\"react.forward_ref\"),A=Symbol.for(\"react.suspense\"),D=Symbol.for(\"react.suspense_list\"),F=Symbol.for(\"react.memo\"),L=Symbol.for(\"react.lazy\"),Fe=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Te=\"@@iterator\";function we(e){if(e===null||typeof e!=\"object\")return null;var a=J&&e[J]||e[Te];return typeof a==\"function\"?a:null}var g=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function h(e){{for(var a=arguments.length,t=new Array(a>1?a-1:0),c=1;c=1&&m>=0&&o[u]!==b[m];)m--;for(;u>=1&&m>=0;u--,m--)if(o[u]!==b[m]){if(u!==1||m!==1)do if(u--,m--,m<0||o[u]!==b[m]){var f=`\n`+o[u].replace(\" at new \",\" at \");return e.displayName&&f.includes(\"\")&&(f=f.replace(\"\",e.displayName)),typeof e==\"function\"&&w.set(e,f),f}while(u>=1&&m>=0);break}}}finally{V=!1,I.current=d,Ve(),Error.prepareStackTrace=i}var E=e?e.displayName||e.name:\"\",xe=E?T(E):\"\";return typeof e==\"function\"&&w.set(e,xe),xe}function $e(e,a,t){return ie(e,!1)}function Me(e){var a=e.prototype;return!!(a&&a.isReactComponent)}function S(e,a,t){if(e==null)return\"\";if(typeof e==\"function\")return ie(e,Me(e));if(typeof e==\"string\")return T(e);switch(e){case A:return T(\"Suspense\");case D:return T(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case R:return $e(e.render);case F:return S(e.type,a,t);case L:{var c=e,i=c._payload,d=c._init;try{return S(d(i),a,t)}catch{}}}return\"\"}var C=Object.prototype.hasOwnProperty,de={},le=g.ReactDebugCurrentFrame;function P(e){if(e){var a=e._owner,t=S(e.type,e._source,a?a.type:null);le.setExtraStackFrame(t)}else le.setExtraStackFrame(null)}function We(e,a,t,c,i){{var d=Function.call.bind(C);for(var s in e)if(d(e,s)){var o=void 0;try{if(typeof e[s]!=\"function\"){var b=Error((c||\"React class\")+\": \"+t+\" type `\"+s+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[s]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw b.name=\"Invariant Violation\",b}o=e[s](a,s,c,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(u){o=u}o&&!(o instanceof Error)&&(P(i),h(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",c||\"React class\",t,s,typeof o),P(null)),o instanceof Error&&!(o.message in de)&&(de[o.message]=!0,P(i),h(\"Failed %s type: %s\",t,o.message),P(null))}}}var Ge=Array.isArray;function Y(e){return Ge(e)}function Xe(e){{var a=typeof Symbol==\"function\"&&Symbol.toStringTag,t=a&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function He(e){try{return ue(e),!1}catch{return!0}}function ue(e){return\"\"+e}function me(e){if(He(e))return h(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Xe(e)),ue(e)}var U=g.ReactCurrentOwner,qe={key:!0,ref:!0,__self:!0,__source:!0},he,be,$;$={};function Ke(e){if(C.call(e,\"ref\")){var a=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(a&&a.isReactWarning)return!1}return e.ref!==void 0}function ze(e){if(C.call(e,\"key\")){var a=Object.getOwnPropertyDescriptor(e,\"key\").get;if(a&&a.isReactWarning)return!1}return e.key!==void 0}function Je(e,a){if(typeof e.ref==\"string\"&&U.current&&a&&U.current.stateNode!==a){var t=p(U.current.type);$[t]||(h('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(U.current.type),e.ref),$[t]=!0)}}function Ze(e,a){{var t=function(){he||(he=!0,h(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,a){{var t=function(){be||(be=!0,h(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var en=function(e,a,t,c,i,d,s){var o={$$typeof:n,type:e,key:a,ref:t,props:s,_owner:d};return o._store={},Object.defineProperty(o._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(o,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:c}),Object.defineProperty(o,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(o.props),Object.freeze(o)),o};function nn(e,a,t,c,i){{var d,s={},o=null,b=null;t!==void 0&&(me(t),o=\"\"+t),ze(a)&&(me(a.key),o=\"\"+a.key),Ke(a)&&(b=a.ref,Je(a,i));for(d in a)C.call(a,d)&&!qe.hasOwnProperty(d)&&(s[d]=a[d]);if(e&&e.defaultProps){var u=e.defaultProps;for(d in u)s[d]===void 0&&(s[d]=u[d])}if(o||b){var m=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;o&&Ze(s,m),b&&Qe(s,m)}return en(e,o,b,i,c,U.current,s)}}var M=g.ReactCurrentOwner,fe=g.ReactDebugCurrentFrame;function v(e){if(e){var a=e._owner,t=S(e.type,e._source,a?a.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}var W;W=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===n}function _e(){{if(M.current){var e=p(M.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function rn(e){{if(e!==void 0){var a=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+a+\":\"+t+\".\"}return\"\"}}var pe={};function an(e){{var a=_e();if(!a){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(a=`\n\nCheck the top-level render call using <`+t+\">.\")}return a}}function Ne(e,a){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=an(a);if(pe[t])return;pe[t]=!0;var c=\"\";e&&e._owner&&e._owner!==M.current&&(c=\" It was passed a child from \"+p(e._owner.type)+\".\"),v(e),h('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,c),v(null)}}function ke(e,a){{if(typeof e!=\"object\")return;if(Y(e))for(var t=0;t\",o=\" Did you accidentally export a JSX literal instead of a component?\"):u=typeof e,h(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",u,o)}var m=nn(e,a,t,i,d);if(m==null)return m;if(s){var f=a.children;if(f!==void 0)if(c)if(Y(f)){for(var E=0;E{\"use strict\";je.exports=Ee()});var xn={};bn(xn,{default:()=>kn,frontmatter:()=>pn});var r=fn(Ue()),pn={title:\"envshare.dev\",description:\"EnvShare is a simple tool to share environment variables securely. It uses AES-GCM to encrypt your data before sending it to the server. The encryption key never leaves your browser.\",date:\"2023-01-16\",url:\"https://envshare.dev\",repository:\"chronark/envshare\"};function Re(l){let n=Object.assign({p:\"p\",strong:\"strong\",h2:\"h2\",a:\"a\",span:\"span\",ul:\"ul\",li:\"li\",img:\"img\",h3:\"h3\",code:\"code\",h4:\"h4\",div:\"div\",pre:\"pre\"},l.components);return(0,r.jsxDEV)(r.Fragment,{children:[(0,r.jsxDEV)(n.p,{children:[`EnvShare is a simple tool to share environment variables securely. It uses\n`,(0,r.jsxDEV)(n.strong,{children:\"AES-GCM\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:11,columnNumber:1},this),` to encrypt your data before sending it to the server. The encryption\nkey never leaves your browser.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"features\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#features\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\"},this),\"Features\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Shareable Links:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:16,columnNumber:3},this),` Share your environment variables securely by sending a\nlink`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"End-to-End Encryption:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:18,columnNumber:3},this),` AES-GCM encryption is used to encrypt your data\nbefore sending it to the server`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Limit number of reads:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:20,columnNumber:3},this),\" Limit the number of times a link can be read\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Auto Expire:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:21,columnNumber:3},this),` Automatically expire links and delete data after a certain\ntime`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:21,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.img,{src:\"https://github.com/chronark/envshare/raw/main/img/envshare.png\",alt:\"\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:26,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:26,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"built-with\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#built-with\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\"},this),\"Built with\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:28,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:(0,r.jsxDEV)(n.a,{href:\"https://nextjs.org\",children:\"Next.js\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:30,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:(0,r.jsxDEV)(n.a,{href:\"https://tailwindcss.com\",children:\"tailwindcss\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:31,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Deployed on \",(0,r.jsxDEV)(n.a,{href:\"https://vercel.com?utm_source=envshare\",children:\"Vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:32,columnNumber:15},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:32,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Data stored on \",(0,r.jsxDEV)(n.a,{href:\"https://upstash.com?utm_source=envshare\",children:\"Upstash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:33,columnNumber:18},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:33,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"deploy-your-own\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#deploy-your-own\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\"},this),\"Deploy your own\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"Detailed instructions can be found \",(0,r.jsxDEV)(n.a,{href:\"https://envshare.dev/deploy\",children:\"here\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:37,columnNumber:36},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:37,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:`All you need is a Redis database on Upstash and a Vercel account. Click the\nbutton below to clone and deploy:`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:39,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.a,{href:\"https://vercel.com/new/clone?demo-title=EnvShare&demo-description=Simple%20Next.js%20%2B%20Upstash%20app%20to%20share%20environment%20variables%20securely%20using%20AES-GCM%20encryption.&demo-url=https%3A%2F%2Fenvshare.dev%2F&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5SaFBHXp5FBFJbsTzVqIJ3%2Ff0f8382369b7642fd8103debb9025c11%2Fenvshare.png&project-name=EnvShare&repository-name=envshare&repository-url=https%3A%2F%2Fgithub.com%2Fchronark%2Fenvshare&from=templates&integration-ids=oac_V3R1GIpkoJorr6fqyiwdhl17\",children:(0,r.jsxDEV)(n.img,{src:\"https://vercel.com/button\",alt:\"Deploy with Vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:42,columnNumber:2},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:42,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:42,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"configuration\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#configuration\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\"},this),\"Configuration\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:46,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h3,{id:\"environment-variables\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#environment-variables\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\"},this),\"Environment Variables\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:48,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[(0,r.jsxDEV)(n.code,{children:\"ENABLE_VERCEL_ANALYTICS\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:50,columnNumber:1},this),\" Any truthy value will enable Vercel Analytics. This is turned off by default\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:50,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"contributing\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#contributing\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\"},this),\"Contributing\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:52,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"This repository uses \",(0,r.jsxDEV)(n.code,{children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:54,columnNumber:22},this),` to manage dependencies. Install it using\n`,(0,r.jsxDEV)(n.code,{children:\"npm install -g pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:55,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:54,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"Please run \",(0,r.jsxDEV)(n.code,{children:\"pnpm fmt\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:57,columnNumber:12},this),\" before committing to format the code.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:57,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"docs\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#docs\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\"},this),\"Docs\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:59,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"Docs in the README are temporary and will be moved to the website soon.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:61,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h3,{id:\"api\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#api\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\"},this),\"API\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:63,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h4,{id:\"store-a-secret\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#store-a-secret\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\"},this),\"Store a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:65,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.strong,{children:\"PLEASE NEVER EVER UPLOAD UNENCRYPTED SECRETS.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:67,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:67,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"This endpoint is only meant to store \",(0,r.jsxDEV)(n.strong,{children:\"already encrypted\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:69,columnNumber:38},this),` secrets. The\nencrypted secrets are stored in plain text.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:69,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:'$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:72,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"You can add optional headers to configure the ttl and number of reads.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:76,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:'$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\" -H \"envshare-ttl: 3600\" -H \"envshare-reads: 10\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:78,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:[\"Omitting the \",(0,r.jsxDEV)(n.code,{children:\"envshare-ttl\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:82,columnNumber:16},this),` header will set a default of 30 days. Disable the\nttl by setting it to 0. (`,(0,r.jsxDEV)(n.code,{children:\"envshare-ttl: 0\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:83,columnNumber:28},this),\")\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Omitting the \",(0,r.jsxDEV)(n.code,{children:\"envshare-reads\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:84,columnNumber:16},this),` header will simply disable it and allow reading\nfor an unlimited number of times.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:84,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"This endpoint returns a JSON response with the secret id:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:87,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"json\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"json\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"data\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"id\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:3,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:3,columnNumber:110},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"HdPbXgpvUvNk43oxSdK97u\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:3,columnNumber:148},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:3,columnNumber:218},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"ttl\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:4,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:4,columnNumber:111},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"86400\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:4,columnNumber:149},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:4,columnNumber:190},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:5,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"reads\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:5,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:5,columnNumber:113},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"2\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:5,columnNumber:151},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:5,columnNumber:188},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:6,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"expiresAt\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:6,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:6,columnNumber:117},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"2023-01-19T20:47:28.383Z\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:6,columnNumber:155},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:6,columnNumber:227},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:7,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"url\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:7,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:7,columnNumber:111},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"http://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:7,columnNumber:149},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:9,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:89,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h4,{id:\"retrieve-a-secret\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#retrieve-a-secret\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\"},this),\"Retrieve a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:101,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"You need an id to retrieve a secret. The id is returned when you store a secret.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:103,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:\"$ curl -s https://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:105,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"json\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"json\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"data\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"secret\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:3,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:3,columnNumber:114},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"Hello\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:3,columnNumber:152},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:3,columnNumber:205},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"remainingReads\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:4,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:4,columnNumber:122},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:4,columnNumber:160},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:5,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:6,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:109,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\",lineNumber:1,columnNumber:1},this)}function Nn(l={}){let{wrapper:n}=l.components||{};return n?(0,r.jsxDEV)(n,Object.assign({},l,{children:(0,r.jsxDEV)(Re,l,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-04a4d33c-3d27-4256-810b-385bc2834cac.mdx\"},this):Re(l)}var kn=Nn;return _n(xn);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/envshare.mdx", - "_raw": { - "sourceFilePath": "projects/envshare.mdx", - "sourceFileName": "envshare.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/envshare" - }, - "type": "Project", - "path": "/projects/envshare", - "slug": "envshare" - }, - "documentHash": "1679527941563", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/planetfall.mdx": { - "document": { - "title": "planetfall.io", - "description": "I'm building a SAAS, that provides global latency monitoring for your APIs and websites from edge locations around the world. Have you ever wondered how fast your API is in any part of the world? Planetfall allows you to find out and monitor it continuously.", - "date": "2023-04-01T00:00:00.000Z", - "url": "https://planetfall.io", - "body": { - "raw": "\n\nI'm building a SAAS, that provides global latency monitoring for your APIs and websites from edge locations around the world. Have you ever wondered how fast your API is in any part of the world? Planetfall allows you to find out and monitor it continuously.", - "code": "var Component=(()=>{var c=Object.create;var a=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty;var w=(o,t)=>()=>(t||o((t={exports:{}}).exports,t),t.exports),h=(o,t)=>{for(var n in t)a(o,n,{get:t[n],enumerable:!0})},l=(o,t,n,i)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let e of m(t))!p.call(o,e)&&e!==n&&a(o,e,{get:()=>t[e],enumerable:!(i=f(t,e))||i.enumerable});return o};var g=(o,t,n)=>(n=o!=null?c(y(o)):{},l(t||!o||!o.__esModule?a(n,\"default\",{value:o,enumerable:!0}):n,o)),b=o=>l(a({},\"__esModule\",{value:!0}),o);var d=w((j,s)=>{s.exports=_jsx_runtime});var I={};h(I,{default:()=>v,frontmatter:()=>A});var r=g(d()),A={title:\"planetfall.io\",description:\"I'm building a SAAS, that provides global latency monitoring for your APIs and websites from edge locations around the world. Have you ever wondered how fast your API is in any part of the world? Planetfall allows you to find out and monitor it continuously.\",date:\"2023-04-01\",url:\"https://planetfall.io\"};function u(o){let t=Object.assign({p:\"p\"},o.components);return(0,r.jsx)(t.p,{children:\"I'm building a SAAS, that provides global latency monitoring for your APIs and websites from edge locations around the world. Have you ever wondered how fast your API is in any part of the world? Planetfall allows you to find out and monitor it continuously.\"})}function x(o={}){let{wrapper:t}=o.components||{};return t?(0,r.jsx)(t,Object.assign({},o,{children:(0,r.jsx)(u,o)})):u(o)}var v=x;return b(I);})();\n;return Component;" - }, - "_id": "projects/planetfall.mdx", - "_raw": { - "sourceFilePath": "projects/planetfall.mdx", - "sourceFileName": "planetfall.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/planetfall" - }, - "type": "Project", - "path": "/projects/planetfall", - "slug": "planetfall" - }, - "documentHash": "1679527360059", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/qstash.mdx": { - "document": { - "title": "QStash", - "description": "QStash is a fully managed serverless queue and messaging service designed for the serverless era.", - "date": "2022-07-18T00:00:00.000Z", - "url": "https://upstash.com/qstash", - "body": { - "raw": "\nQStash is an HTTP based messaging and scheduling solution for the serverless and edge runtimes.\n\n- 100% serverless, no stateful connections required. Messages are pushed to your API.\n- At-least-once delivery guaranteed to any public API\n- Pubsub via topics\n- Delay message delivery\n- Message deduplication\n- Scheduling via CRON\n\n\nFormally, QStash is a message queue and task scheduler designed for serverless runtimes. Informally, QStash is a glue for your serverless functions.\n\nThere was a perception serverless was only good for simple tasks. Not anymore. People build powerful systems with serverless stack. Powerful systems are composed of multiple components. Communication among those components is a big engineering problem. There are already great solutions for this problem. But we think existing solutions do not fit in serverless space. Either they are too complex or not designed to work with stateless runtimes. So we want a solution which (is):\n\n- Works anywhere including serverless and edge.\n- Messaging as a service with no backend for users to run.\n- Lightweight, easy to understand, requires nothing to learn.\n- Price scales to zero.\n\nLet's talk about a real world example. We have an e-commerce app and we want to send an informational email after each purchase. We have a service (an API route) for new purchases (newPurchase) and a second service for sending emails and notifications (sendEmail). We can call the sendEmail service from the newPurchase service. But what if the call fails? Should we wait for the response and retry? What if too many calls congest the sendEmail service and the service does not respond on time? You need to handle all these cases in your newPurchase service. Moreover, when you change the contract of sendEmail service; you have to update your newPurchase service too.\n\nIf you use QStash in the above example, you simply send a request to QStash from the newPurchase service. QStash will queue the request and call the sendEmail service. If the service does not respond, QStash will retry with a backoff strategy. The latency of sendEmail service will not affect the newPurchase service, because it will not wait for a response from the sendEmail service. QStash decouples the newPurchase and sendEmail services. You can update both services independently as long as you keep the message format compatible.\n\nWith QStash, you can add delays to the requests. Send an email 3 days after the shipment to remind the customer to add a review. You can also schedule tasks. You can send the requests with a CRON expression, so it will be run repetitively.\n\n\nTo learn more about QStash, visit [upstash.com/qstash](upstash.com/qstash).", - "code": "var Component=(()=>{var d=Object.create;var r=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var g=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),v=(n,e)=>{for(var t in e)r(n,t,{get:e[t],enumerable:!0})},o=(n,e,t,i)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let a of m(e))!f.call(n,a)&&a!==t&&r(n,a,{get:()=>e[a],enumerable:!(i=u(e,a))||i.enumerable});return n};var w=(n,e,t)=>(t=n!=null?d(p(n)):{},o(e||!n||!n.__esModule?r(t,\"default\",{value:n,enumerable:!0}):t,n)),y=n=>o(r({},\"__esModule\",{value:!0}),n);var c=g((Q,l)=>{l.exports=_jsx_runtime});var x={};v(x,{default:()=>P,frontmatter:()=>b});var s=w(c()),b={title:\"QStash\",description:\"QStash is a fully managed serverless queue and messaging service designed for the serverless era.\",date:\"2022-07-18\",url:\"https://upstash.com/qstash\"};function h(n){let e=Object.assign({p:\"p\",ul:\"ul\",li:\"li\",a:\"a\"},n.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(e.p,{children:\"QStash is an HTTP based messaging and scheduling solution for the serverless and edge runtimes.\"}),`\n`,(0,s.jsxs)(e.ul,{children:[`\n`,(0,s.jsx)(e.li,{children:\"100% serverless, no stateful connections required. Messages are pushed to your API.\"}),`\n`,(0,s.jsx)(e.li,{children:\"At-least-once delivery guaranteed to any public API\"}),`\n`,(0,s.jsx)(e.li,{children:\"Pubsub via topics\"}),`\n`,(0,s.jsx)(e.li,{children:\"Delay message delivery\"}),`\n`,(0,s.jsx)(e.li,{children:\"Message deduplication\"}),`\n`,(0,s.jsx)(e.li,{children:\"Scheduling via CRON\"}),`\n`]}),`\n`,(0,s.jsx)(e.p,{children:\"Formally, QStash is a message queue and task scheduler designed for serverless runtimes. Informally, QStash is a glue for your serverless functions.\"}),`\n`,(0,s.jsx)(e.p,{children:\"There was a perception serverless was only good for simple tasks. Not anymore. People build powerful systems with serverless stack. Powerful systems are composed of multiple components. Communication among those components is a big engineering problem. There are already great solutions for this problem. But we think existing solutions do not fit in serverless space. Either they are too complex or not designed to work with stateless runtimes. So we want a solution which (is):\"}),`\n`,(0,s.jsxs)(e.ul,{children:[`\n`,(0,s.jsx)(e.li,{children:\"Works anywhere including serverless and edge.\"}),`\n`,(0,s.jsx)(e.li,{children:\"Messaging as a service with no backend for users to run.\"}),`\n`,(0,s.jsx)(e.li,{children:\"Lightweight, easy to understand, requires nothing to learn.\"}),`\n`,(0,s.jsx)(e.li,{children:\"Price scales to zero.\"}),`\n`]}),`\n`,(0,s.jsx)(e.p,{children:\"Let's talk about a real world example. We have an e-commerce app and we want to send an informational email after each purchase. We have a service (an API route) for new purchases (newPurchase) and a second service for sending emails and notifications (sendEmail). We can call the sendEmail service from the newPurchase service. But what if the call fails? Should we wait for the response and retry? What if too many calls congest the sendEmail service and the service does not respond on time? You need to handle all these cases in your newPurchase service. Moreover, when you change the contract of sendEmail service; you have to update your newPurchase service too.\"}),`\n`,(0,s.jsx)(e.p,{children:\"If you use QStash in the above example, you simply send a request to QStash from the newPurchase service. QStash will queue the request and call the sendEmail service. If the service does not respond, QStash will retry with a backoff strategy. The latency of sendEmail service will not affect the newPurchase service, because it will not wait for a response from the sendEmail service. QStash decouples the newPurchase and sendEmail services. You can update both services independently as long as you keep the message format compatible.\"}),`\n`,(0,s.jsx)(e.p,{children:\"With QStash, you can add delays to the requests. Send an email 3 days after the shipment to remind the customer to add a review. You can also schedule tasks. You can send the requests with a CRON expression, so it will be run repetitively.\"}),`\n`,(0,s.jsxs)(e.p,{children:[\"To learn more about QStash, visit \",(0,s.jsx)(e.a,{href:\"upstash.com/qstash\",children:\"upstash.com/qstash\"}),\".\"]})]})}function S(n={}){let{wrapper:e}=n.components||{};return e?(0,s.jsx)(e,Object.assign({},n,{children:(0,s.jsx)(h,n)})):h(n)}var P=S;return y(x);})();\n;return Component;" - }, - "_id": "projects/qstash.mdx", - "_raw": { - "sourceFilePath": "projects/qstash.mdx", - "sourceFileName": "qstash.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/qstash" - }, - "type": "Project", - "path": "/projects/qstash", - "slug": "qstash" - }, - "documentHash": "1679527764267", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/terraform-provider-vercel.mdx": { - "document": { - "title": "Vercel Terraform Provider", - "description": "A Terraform provider for Vercel. It has been deprecated it when Vercel rolled out their official provider.", - "date": "2021-03-16T00:00:00.000Z", - "url": "https://registry.terraform.io/providers/chronark/vercel/latest", - "repository": "chronark/terraform-provider-vercel", - "body": { - "raw": "\n\n\nBack in the day when Vercel didn't have an official Terraform provider, I wrote one. \nI needed to manage my Vercel projects and especially sync environment variables from different cloud providers.\nTerraform was great to provision some postgres databases on digital ocean, but there was no way to sync the credentials with Vercel.\n\n```hcl\nterraform {\n required_providers {\n vercel = {\n source = \"registry.terraform.io/chronark/vercel\"\n version = \">=0.10.3\"\n }\n }\n}\n\nprovider \"vercel\" {\n token = \"\"\n}\n\nresource \"vercel_project\" \"my_project\" {\n name = \"project-via-terraform\"\n git_repository {\n type = \"github\"\n repo = \"chronark/terraform-provider-vercel\"\n }\n}\n```\n\nIt was a fun project and I learned a lot about Terraform and Vercel's API. \nIt gave me the opportunity to contribute to the Terraform ecosystem and my appreciation for the work that the Terraform team does is immense.\n\nThere have been quite a few individuals and teams that have used this provider and I am happy that it has been useful to you.\n\nNow that Vercel have stepped in, I have decided to [deprecate](https://twitter.com/chronark_/status/1517759708983177218) this one on April 23rd 2022. \n\nPlease use the [official provider](https://registry.terraform.io/providers/vercel/vercel/latest) instead.", - "code": "var Component=(()=>{var p=Object.create;var a=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,m=Object.prototype.hasOwnProperty;var F=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),f=(n,e)=>{for(var l in e)a(n,l,{get:e[l],enumerable:!0})},o=(n,e,l,c)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let s of E(e))!m.call(n,s)&&s!==l&&a(n,s,{get:()=>e[s],enumerable:!(c=h(e,s))||c.enumerable});return n};var v=(n,e,l)=>(l=n!=null?p(y(n)):{},o(e||!n||!n.__esModule?a(l,\"default\",{value:n,enumerable:!0}):l,n)),u=n=>o(a({},\"__esModule\",{value:!0}),n);var i=F((_,t)=>{t.exports=_jsx_runtime});var w={};f(w,{default:()=>g,frontmatter:()=>B});var r=v(i()),B={title:\"Vercel Terraform Provider\",description:\"A Terraform provider for Vercel. It has been deprecated it when Vercel rolled out their official provider.\",date:\"2021-03-16\",repository:\"chronark/terraform-provider-vercel\",url:\"https://registry.terraform.io/providers/chronark/vercel/latest\"};function d(n){let e=Object.assign({p:\"p\",div:\"div\",pre:\"pre\",code:\"code\",span:\"span\",a:\"a\"},n.components);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.p,{children:`Back in the day when Vercel didn't have an official Terraform provider, I wrote one.\nI needed to manage my Vercel projects and especially sync environment variables from different cloud providers.\nTerraform was great to provision some postgres databases on digital ocean, but there was no way to sync the credentials with Vercel.`}),`\n`,(0,r.jsx)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsx)(e.pre,{\"data-language\":\"hcl\",\"data-theme\":\"default\",children:(0,r.jsxs)(e.code,{\"data-language\":\"hcl\",\"data-theme\":\"default\",children:[(0,r.jsxs)(e.span,{className:\"line\",children:[(0,r.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"terraform\"}),(0,r.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"})]}),`\n`,(0,r.jsxs)(e.span,{className:\"line\",children:[(0,r.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,r.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"required_providers\"}),(0,r.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"})]}),`\n`,(0,r.jsxs)(e.span,{className:\"line\",children:[(0,r.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" vercel\"}),(0,r.jsx)(e.span,{style:{color:\"#FFAB70\"},children:\" \"}),(0,r.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,r.jsx)(e.span,{style:{color:\"#FFAB70\"},children:\" \"}),(0,r.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"{\"})]}),`\n`,(0,r.jsxs)(e.span,{className:\"line\",children:[(0,r.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" source \"}),(0,r.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,r.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,r.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"registry.terraform.io/chronark/vercel\"'})]}),`\n`,(0,r.jsxs)(e.span,{className:\"line\",children:[(0,r.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" version \"}),(0,r.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,r.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,r.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\">=0.10.3\"'})]}),`\n`,(0,r.jsx)(e.span,{className:\"line\",children:(0,r.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" }\"})}),`\n`,(0,r.jsx)(e.span,{className:\"line\",children:(0,r.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" }\"})}),`\n`,(0,r.jsx)(e.span,{className:\"line\",children:(0,r.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"}\"})}),`\n`,(0,r.jsx)(e.span,{className:\"line\",children:\" \"}),`\n`,(0,r.jsxs)(e.span,{className:\"line\",children:[(0,r.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"provider\"}),(0,r.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,r.jsx)(e.span,{style:{color:\"#79B8FF\"},children:'\"vercel\"'}),(0,r.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"})]}),`\n`,(0,r.jsxs)(e.span,{className:\"line\",children:[(0,r.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" token\"}),(0,r.jsx)(e.span,{style:{color:\"#FFAB70\"},children:\" \"}),(0,r.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,r.jsx)(e.span,{style:{color:\"#FFAB70\"},children:\" \"}),(0,r.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'})]}),`\n`,(0,r.jsx)(e.span,{className:\"line\",children:(0,r.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"}\"})}),`\n`,(0,r.jsx)(e.span,{className:\"line\",children:\" \"}),`\n`,(0,r.jsxs)(e.span,{className:\"line\",children:[(0,r.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"resource\"}),(0,r.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,r.jsx)(e.span,{style:{color:\"#79B8FF\"},children:'\"vercel_project\"'}),(0,r.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,r.jsx)(e.span,{style:{color:\"#79B8FF\"},children:'\"my_project\"'}),(0,r.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"})]}),`\n`,(0,r.jsxs)(e.span,{className:\"line\",children:[(0,r.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" name\"}),(0,r.jsx)(e.span,{style:{color:\"#FFAB70\"},children:\" \"}),(0,r.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,r.jsx)(e.span,{style:{color:\"#FFAB70\"},children:\" \"}),(0,r.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"project-via-terraform\"'})]}),`\n`,(0,r.jsxs)(e.span,{className:\"line\",children:[(0,r.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,r.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"git_repository\"}),(0,r.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"})]}),`\n`,(0,r.jsxs)(e.span,{className:\"line\",children:[(0,r.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" type\"}),(0,r.jsx)(e.span,{style:{color:\"#FFAB70\"},children:\" \"}),(0,r.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,r.jsx)(e.span,{style:{color:\"#FFAB70\"},children:\" \"}),(0,r.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"github\"'})]}),`\n`,(0,r.jsxs)(e.span,{className:\"line\",children:[(0,r.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" repo\"}),(0,r.jsx)(e.span,{style:{color:\"#FFAB70\"},children:\" \"}),(0,r.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,r.jsx)(e.span,{style:{color:\"#FFAB70\"},children:\" \"}),(0,r.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"chronark/terraform-provider-vercel\"'})]}),`\n`,(0,r.jsx)(e.span,{className:\"line\",children:(0,r.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" }\"})}),`\n`,(0,r.jsx)(e.span,{className:\"line\",children:(0,r.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"}\"})})]})})}),`\n`,(0,r.jsx)(e.p,{children:`It was a fun project and I learned a lot about Terraform and Vercel's API.\nIt gave me the opportunity to contribute to the Terraform ecosystem and my appreciation for the work that the Terraform team does is immense.`}),`\n`,(0,r.jsx)(e.p,{children:\"There have been quite a few individuals and teams that have used this provider and I am happy that it has been useful to you.\"}),`\n`,(0,r.jsxs)(e.p,{children:[\"Now that Vercel have stepped in, I have decided to \",(0,r.jsx)(e.a,{href:\"https://twitter.com/chronark_/status/1517759708983177218\",children:\"deprecate\"}),\" this one on April 23rd 2022.\"]}),`\n`,(0,r.jsxs)(e.p,{children:[\"Please use the \",(0,r.jsx)(e.a,{href:\"https://registry.terraform.io/providers/vercel/vercel/latest\",children:\"official provider\"}),\" instead.\"]})]})}function N(n={}){let{wrapper:e}=n.components||{};return e?(0,r.jsx)(e,Object.assign({},n,{children:(0,r.jsx)(d,n)})):d(n)}var g=N;return u(w);})();\n;return Component;" - }, - "_id": "projects/terraform-provider-vercel.mdx", - "_raw": { - "sourceFilePath": "projects/terraform-provider-vercel.mdx", - "sourceFileName": "terraform-provider-vercel.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/terraform-provider-vercel" - }, - "type": "Project", - "path": "/projects/terraform-provider-vercel", - "slug": "terraform-provider-vercel" - }, - "documentHash": "1679527786360", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-auth-analytics.mdx": { - "document": { - "title": "Upstash Auth Analytics", - "description": "A library to record and analyse Auth.js user behaviour", - "url": "https://console.upstash.com/ratelimit", - "repository": "upstash/auth-analytics", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var A=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var lr=Object.getOwnPropertyNames;var fr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,c)=>()=>(c||s((c={exports:{}}).exports,c),c.exports),vr=(s,c)=>{for(var b in c)A(s,b,{get:c[b],enumerable:!0})},_e=(s,c,b,E)=>{if(c&&typeof c==\"object\"||typeof c==\"function\")for(let m of lr(c))!dr.call(s,m)&&m!==b&&A(s,m,{get:()=>c[m],enumerable:!(E=cr(c,m))||E.enumerable});return s};var pr=(s,c,b)=>(b=s!=null?sr(fr(s)):{},_e(c||!s||!s.__esModule?A(b,\"default\",{value:s,enumerable:!0}):b,s)),br=s=>_e(A({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),c=Symbol.for(\"react.element\"),b=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&f>=0&&a[l]!==v[f];)f--;for(;l>=1&&f>=0;l--,f--)if(a[l]!==v[f]){if(l!==1||f!==1)do if(l--,f--,f<0||a[l]!==v[f]){var p=`\n`+a[l].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(l>=1&&f>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,ce={},le=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);le.setExtraStackFrame(t)}else le.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(l){a=l}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return fe(e),!1}catch{return!0}}function fe(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),fe(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=h(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',h(O.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:c,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var l=e.defaultProps;for(u in l)o[u]===void 0&&(o[u]=l[u])}if(a||v){var f=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,f),v&&Qe(o,f)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,be=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===c}function he(){{if(L.current){var e=h(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=he();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+h(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):l=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",l,a)}var f=rr(e,r,t,i,u);if(f==null)return f;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>hr});var F=pr(we()),hr={title:\"Upstash Auth Analytics\",description:\"A library to record and analyse Auth.js user behaviour\",url:\"https://console.upstash.com/ratelimit\",repository:\"upstash/auth-analytics\"};function Pe(s){let c=Object.assign({p:\"p\"},s.components);return(0,F.jsxDEV)(c.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-ae561c07-b969-41f2-9b94-1fedeb76e60a.mdx\",lineNumber:9,columnNumber:1},this)}function gr(s={}){let{wrapper:c}=s.components||{};return c?(0,F.jsxDEV)(c,Object.assign({},s,{children:(0,F.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-ae561c07-b969-41f2-9b94-1fedeb76e60a.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-ae561c07-b969-41f2-9b94-1fedeb76e60a.mdx\"},this):Pe(s)}var mr=gr;return br(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-auth-analytics.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-auth-analytics.mdx", - "sourceFileName": "upstash-auth-analytics.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-auth-analytics" - }, - "type": "Project", - "path": "/projects/upstash-auth-analytics", - "slug": "upstash-auth-analytics" - }, - "documentHash": "1677516995292", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-cli.mdx": { - "document": { - "title": "@upstash/cli", - "description": "A CLI to provision and manage Upstash resources, including Redis and Kafka databases.", - "date": "2022-05-16T00:00:00.000Z", - "url": "https://upstash.com/cli", - "repository": "upstash/cli", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var fr=Object.getOwnPropertyNames;var lr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,c)=>()=>(c||s((c={exports:{}}).exports,c),c.exports),vr=(s,c)=>{for(var b in c)F(s,b,{get:c[b],enumerable:!0})},_e=(s,c,b,E)=>{if(c&&typeof c==\"object\"||typeof c==\"function\")for(let m of fr(c))!dr.call(s,m)&&m!==b&&F(s,m,{get:()=>c[m],enumerable:!(E=cr(c,m))||E.enumerable});return s};var pr=(s,c,b)=>(b=s!=null?sr(lr(s)):{},_e(c||!s||!s.__esModule?F(b,\"default\",{value:s,enumerable:!0}):b,s)),br=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),c=Symbol.for(\"react.element\"),b=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),K=Symbol.for(\"react.profiler\"),X=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&l>=0&&a[f]!==v[l];)l--;for(;f>=1&&l>=0;f--,l--)if(a[f]!==v[l]){if(f!==1||l!==1)do if(f--,l--,l<0||a[f]!==v[l]){var p=`\n`+a[f].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(f>=1&&l>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,ce={},fe=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){a=f}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return le(e),!1}catch{return!0}}function le(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),le(e)}var O=_.ReactCurrentOwner,Ke={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Xe(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=h(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',h(O.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:c,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Xe(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Ke.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var f=e.defaultProps;for(u in f)o[u]===void 0&&(o[u]=f[u])}if(a||v){var l=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,l),v&&Qe(o,l)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,be=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===c}function he(){{if(L.current){var e=h(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=he();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+h(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):f=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",f,a)}var l=rr(e,r,t,i,u);if(l==null)return l;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>hr});var A=pr(we()),hr={title:\"@upstash/cli\",description:\"A CLI to provision and manage Upstash resources, including Redis and Kafka databases.\",date:\"2022-05-16\",url:\"https://upstash.com/cli\",repository:\"upstash/cli\"};function Pe(s){let c=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(c.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-6c0764d5-d70c-426e-bbb5-f080d7d335f3.mdx\",lineNumber:10,columnNumber:1},this)}function gr(s={}){let{wrapper:c}=s.components||{};return c?(0,A.jsxDEV)(c,Object.assign({},s,{children:(0,A.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-6c0764d5-d70c-426e-bbb5-f080d7d335f3.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-6c0764d5-d70c-426e-bbb5-f080d7d335f3.mdx\"},this):Pe(s)}var mr=gr;return br(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-cli.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-cli.mdx", - "sourceFileName": "upstash-cli.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-cli" - }, - "type": "Project", - "path": "/projects/upstash-cli", - "slug": "upstash-cli" - }, - "documentHash": "1677518010285", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-core-analytics.mdx": { - "document": { - "title": "Upstash Core Analytics", - "description": "Low level utilities to build analytics tools on top of Redis.", - "date": "2023-02-13T00:00:00.000Z", - "url": "https://console.upstash.com/ratelimit", - "repository": "upstash/core-analytics", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var lr=Object.getOwnPropertyDescriptor;var cr=Object.getOwnPropertyNames;var fr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,l)=>()=>(l||s((l={exports:{}}).exports,l),l.exports),vr=(s,l)=>{for(var h in l)F(s,h,{get:l[h],enumerable:!0})},_e=(s,l,h,E)=>{if(l&&typeof l==\"object\"||typeof l==\"function\")for(let m of cr(l))!dr.call(s,m)&&m!==h&&F(s,m,{get:()=>l[m],enumerable:!(E=lr(l,m))||E.enumerable});return s};var pr=(s,l,h)=>(h=s!=null?sr(fr(s)):{},_e(l||!s||!s.__esModule?F(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),l=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&f>=0&&a[c]!==v[f];)f--;for(;c>=1&&f>=0;c--,f--)if(a[c]!==v[f]){if(c!==1||f!==1)do if(c--,f--,f<0||a[c]!==v[f]){var p=`\n`+a[c].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(c>=1&&f>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,le={},ce=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);ce.setExtraStackFrame(t)}else ce.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(c){a=c}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in le)&&(le[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return fe(e),!1}catch{return!0}}function fe(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),fe(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=b(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',b(O.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:l,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var c=e.defaultProps;for(u in c)o[u]===void 0&&(o[u]=c[u])}if(a||v){var f=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,f),v&&Qe(o,f)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===l}function be(){{if(L.current){var e=b(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=be();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+b(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):c=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",c,a)}var f=rr(e,r,t,i,u);if(f==null)return f;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>br});var A=pr(we()),br={title:\"Upstash Core Analytics\",description:\"Low level utilities to build analytics tools on top of Redis.\",date:\"2023-02-13\",url:\"https://console.upstash.com/ratelimit\",repository:\"upstash/core-analytics\"};function Pe(s){let l=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(l.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93e52e03-a3e6-4365-84e4-0991fb72d0ac.mdx\",lineNumber:10,columnNumber:1},this)}function gr(s={}){let{wrapper:l}=s.components||{};return l?(0,A.jsxDEV)(l,Object.assign({},s,{children:(0,A.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93e52e03-a3e6-4365-84e4-0991fb72d0ac.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93e52e03-a3e6-4365-84e4-0991fb72d0ac.mdx\"},this):Pe(s)}var mr=gr;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-core-analytics.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-core-analytics.mdx", - "sourceFileName": "upstash-core-analytics.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-core-analytics" - }, - "type": "Project", - "path": "/projects/upstash-core-analytics", - "slug": "upstash-core-analytics" - }, - "documentHash": "1677516952361", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-edge-flags.mdx": { - "document": { - "title": "@upstash/edge-flags", - "description": "Featues flags for your edge functions.", - "date": "2022-12-12T00:00:00.000Z", - "url": "https://upstash.com/edge-flags", - "repository": "upstash/edge-flags", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var fr=Object.getOwnPropertyDescriptor;var cr=Object.getOwnPropertyNames;var lr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,f)=>()=>(f||s((f={exports:{}}).exports,f),f.exports),vr=(s,f)=>{for(var g in f)F(s,g,{get:f[g],enumerable:!0})},_e=(s,f,g,E)=>{if(f&&typeof f==\"object\"||typeof f==\"function\")for(let m of cr(f))!dr.call(s,m)&&m!==g&&F(s,m,{get:()=>f[m],enumerable:!(E=fr(f,m))||E.enumerable});return s};var pr=(s,f,g)=>(g=s!=null?sr(lr(s)):{},_e(f||!s||!s.__esModule?F(g,\"default\",{value:s,enumerable:!0}):g,s)),gr=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),f=Symbol.for(\"react.element\"),g=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&l>=0&&a[c]!==v[l];)l--;for(;c>=1&&l>=0;c--,l--)if(a[c]!==v[l]){if(c!==1||l!==1)do if(c--,l--,l<0||a[c]!==v[l]){var p=`\n`+a[c].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(c>=1&&l>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,fe={},ce=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);ce.setExtraStackFrame(t)}else ce.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(c){a=c}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in fe)&&(fe[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return le(e),!1}catch{return!0}}function le(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),le(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=h(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',h(O.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:f,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var c=e.defaultProps;for(u in c)o[u]===void 0&&(o[u]=c[u])}if(a||v){var l=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,l),v&&Qe(o,l)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,ge=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);ge.setExtraStackFrame(t)}else ge.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===f}function he(){{if(L.current){var e=h(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var be={};function nr(e){{var r=he();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(be[t])return;be[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+h(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):c=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",c,a)}var l=rr(e,r,t,i,u);if(l==null)return l;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>hr});var A=pr(we()),hr={title:\"@upstash/edge-flags\",description:\"Featues flags for your edge functions.\",date:\"2022-12-12\",url:\"https://upstash.com/edge-flags\",repository:\"upstash/edge-flags\"};function Pe(s){let f=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(f.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a02e859f-43fa-40ca-bb10-a2afe415763c.mdx\",lineNumber:10,columnNumber:1},this)}function br(s={}){let{wrapper:f}=s.components||{};return f?(0,A.jsxDEV)(f,Object.assign({},s,{children:(0,A.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a02e859f-43fa-40ca-bb10-a2afe415763c.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a02e859f-43fa-40ca-bb10-a2afe415763c.mdx\"},this):Pe(s)}var mr=br;return gr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-edge-flags.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-edge-flags.mdx", - "sourceFileName": "upstash-edge-flags.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-edge-flags" - }, - "type": "Project", - "path": "/projects/upstash-edge-flags", - "slug": "upstash-edge-flags" - }, - "documentHash": "1677518005231", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-kafka.mdx": { - "document": { - "title": "@upstash/kafka", - "description": "A fully typed Kafka client built for Upstash Kafka and HTTP, perfect for serverless and edge runtimes", - "date": "2022-01-08T00:00:00.000Z", - "url": "https://upstash.com/kafka", - "repository": "upstash/upstash-kafka", - "body": { - "raw": "\n\nAn HTTP/REST based Kafka client built on top of\n[Upstash REST API](https://docs.upstash.com/kafka/rest).\n\nIt is the only connectionless (HTTP based) Kafka client and designed for:\n\n- Serverless functions (AWS Lambda ...)\n- Cloudflare Workers (see the example)\n- Fastly Compute@Edge\n- Next.js Edge, Remix ...\n- Client side web/mobile applications\n- WebAssembly and other environments where HTTP is preferred over TCP\n connections.\n\n# Installation\n\n```bash\nnpm install @upstash/kafka\n```\n\n# Quickstart\n\n## Auth\n\n1. Go to [upstash](https://console.upstash.com/kafka) and select your database.\n2. Copy the `REST API` secrets at the bottom of the page\n\n```typescript\nimport { Kafka } from \"@upstash/kafka\"\n\nconst kafka = new Kafka({\n url: \"\",\n username: \"\",\n password: \"\",\n})\n```\n\n## Produce a single message\n\n```typescript\nconst p = kafka.producer()\nconst message = { hello: \"world\" } // Objects will get serialized using `JSON.stringify`\nconst res = await p.produce(\"\", message)\nconst res = await p.produce(\"\", message, {\n partition: 1,\n timestamp: 12345,\n key: \"\",\n headers: [{ key: \"traceId\", value: \"85a9f12\" }],\n})\n```\n\n## Produce multiple messages.\n\nThe same options from the example above can be set for every message.\n\n```typescript\nconst p = kafka.producer()\nconst res = await p.produceMany([\n {\n topic: \"my.topic\",\n value: { hello: \"world\" },\n // ...options\n },\n {\n topic: \"another.topic\",\n value: \"another message\",\n // ...options\n },\n])\n```\n\n## Consume\n\nThe first time a consumer is created, it needs to figure out the group\ncoordinator by asking the Kafka brokers and joins the consumer group. This\nprocess takes some time to complete. That's why when a consumer instance is\ncreated first time, it may return empty messages until consumer group\ncoordination is completed.\n\n```typescript\nconst c = kafka.consumer()\nconst messages = await c.consume({\n consumerGroupId: \"group_1\",\n instanceId: \"instance_1\",\n topics: [\"test.topic\"],\n autoOffsetReset: \"earliest\",\n})\n```\n\nMore examples can be found in the\n[docstring](https://github.com/upstash/upstash-kafka/blob/main/pkg/consumer.ts#L265)\n\n## Commit manually\n\nWhile `consume` can handle committing automatically, you can also use\n`Consumer.commit` to manually commit.\n\n```typescript\nconst consumerGroupId = \"mygroup\"\nconst instanceId = \"myinstance\"\nconst topic = \"my.topic\"\n\nconst c = kafka.consumer()\nconst messages = await c.consume({\n consumerGroupId,\n instanceId,\n topics: [topic],\n autoCommit: false,\n})\n\nfor (const message of messages) {\n // message handling logic\n\n await c.commit({\n consumerGroupId,\n instanceId,\n offset: {\n topic: message.topic,\n partition: message.partition,\n offset: message.offset,\n },\n })\n}\n```\n\n## Fetch\n\nYou can also manage offsets manually by using `Consumer.fetch`\n\n```typescript\nconst c = kafka.consumer()\nconst messages = await c.fetch({\n topic: \"greeting\",\n partition: 3,\n offset: 42,\n timeout: 1000,\n})\n```\n\n## Examples\n\nSee [/examples](https://github.com/upstash/upstash-kafka/tree/main/examples) as\nwell as various examples in the docstrings of each method.\n\n# Contributing\n\n## Requirements\n\n- [nodejs](https://nodejs.org) v14.x or higher\n- [pnpm](https://pnpm.io/installation)\n\n## Setup\n\n0. Install dependencies using `pnpm install`\n1. Create a kafka instance on upstash.\n [docs](https://docs.upstash.com/kafka#create-a-kafka-cluster)\n2. Create the following topics: `blue`, `red`, `green`.\n [docs](https://docs.upstash.com/kafka#create-a-topic)\n\n The partitions or retention settings don't matter at this time.\n\n3. Create `.env` file with your kafka secrets `cp .env.example .env`\n\n## Running tests\n\n```bash\npnpm test\n```\n", - "code": "var Component=(()=>{var h=Object.create;var a=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,m=Object.prototype.hasOwnProperty;var u=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),F=(n,e)=>{for(var s in e)a(n,s,{get:e[s],enumerable:!0})},o=(n,e,s,r)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let c of E(e))!m.call(n,c)&&c!==s&&a(n,c,{get:()=>e[c],enumerable:!(r=p(e,c))||r.enumerable});return n};var g=(n,e,s)=>(s=n!=null?h(y(n)):{},o(e||!n||!n.__esModule?a(s,\"default\",{value:n,enumerable:!0}):s,n)),f=n=>o(a({},\"__esModule\",{value:!0}),n);var t=u((v,i)=>{i.exports=_jsx_runtime});var b={};F(b,{default:()=>B,frontmatter:()=>N});var l=g(t()),N={title:\"@upstash/kafka\",description:\"A fully typed Kafka client built for Upstash Kafka and HTTP, perfect for serverless and edge runtimes\",date:\"2022-01-08\",url:\"https://upstash.com/kafka\",repository:\"upstash/upstash-kafka\"};function d(n){let e=Object.assign({p:\"p\",a:\"a\",ul:\"ul\",li:\"li\",h1:\"h1\",span:\"span\",div:\"div\",pre:\"pre\",code:\"code\",h2:\"h2\",ol:\"ol\"},n.components);return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(e.p,{children:[`An HTTP/REST based Kafka client built on top of\n`,(0,l.jsx)(e.a,{href:\"https://docs.upstash.com/kafka/rest\",children:\"Upstash REST API\"}),\".\"]}),`\n`,(0,l.jsx)(e.p,{children:\"It is the only connectionless (HTTP based) Kafka client and designed for:\"}),`\n`,(0,l.jsxs)(e.ul,{children:[`\n`,(0,l.jsx)(e.li,{children:\"Serverless functions (AWS Lambda ...)\"}),`\n`,(0,l.jsx)(e.li,{children:\"Cloudflare Workers (see the example)\"}),`\n`,(0,l.jsx)(e.li,{children:\"Fastly Compute@Edge\"}),`\n`,(0,l.jsx)(e.li,{children:\"Next.js Edge, Remix ...\"}),`\n`,(0,l.jsx)(e.li,{children:\"Client side web/mobile applications\"}),`\n`,(0,l.jsx)(e.li,{children:`WebAssembly and other environments where HTTP is preferred over TCP\nconnections.`}),`\n`]}),`\n`,(0,l.jsxs)(e.h1,{id:\"installation\",children:[(0,l.jsx)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#installation\",children:(0,l.jsx)(e.span,{className:\"icon icon-link\"})}),\"Installation\"]}),`\n`,(0,l.jsx)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,l.jsx)(e.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,l.jsx)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"npm\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"install\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"@upstash/kafka\"})]})})})}),`\n`,(0,l.jsxs)(e.h1,{id:\"quickstart\",children:[(0,l.jsx)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#quickstart\",children:(0,l.jsx)(e.span,{className:\"icon icon-link\"})}),\"Quickstart\"]}),`\n`,(0,l.jsxs)(e.h2,{id:\"auth\",children:[(0,l.jsx)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#auth\",children:(0,l.jsx)(e.span,{className:\"icon icon-link\"})}),\"Auth\"]}),`\n`,(0,l.jsxs)(e.ol,{children:[`\n`,(0,l.jsxs)(e.li,{children:[\"Go to \",(0,l.jsx)(e.a,{href:\"https://console.upstash.com/kafka\",children:\"upstash\"}),\" and select your database.\"]}),`\n`,(0,l.jsxs)(e.li,{children:[\"Copy the \",(0,l.jsx)(e.code,{children:\"REST API\"}),\" secrets at the bottom of the page\"]}),`\n`]}),`\n`,(0,l.jsx)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,l.jsx)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,l.jsxs)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"import\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" { Kafka } \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"from\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"@upstash/kafka\"'})]}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:\" \"}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"const\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"kafka\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"new\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"Kafka\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" url: \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" username: \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" password: \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"})]}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"})})]})})}),`\n`,(0,l.jsxs)(e.h2,{id:\"produce-a-single-message\",children:[(0,l.jsx)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#produce-a-single-message\",children:(0,l.jsx)(e.span,{className:\"icon icon-link\"})}),\"Produce a single message\"]}),`\n`,(0,l.jsx)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,l.jsx)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,l.jsxs)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"const\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"p\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"producer\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"const\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"message\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" { hello: \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"world\"'}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" } \"}),(0,l.jsx)(e.span,{style:{color:\"#6A737D\"},children:\"// Objects will get serialized using `JSON.stringify`\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"const\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"res\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"await\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" p.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"produce\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\", message)\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"const\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"res\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"await\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" p.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"produce\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\", message, {\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" partition: \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"1\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" timestamp: \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"12345\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" key: \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" headers: [{ key: \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"traceId\"'}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\", value: \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"85a9f12\"'}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" }],\"})]}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"})})]})})}),`\n`,(0,l.jsxs)(e.h2,{id:\"produce-multiple-messages\",children:[(0,l.jsx)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#produce-multiple-messages\",children:(0,l.jsx)(e.span,{className:\"icon icon-link\"})}),\"Produce multiple messages.\"]}),`\n`,(0,l.jsx)(e.p,{children:\"The same options from the example above can be set for every message.\"}),`\n`,(0,l.jsx)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,l.jsx)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,l.jsxs)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"const\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"p\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"producer\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"const\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"res\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"await\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" p.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"produceMany\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"([\"})]}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"})}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" topic: \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"my.topic\"'}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" value: { hello: \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"world\"'}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" },\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#6A737D\"},children:\"// ...options\"})]}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" },\"})}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"})}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" topic: \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"another.topic\"'}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" value: \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"another message\"'}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#6A737D\"},children:\"// ...options\"})]}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" },\"})}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"])\"})})]})})}),`\n`,(0,l.jsxs)(e.h2,{id:\"consume\",children:[(0,l.jsx)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#consume\",children:(0,l.jsx)(e.span,{className:\"icon icon-link\"})}),\"Consume\"]}),`\n`,(0,l.jsx)(e.p,{children:`The first time a consumer is created, it needs to figure out the group\ncoordinator by asking the Kafka brokers and joins the consumer group. This\nprocess takes some time to complete. That's why when a consumer instance is\ncreated first time, it may return empty messages until consumer group\ncoordination is completed.`}),`\n`,(0,l.jsx)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,l.jsx)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,l.jsxs)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"const\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"c\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"consumer\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"const\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"messages\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"await\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" c.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"consume\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" consumerGroupId: \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"group_1\"'}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" instanceId: \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"instance_1\"'}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" topics: [\"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"test.topic\"'}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"],\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" autoOffsetReset: \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"earliest\"'}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"})]}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"})})]})})}),`\n`,(0,l.jsxs)(e.p,{children:[`More examples can be found in the\n`,(0,l.jsx)(e.a,{href:\"https://github.com/upstash/upstash-kafka/blob/main/pkg/consumer.ts#L265\",children:\"docstring\"})]}),`\n`,(0,l.jsxs)(e.h2,{id:\"commit-manually\",children:[(0,l.jsx)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#commit-manually\",children:(0,l.jsx)(e.span,{className:\"icon icon-link\"})}),\"Commit manually\"]}),`\n`,(0,l.jsxs)(e.p,{children:[\"While \",(0,l.jsx)(e.code,{children:\"consume\"}),` can handle committing automatically, you can also use\n`,(0,l.jsx)(e.code,{children:\"Consumer.commit\"}),\" to manually commit.\"]}),`\n`,(0,l.jsx)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,l.jsx)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,l.jsxs)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"const\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"consumerGroupId\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"mygroup\"'})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"const\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"instanceId\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"myinstance\"'})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"const\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"topic\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"my.topic\"'})]}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:\" \"}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"const\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"c\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"consumer\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"const\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"messages\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"await\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" c.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"consume\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"})]}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" consumerGroupId,\"})}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" instanceId,\"})}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" topics: [topic],\"})}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" autoCommit: \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"false\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"})]}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"})}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:\" \"}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"for\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" (\"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"const\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"message\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"of\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" messages) {\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#6A737D\"},children:\"// message handling logic\"})]}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:\" \"}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"await\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" c.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"commit\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"})]}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" consumerGroupId,\"})}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" instanceId,\"})}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" offset: {\"})}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" topic: message.topic,\"})}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" partition: message.partition,\"})}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" offset: message.offset,\"})}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" },\"})}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" })\"})}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"}\"})})]})})}),`\n`,(0,l.jsxs)(e.h2,{id:\"fetch\",children:[(0,l.jsx)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#fetch\",children:(0,l.jsx)(e.span,{className:\"icon icon-link\"})}),\"Fetch\"]}),`\n`,(0,l.jsxs)(e.p,{children:[\"You can also manage offsets manually by using \",(0,l.jsx)(e.code,{children:\"Consumer.fetch\"})]}),`\n`,(0,l.jsx)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,l.jsx)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,l.jsxs)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"const\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"c\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"consumer\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"const\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"messages\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"await\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" c.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"fetch\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" topic: \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"greeting\"'}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" partition: \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"3\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" offset: \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"42\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" timeout: \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"1000\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"})]}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"})})]})})}),`\n`,(0,l.jsxs)(e.h2,{id:\"examples\",children:[(0,l.jsx)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#examples\",children:(0,l.jsx)(e.span,{className:\"icon icon-link\"})}),\"Examples\"]}),`\n`,(0,l.jsxs)(e.p,{children:[\"See \",(0,l.jsx)(e.a,{href:\"https://github.com/upstash/upstash-kafka/tree/main/examples\",children:\"/examples\"}),` as\nwell as various examples in the docstrings of each method.`]}),`\n`,(0,l.jsxs)(e.h1,{id:\"contributing\",children:[(0,l.jsx)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#contributing\",children:(0,l.jsx)(e.span,{className:\"icon icon-link\"})}),\"Contributing\"]}),`\n`,(0,l.jsxs)(e.h2,{id:\"requirements\",children:[(0,l.jsx)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#requirements\",children:(0,l.jsx)(e.span,{className:\"icon icon-link\"})}),\"Requirements\"]}),`\n`,(0,l.jsxs)(e.ul,{children:[`\n`,(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.a,{href:\"https://nodejs.org\",children:\"nodejs\"}),\" v14.x or higher\"]}),`\n`,(0,l.jsx)(e.li,{children:(0,l.jsx)(e.a,{href:\"https://pnpm.io/installation\",children:\"pnpm\"})}),`\n`]}),`\n`,(0,l.jsxs)(e.h2,{id:\"setup\",children:[(0,l.jsx)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#setup\",children:(0,l.jsx)(e.span,{className:\"icon icon-link\"})}),\"Setup\"]}),`\n`,(0,l.jsxs)(e.ol,{start:\"0\",children:[`\n`,(0,l.jsxs)(e.li,{children:[`\n`,(0,l.jsxs)(e.p,{children:[\"Install dependencies using \",(0,l.jsx)(e.code,{children:\"pnpm install\"})]}),`\n`]}),`\n`,(0,l.jsxs)(e.li,{children:[`\n`,(0,l.jsxs)(e.p,{children:[`Create a kafka instance on upstash.\n`,(0,l.jsx)(e.a,{href:\"https://docs.upstash.com/kafka#create-a-kafka-cluster\",children:\"docs\"})]}),`\n`]}),`\n`,(0,l.jsxs)(e.li,{children:[`\n`,(0,l.jsxs)(e.p,{children:[\"Create the following topics: \",(0,l.jsx)(e.code,{children:\"blue\"}),\", \",(0,l.jsx)(e.code,{children:\"red\"}),\", \",(0,l.jsx)(e.code,{children:\"green\"}),`.\n`,(0,l.jsx)(e.a,{href:\"https://docs.upstash.com/kafka#create-a-topic\",children:\"docs\"})]}),`\n`,(0,l.jsx)(e.p,{children:\"The partitions or retention settings don't matter at this time.\"}),`\n`]}),`\n`,(0,l.jsxs)(e.li,{children:[`\n`,(0,l.jsxs)(e.p,{children:[\"Create \",(0,l.jsx)(e.code,{children:\".env\"}),\" file with your kafka secrets \",(0,l.jsx)(e.code,{children:\"cp .env.example .env\"})]}),`\n`]}),`\n`]}),`\n`,(0,l.jsxs)(e.h2,{id:\"running-tests\",children:[(0,l.jsx)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#running-tests\",children:(0,l.jsx)(e.span,{className:\"icon icon-link\"})}),\"Running tests\"]}),`\n`,(0,l.jsx)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,l.jsx)(e.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,l.jsx)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"pnpm\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"test\"})]})})})})]})}function k(n={}){let{wrapper:e}=n.components||{};return e?(0,l.jsx)(e,Object.assign({},n,{children:(0,l.jsx)(d,n)})):d(n)}var B=k;return f(b);})();\n;return Component;" - }, - "_id": "projects/upstash-kafka.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-kafka.mdx", - "sourceFileName": "upstash-kafka.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-kafka" - }, - "type": "Project", - "path": "/projects/upstash-kafka", - "slug": "upstash-kafka" - }, - "documentHash": "1679527360060", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-qstash-sdk.mdx": { - "document": { - "title": "@upstash/qstash", - "description": "A typescript client and consumer for QStash.", - "date": "2022-07-18T00:00:00.000Z", - "url": "https://upstash.com/qstash", - "repository": "upstash/sdk-qstash-ts", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var fr=Object.getOwnPropertyNames;var lr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var G=(s,c)=>()=>(c||s((c={exports:{}}).exports,c),c.exports),vr=(s,c)=>{for(var h in c)F(s,h,{get:c[h],enumerable:!0})},_e=(s,c,h,E)=>{if(c&&typeof c==\"object\"||typeof c==\"function\")for(let m of fr(c))!dr.call(s,m)&&m!==h&&F(s,m,{get:()=>c[m],enumerable:!(E=cr(c,m))||E.enumerable});return s};var pr=(s,c,h)=>(h=s!=null?sr(lr(s)):{},_e(c||!s||!s.__esModule?F(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=G((_r,Re)=>{Re.exports=React});var Ce=G(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),c=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&l>=0&&a[f]!==v[l];)l--;for(;f>=1&&l>=0;f--,l--)if(a[f]!==v[l]){if(f!==1||l!==1)do if(f--,l--,l<0||a[f]!==v[l]){var p=`\n`+a[f].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(f>=1&&l>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,ce={},fe=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}function qe(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){a=f}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Be=Array.isArray;function V(e){return Be(e)}function Ge(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return le(e),!1}catch{return!0}}function le(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Ge(e)),le(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=b(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',b(O.current.type),e.ref),U[t]=!0)}}function Qe(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Ze(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:c,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var f=e.defaultProps;for(u in f)o[u]===void 0&&(o[u]=f[u])}if(a||v){var l=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Qe(o,l),v&&Ze(o,l)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var q;q=!1;function B(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===c}function be(){{if(L.current){var e=b(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=be();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+b(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):f=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",f,a)}var l=rr(e,r,t,i,u);if(l==null)return l;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>br});var A=pr(we()),br={title:\"@upstash/qstash\",description:\"A typescript client and consumer for QStash.\",date:\"2022-07-18\",url:\"https://upstash.com/qstash\",repository:\"upstash/sdk-qstash-ts\"};function Pe(s){let c=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(c.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-c0ed3c5f-8329-457e-8b6a-3f06217a527b.mdx\",lineNumber:9,columnNumber:1},this)}function gr(s={}){let{wrapper:c}=s.components||{};return c?(0,A.jsxDEV)(c,Object.assign({},s,{children:(0,A.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-c0ed3c5f-8329-457e-8b6a-3f06217a527b.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-c0ed3c5f-8329-457e-8b6a-3f06217a527b.mdx\"},this):Pe(s)}var mr=gr;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-qstash-sdk.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-qstash-sdk.mdx", - "sourceFileName": "upstash-qstash-sdk.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-qstash-sdk" - }, - "type": "Project", - "path": "/projects/upstash-qstash-sdk", - "slug": "upstash-qstash-sdk" - }, - "documentHash": "1677518133469", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-ratelimit.mdx": { - "document": { - "title": "@upstash/ratelimit", - "description": "Ratelimiting library for serverless and edge runtimes. Built on top of Upstash Redis.", - "date": "2022-06-06T00:00:00.000Z", - "url": "https://upstash.com/ratelimit", - "repository": "upstash/ratelimit", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var lr=Object.getOwnPropertyNames;var fr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,c)=>()=>(c||s((c={exports:{}}).exports,c),c.exports),vr=(s,c)=>{for(var h in c)F(s,h,{get:c[h],enumerable:!0})},_e=(s,c,h,E)=>{if(c&&typeof c==\"object\"||typeof c==\"function\")for(let m of lr(c))!dr.call(s,m)&&m!==h&&F(s,m,{get:()=>c[m],enumerable:!(E=cr(c,m))||E.enumerable});return s};var pr=(s,c,h)=>(h=s!=null?sr(fr(s)):{},_e(c||!s||!s.__esModule?F(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),c=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&f>=0&&a[l]!==v[f];)f--;for(;l>=1&&f>=0;l--,f--)if(a[l]!==v[f]){if(l!==1||f!==1)do if(l--,f--,f<0||a[l]!==v[f]){var p=`\n`+a[l].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(l>=1&&f>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,ce={},le=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);le.setExtraStackFrame(t)}else le.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(l){a=l}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return fe(e),!1}catch{return!0}}function fe(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),fe(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=b(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',b(O.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:c,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var l=e.defaultProps;for(u in l)o[u]===void 0&&(o[u]=l[u])}if(a||v){var f=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,f),v&&Qe(o,f)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===c}function be(){{if(L.current){var e=b(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=be();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+b(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):l=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",l,a)}var f=rr(e,r,t,i,u);if(f==null)return f;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>br});var A=pr(we()),br={title:\"@upstash/ratelimit\",description:\"Ratelimiting library for serverless and edge runtimes. Built on top of Upstash Redis.\",date:\"2022-06-06\",url:\"https://upstash.com/ratelimit\",repository:\"upstash/ratelimit\"};function Pe(s){let c=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(c.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-6ca1e42c-7c16-4c6d-b6c7-5fe6218e9bd6.mdx\",lineNumber:10,columnNumber:1},this)}function gr(s={}){let{wrapper:c}=s.components||{};return c?(0,A.jsxDEV)(c,Object.assign({},s,{children:(0,A.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-6ca1e42c-7c16-4c6d-b6c7-5fe6218e9bd6.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-6ca1e42c-7c16-4c6d-b6c7-5fe6218e9bd6.mdx\"},this):Pe(s)}var mr=gr;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-ratelimit.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-ratelimit.mdx", - "sourceFileName": "upstash-ratelimit.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-ratelimit" - }, - "type": "Project", - "path": "/projects/upstash-ratelimit", - "slug": "upstash-ratelimit" - }, - "documentHash": "1677517788579", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-react-ui.mdx": { - "document": { - "title": "React.js CLI", - "description": "A CLI React component to interact with Upstash Redis databases.", - "date": "2023-02-05T00:00:00.000Z", - "url": "https://upstash.com", - "repository": "upstash/react-ui", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var fr=Object.getOwnPropertyNames;var lr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,c)=>()=>(c||s((c={exports:{}}).exports,c),c.exports),vr=(s,c)=>{for(var h in c)F(s,h,{get:c[h],enumerable:!0})},_e=(s,c,h,E)=>{if(c&&typeof c==\"object\"||typeof c==\"function\")for(let m of fr(c))!dr.call(s,m)&&m!==h&&F(s,m,{get:()=>c[m],enumerable:!(E=cr(c,m))||E.enumerable});return s};var pr=(s,c,h)=>(h=s!=null?sr(lr(s)):{},_e(c||!s||!s.__esModule?F(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),c=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&l>=0&&a[f]!==v[l];)l--;for(;f>=1&&l>=0;f--,l--)if(a[f]!==v[l]){if(f!==1||l!==1)do if(f--,l--,l<0||a[f]!==v[l]){var p=`\n`+a[f].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(f>=1&&l>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Le(e,r,t){return se(e,!1)}function Ue(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Ue(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Le(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,ce={},fe=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){a=f}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return le(e),!1}catch{return!0}}function le(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),le(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,L;L={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=b(O.current.type);L[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',b(O.current.type),e.ref),L[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:c,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var f=e.defaultProps;for(u in f)o[u]===void 0&&(o[u]=f[u])}if(a||v){var l=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,l),v&&Qe(o,l)}return er(e,a,v,i,n,O.current,o)}}var U=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===c}function be(){{if(U.current){var e=b(U.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=be();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==U.current&&(n=\" It was passed a child from \"+b(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):f=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",f,a)}var l=rr(e,r,t,i,u);if(l==null)return l;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>br});var A=pr(we()),br={title:\"React.js CLI\",description:\"A CLI React component to interact with Upstash Redis databases.\",date:\"2023-02-05\",url:\"https://upstash.com\",repository:\"upstash/react-ui\"};function Pe(s){let c=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(c.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-22d4f282-9b50-49ce-a375-e53037e3152a.mdx\",lineNumber:10,columnNumber:1},this)}function gr(s={}){let{wrapper:c}=s.components||{};return c?(0,A.jsxDEV)(c,Object.assign({},s,{children:(0,A.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-22d4f282-9b50-49ce-a375-e53037e3152a.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-22d4f282-9b50-49ce-a375-e53037e3152a.mdx\"},this):Pe(s)}var mr=gr;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-react-ui.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-react-ui.mdx", - "sourceFileName": "upstash-react-ui.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-react-ui" - }, - "type": "Project", - "path": "/projects/upstash-react-ui", - "slug": "upstash-react-ui" - }, - "documentHash": "1677517809395", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-redis.mdx": { - "document": { - "title": "@upstash/redis", - "description": "A fully typed Redis client built for Upstash Redis and HTTP, perfect for serverless and edge runtimes.", - "date": "2022-03-14T00:00:00.000Z", - "url": "https://upstash.com/redis", - "repository": "upstash/upstash-redis", - "body": { - "raw": "\n\n`@upstash/redis` is an HTTP/REST based Redis client for typescript, built on top\nof [Upstash REST API](https://docs.upstash.com/features/restapi).\n\nIt is the only connectionless (HTTP based) Redis client and designed for:\n\n- Serverless functions (AWS Lambda ...)\n- Cloudflare Workers (see\n [the example](https://github.com/upstash/upstash-redis/tree/main/examples/cloudflare-workers))\n- Fastly Compute@Edge (see\n [the example](https://github.com/upstash/upstash-redis/tree/main/examples/fastly))\n- Next.js, Jamstack ...\n- Client side web/mobile applications\n- WebAssembly\n- and other environments where HTTP is preferred over TCP.\n\nSee\n[the list of APIs](https://docs.upstash.com/features/restapi#rest---redis-api-compatibility)\nsupported.\n\n## Quick Start\n\n### Install\n\n#### Node.js\n\n```bash\nnpm install @upstash/redis\n```\n\n#### Deno\n\n```ts\nimport { Redis } from \"https://deno.land/x/upstash_redis/mod.ts\";\n```\n\n### Create database\n\nCreate a new redis database on [upstash](https://console.upstash.com/)\n\n## Basic Usage:\n\n```ts\nimport { Redis } from \"@upstash/redis\"\n\nconst redis = new Redis({\n url: ,\n token: ,\n})\n\n// string\nawait redis.set('key', 'value');\nlet data = await redis.get('key');\nconsole.log(data)\n\nawait redis.set('key2', 'value2', {ex: 1});\n\n// sorted set\nawait redis.zadd('scores', { score: 1, member: 'team1' })\ndata = await redis.zrange('scores', 0, 100 )\nconsole.log(data)\n\n// list\nawait redis.lpush('elements', 'magnesium')\ndata = await redis.lrange('elements', 0, 100 )\nconsole.log(data)\n\n// hash\nawait redis.hset('people', {name: 'joe'})\ndata = await redis.hget('people', 'name' )\nconsole.log(data)\n\n// sets\nawait redis.sadd('animals', 'cat')\ndata = await redis.spop('animals', 1)\nconsole.log(data)\n```\n", - "code": "var Component=(()=>{var h=Object.create;var c=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,F=Object.prototype.hasOwnProperty;var m=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),u=(n,e)=>{for(var s in e)c(n,s,{get:e[s],enumerable:!0})},o=(n,e,s,r)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let a of E(e))!F.call(n,a)&&a!==s&&c(n,a,{get:()=>e[a],enumerable:!(r=p(e,a))||r.enumerable});return n};var B=(n,e,s)=>(s=n!=null?h(y(n)):{},o(e||!n||!n.__esModule?c(s,\"default\",{value:n,enumerable:!0}):s,n)),N=n=>o(c({},\"__esModule\",{value:!0}),n);var t=m((w,i)=>{i.exports=_jsx_runtime});var C={};u(C,{default:()=>b,frontmatter:()=>g});var l=B(t()),g={title:\"@upstash/redis\",description:\"A fully typed Redis client built for Upstash Redis and HTTP, perfect for serverless and edge runtimes.\",date:\"2022-03-14\",url:\"https://upstash.com/redis\",repository:\"upstash/upstash-redis\"};function d(n){let e=Object.assign({p:\"p\",code:\"code\",a:\"a\",ul:\"ul\",li:\"li\",h2:\"h2\",span:\"span\",h3:\"h3\",h4:\"h4\",div:\"div\",pre:\"pre\"},n.components);return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(e.p,{children:[(0,l.jsx)(e.code,{children:\"@upstash/redis\"}),` is an HTTP/REST based Redis client for typescript, built on top\nof `,(0,l.jsx)(e.a,{href:\"https://docs.upstash.com/features/restapi\",children:\"Upstash REST API\"}),\".\"]}),`\n`,(0,l.jsx)(e.p,{children:\"It is the only connectionless (HTTP based) Redis client and designed for:\"}),`\n`,(0,l.jsxs)(e.ul,{children:[`\n`,(0,l.jsx)(e.li,{children:\"Serverless functions (AWS Lambda ...)\"}),`\n`,(0,l.jsxs)(e.li,{children:[`Cloudflare Workers (see\n`,(0,l.jsx)(e.a,{href:\"https://github.com/upstash/upstash-redis/tree/main/examples/cloudflare-workers\",children:\"the example\"}),\")\"]}),`\n`,(0,l.jsxs)(e.li,{children:[`Fastly Compute@Edge (see\n`,(0,l.jsx)(e.a,{href:\"https://github.com/upstash/upstash-redis/tree/main/examples/fastly\",children:\"the example\"}),\")\"]}),`\n`,(0,l.jsx)(e.li,{children:\"Next.js, Jamstack ...\"}),`\n`,(0,l.jsx)(e.li,{children:\"Client side web/mobile applications\"}),`\n`,(0,l.jsx)(e.li,{children:\"WebAssembly\"}),`\n`,(0,l.jsx)(e.li,{children:\"and other environments where HTTP is preferred over TCP.\"}),`\n`]}),`\n`,(0,l.jsxs)(e.p,{children:[`See\n`,(0,l.jsx)(e.a,{href:\"https://docs.upstash.com/features/restapi#rest---redis-api-compatibility\",children:\"the list of APIs\"}),`\nsupported.`]}),`\n`,(0,l.jsxs)(e.h2,{id:\"quick-start\",children:[(0,l.jsx)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#quick-start\",children:(0,l.jsx)(e.span,{className:\"icon icon-link\"})}),\"Quick Start\"]}),`\n`,(0,l.jsxs)(e.h3,{id:\"install\",children:[(0,l.jsx)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#install\",children:(0,l.jsx)(e.span,{className:\"icon icon-link\"})}),\"Install\"]}),`\n`,(0,l.jsxs)(e.h4,{id:\"nodejs\",children:[(0,l.jsx)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#nodejs\",children:(0,l.jsx)(e.span,{className:\"icon icon-link\"})}),\"Node.js\"]}),`\n`,(0,l.jsx)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,l.jsx)(e.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,l.jsx)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"npm\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"install\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"@upstash/redis\"})]})})})}),`\n`,(0,l.jsxs)(e.h4,{id:\"deno\",children:[(0,l.jsx)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#deno\",children:(0,l.jsx)(e.span,{className:\"icon icon-link\"})}),\"Deno\"]}),`\n`,(0,l.jsx)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,l.jsx)(e.pre,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,l.jsx)(e.code,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"import\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" { Redis } \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"from\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"https://deno.land/x/upstash_redis/mod.ts\"'}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\";\"})]})})})}),`\n`,(0,l.jsxs)(e.h3,{id:\"create-database\",children:[(0,l.jsx)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#create-database\",children:(0,l.jsx)(e.span,{className:\"icon icon-link\"})}),\"Create database\"]}),`\n`,(0,l.jsxs)(e.p,{children:[\"Create a new redis database on \",(0,l.jsx)(e.a,{href:\"https://console.upstash.com/\",children:\"upstash\"})]}),`\n`,(0,l.jsxs)(e.h2,{id:\"basic-usage\",children:[(0,l.jsx)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#basic-usage\",children:(0,l.jsx)(e.span,{className:\"icon icon-link\"})}),\"Basic Usage:\"]}),`\n`,(0,l.jsx)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,l.jsx)(e.pre,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,l.jsxs)(e.code,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:[(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"import\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" { Redis } \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"from\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:'\"@upstash/redis\"'})]}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:\" \"}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"const\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"redis\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"new\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"Redis\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" url: <\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"UPSTASH_REDIS_REST_URL\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\">,\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" token: <\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"UPSTASH_REDIS_REST_TOKEN\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\">,\"})]}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"})}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:\" \"}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#6A737D\"},children:\"// string\"})}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"await\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"set\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"'key'\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"'value'\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\");\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"let\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" data \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"await\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"get\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"'key'\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\");\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"console.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"log\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"(data)\"})]}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:\" \"}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"await\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"set\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"'key2'\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"'value2'\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\", {ex: \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"1\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"});\"})]}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:\" \"}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#6A737D\"},children:\"// sorted set\"})}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"await\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"zadd\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"'scores'\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\", { score: \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"1\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\", member: \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"'team1'\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" })\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"data \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"await\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"zrange\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"'scores'\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"0\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"100\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" )\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"console.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"log\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"(data)\"})]}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:\" \"}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#6A737D\"},children:\"// list\"})}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"await\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"lpush\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"'elements'\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"'magnesium'\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\")\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"data \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"await\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"lrange\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"'elements'\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"0\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"100\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" )\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"console.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"log\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"(data)\"})]}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:\" \"}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#6A737D\"},children:\"// hash\"})}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"await\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"hset\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"'people'\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\", {name: \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"'joe'\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"data \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"await\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"hget\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"'people'\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"'name'\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" )\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"console.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"log\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"(data)\"})]}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:\" \"}),`\n`,(0,l.jsx)(e.span,{className:\"line\",children:(0,l.jsx)(e.span,{style:{color:\"#6A737D\"},children:\"// sets\"})}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"await\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"sadd\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"'animals'\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"'cat'\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\")\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"data \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,l.jsx)(e.span,{style:{color:\"#F97583\"},children:\"await\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"spop\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"}),(0,l.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"'animals'\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"}),(0,l.jsx)(e.span,{style:{color:\"#79B8FF\"},children:\"1\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\")\"})]}),`\n`,(0,l.jsxs)(e.span,{className:\"line\",children:[(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"console.\"}),(0,l.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"log\"}),(0,l.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\"(data)\"})]})]})})})]})}function f(n={}){let{wrapper:e}=n.components||{};return e?(0,l.jsx)(e,Object.assign({},n,{children:(0,l.jsx)(d,n)})):d(n)}var b=f;return N(C);})();\n;return Component;" - }, - "_id": "projects/upstash-redis.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-redis.mdx", - "sourceFileName": "upstash-redis.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-redis" - }, - "type": "Project", - "path": "/projects/upstash-redis", - "slug": "upstash-redis" - }, - "documentHash": "1679527812878", - "hasWarnings": false, - "documentTypeName": "Project" - } - } -} diff --git a/.contentlayer/.cache/v0.3.0/data-RHAHPX7F.json b/.contentlayer/.cache/v0.3.0/data-RHAHPX7F.json deleted file mode 100644 index 6e1b17b..0000000 --- a/.contentlayer/.cache/v0.3.0/data-RHAHPX7F.json +++ /dev/null @@ -1,417 +0,0 @@ -{ - "cacheItemsMap": { - "projects/access.mdx": { - "document": { - "published": true, - "title": "@chronark/access", - "description": "A minimal library for access control. It is designed to be used together with opaque access tokens by providing a simple interface to define roles with different access permissions and verifying requests to resources.", - "date": "2022-11-13T00:00:00.000Z", - "repository": "chronark/access", - "body": { - "raw": "A minimal library for access control. It is designed to be used together with opaque access tokens by providing a simple interface to define roles with different access permissions and verifying requests to resources.\n\n- Fully typed\n- Zero dependencies\n- Serializable to store in a database\n\n## Install\n\n```sh-session\nnpm i @chronark/access\n```\n\n## Usage\n\n```ts\nimport { AccessControl, Role } from \"@chronark/access\";\n\n/**\n * Define all your resources and their access patterns\n *\n * key => resource\n * value => array of access types\n */\ntype Statements = {\n user: [\"read\", \"write\", \"dance\"];\n team: [\"read\", \"write\"];\n};\n\n/**\n * Create an access control instance and pass the Statements type to enjoy full\n * type safety\n */\nconst ac = new AccessControl();\n\n/**\n * Now you can define one or more roles by specifying the access permissions\n *\n * This is already fully typed and typescript will let you know if you try to\n * use anything, that is not defined in the Statements type.\n */\nconst role = ac.newRole({\n user: [\"read\", \"write\"],\n team: [\"read\"],\n});\n\n/**\n * Simulate storing and retrieving the role in a database\n *\n * The idea here is, that you can store permissions alongside an API token.\n * Now, when you verify the token, you can also verify the access permissions.\n */\nconst serialized = role.toString();\n\n/**\n * Note how you can pass in the Statements type again, to get full type safety\n */\nconst recovered = Role.fromString(serialized);\n\n/**\n * Validate the role by specifying the resource and the required access\n *\n * everything is fully typed\n */\nconst res = recovered.authorize({\"team\", [\"read\"]});\n\n// res.success => boolean\n// res.error => string | undefined provides a reason for failure\n```", - "code": "var Component=(()=>{var cn=Object.create;var S=Object.defineProperty;var ln=Object.getOwnPropertyDescriptor;var mn=Object.getOwnPropertyNames;var un=Object.getPrototypeOf,fn=Object.prototype.hasOwnProperty;var z=(l,e)=>()=>(e||l((e={exports:{}}).exports,e),e.exports),hn=(l,e)=>{for(var _ in e)S(l,_,{get:e[_],enumerable:!0})},xe=(l,e,_,k)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let y of mn(e))!fn.call(l,y)&&y!==_&&S(l,y,{get:()=>e[y],enumerable:!(k=ln(e,y))||k.enumerable});return l};var bn=(l,e,_)=>(_=l!=null?cn(un(l)):{},xe(e||!l||!l.__esModule?S(_,\"default\",{value:l,enumerable:!0}):_,l)),_n=l=>xe(S({},\"__esModule\",{value:!0}),l);var Ee=z((gn,ge)=>{ge.exports=React});var je=z(G=>{\"use strict\";(function(){\"use strict\";var l=Ee(),e=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),k=Symbol.for(\"react.fragment\"),y=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),F=Symbol.for(\"react.forward_ref\"),O=Symbol.for(\"react.suspense\"),P=Symbol.for(\"react.suspense_list\"),R=Symbol.for(\"react.memo\"),B=Symbol.for(\"react.lazy\"),Re=Symbol.for(\"react.offscreen\"),Z=Symbol.iterator,Ce=\"@@iterator\";function De(n){if(n===null||typeof n!=\"object\")return null;var a=Z&&n[Z]||n[Ce];return typeof a==\"function\"?a:null}var g=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function f(n){{for(var a=arguments.length,t=new Array(a>1?a-1:0),d=1;d=1&&u>=0&&o[m]!==h[u];)u--;for(;m>=1&&u>=0;m--,u--)if(o[m]!==h[u]){if(m!==1||u!==1)do if(m--,u--,u<0||o[m]!==h[u]){var b=`\n`+o[m].replace(\" at new \",\" at \");return n.displayName&&b.includes(\"\")&&(b=b.replace(\"\",n.displayName)),typeof n==\"function\"&&D.set(n,b),b}while(m>=1&&u>=0);break}}}finally{$=!1,I.current=i,$e(),Error.prepareStackTrace=c}var j=n?n.displayName||n.name:\"\",ke=j?C(j):\"\";return typeof n==\"function\"&&D.set(n,ke),ke}function Ve(n,a,t){return ce(n,!1)}function Me(n){var a=n.prototype;return!!(a&&a.isReactComponent)}function w(n,a,t){if(n==null)return\"\";if(typeof n==\"function\")return ce(n,Me(n));if(typeof n==\"string\")return C(n);switch(n){case O:return C(\"Suspense\");case P:return C(\"SuspenseList\")}if(typeof n==\"object\")switch(n.$$typeof){case F:return Ve(n.render);case R:return w(n.type,a,t);case B:{var d=n,c=d._payload,i=d._init;try{return w(i(c),a,t)}catch{}}}return\"\"}var T=Object.prototype.hasOwnProperty,ie={},le=g.ReactDebugCurrentFrame;function A(n){if(n){var a=n._owner,t=w(n.type,n._source,a?a.type:null);le.setExtraStackFrame(t)}else le.setExtraStackFrame(null)}function Le(n,a,t,d,c){{var i=Function.call.bind(T);for(var s in n)if(i(n,s)){var o=void 0;try{if(typeof n[s]!=\"function\"){var h=Error((d||\"React class\")+\": \"+t+\" type `\"+s+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof n[s]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw h.name=\"Invariant Violation\",h}o=n[s](a,s,d,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(m){o=m}o&&!(o instanceof Error)&&(A(c),f(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",d||\"React class\",t,s,typeof o),A(null)),o instanceof Error&&!(o.message in ie)&&(ie[o.message]=!0,A(c),f(\"Failed %s type: %s\",t,o.message),A(null))}}}var qe=Array.isArray;function W(n){return qe(n)}function ze(n){{var a=typeof Symbol==\"function\"&&Symbol.toStringTag,t=a&&n[Symbol.toStringTag]||n.constructor.name||\"Object\";return t}}function Ge(n){try{return me(n),!1}catch{return!0}}function me(n){return\"\"+n}function ue(n){if(Ge(n))return f(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",ze(n)),me(n)}var v=g.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},fe,he,V;V={};function Ke(n){if(T.call(n,\"ref\")){var a=Object.getOwnPropertyDescriptor(n,\"ref\").get;if(a&&a.isReactWarning)return!1}return n.ref!==void 0}function He(n){if(T.call(n,\"key\")){var a=Object.getOwnPropertyDescriptor(n,\"key\").get;if(a&&a.isReactWarning)return!1}return n.key!==void 0}function Ze(n,a){if(typeof n.ref==\"string\"&&v.current&&a&&v.current.stateNode!==a){var t=p(v.current.type);V[t]||(f('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(v.current.type),n.ref),V[t]=!0)}}function Je(n,a){{var t=function(){fe||(fe=!0,f(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(n,\"key\",{get:t,configurable:!0})}}function Qe(n,a){{var t=function(){he||(he=!0,f(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(n,\"ref\",{get:t,configurable:!0})}}var en=function(n,a,t,d,c,i,s){var o={$$typeof:e,type:n,key:a,ref:t,props:s,_owner:i};return o._store={},Object.defineProperty(o._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(o,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:d}),Object.defineProperty(o,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:c}),Object.freeze&&(Object.freeze(o.props),Object.freeze(o)),o};function nn(n,a,t,d,c){{var i,s={},o=null,h=null;t!==void 0&&(ue(t),o=\"\"+t),He(a)&&(ue(a.key),o=\"\"+a.key),Ke(a)&&(h=a.ref,Ze(a,c));for(i in a)T.call(a,i)&&!Xe.hasOwnProperty(i)&&(s[i]=a[i]);if(n&&n.defaultProps){var m=n.defaultProps;for(i in m)s[i]===void 0&&(s[i]=m[i])}if(o||h){var u=typeof n==\"function\"?n.displayName||n.name||\"Unknown\":n;o&&Je(s,u),h&&Qe(s,u)}return en(n,o,h,c,d,v.current,s)}}var M=g.ReactCurrentOwner,be=g.ReactDebugCurrentFrame;function E(n){if(n){var a=n._owner,t=w(n.type,n._source,a?a.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var L;L=!1;function q(n){return typeof n==\"object\"&&n!==null&&n.$$typeof===e}function _e(){{if(M.current){var n=p(M.current.type);if(n)return`\n\nCheck the render method of \\``+n+\"`.\"}return\"\"}}function rn(n){{if(n!==void 0){var a=n.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=n.lineNumber;return`\n\nCheck your code at `+a+\":\"+t+\".\"}return\"\"}}var pe={};function an(n){{var a=_e();if(!a){var t=typeof n==\"string\"?n:n.displayName||n.name;t&&(a=`\n\nCheck the top-level render call using <`+t+\">.\")}return a}}function Ne(n,a){{if(!n._store||n._store.validated||n.key!=null)return;n._store.validated=!0;var t=an(a);if(pe[t])return;pe[t]=!0;var d=\"\";n&&n._owner&&n._owner!==M.current&&(d=\" It was passed a child from \"+p(n._owner.type)+\".\"),E(n),f('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,d),E(null)}}function ye(n,a){{if(typeof n!=\"object\")return;if(W(n))for(var t=0;t\",o=\" Did you accidentally export a JSX literal instead of a component?\"):m=typeof n,f(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",m,o)}var u=nn(n,a,t,c,i);if(u==null)return u;if(s){var b=a.children;if(b!==void 0)if(d)if(W(b)){for(var j=0;j{\"use strict\";Ue.exports=je()});var kn={};hn(kn,{default:()=>yn,frontmatter:()=>pn});var r=bn(ve()),pn={title:\"@chronark/access\",description:\"A minimal library for access control. It is designed to be used together with opaque access tokens by providing a simple interface to define roles with different access permissions and verifying requests to resources.\",repository:\"chronark/access\",date:\"2022-11-13\",published:!0};function Fe(l){let e=Object.assign({p:\"p\",ul:\"ul\",li:\"li\",h2:\"h2\",a:\"a\",span:\"span\",div:\"div\",pre:\"pre\",code:\"code\"},l.components);return(0,r.jsxDEV)(r.Fragment,{children:[(0,r.jsxDEV)(e.p,{children:\"A minimal library for access control. It is designed to be used together with opaque access tokens by providing a simple interface to define roles with different access permissions and verifying requests to resources.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ul,{children:[`\n`,(0,r.jsxDEV)(e.li,{children:\"Fully typed\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:\"Zero dependencies\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:\"Serializable to store in a database\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:13,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h2,{id:\"install\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#install\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\"},this),\"Install\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\"npm i @chronark/access\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h2,{id:\"usage\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#usage\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\"},this),\"Usage\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:21,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:1,columnNumber:104},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" { AccessControl, Role } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:1,columnNumber:146},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:1,columnNumber:207},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:1,columnNumber:247},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"@chronark/access\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:1,columnNumber:284},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\";\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:1,columnNumber:348},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:3,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Define all your resources and their access patterns\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:4,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" *\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:5,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * key => resource\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * value => array of access types\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"type\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:9,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:9,columnNumber:60},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"Statements\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:9,columnNumber:97},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:9,columnNumber:143},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:9,columnNumber:180},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:9,columnNumber:217},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:10,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\"user\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:10,columnNumber:58},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\":\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:10,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:10,columnNumber:135},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:10,columnNumber:173},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:10,columnNumber:225},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"write\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:10,columnNumber:263},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:10,columnNumber:316},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"dance\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:10,columnNumber:354},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"];\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:10,columnNumber:407},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:11,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\"team\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:11,columnNumber:58},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\":\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:11,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:11,columnNumber:135},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:11,columnNumber:173},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:11,columnNumber:225},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"write\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:11,columnNumber:263},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"];\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:11,columnNumber:316},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"};\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:12,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:14,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Create an access control instance and pass the Statements type to enjoy full\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:15,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * type safety\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:16,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:17,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:18,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:18,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"ac\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:18,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:18,columnNumber:136},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:18,columnNumber:173},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:18,columnNumber:210},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"new\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:18,columnNumber:247},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:18,columnNumber:286},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"AccessControl\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:18,columnNumber:323},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"<\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:18,columnNumber:372},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"Statements\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:18,columnNumber:412},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\">();\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:18,columnNumber:458},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:20,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Now you can define one or more roles by specifying the access permissions\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:21,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:21,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" *\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:22,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:22,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * This is already fully typed and typescript will let you know if you try to\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:23,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:23,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * use anything, that is not defined in the Statements type.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:24,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:24,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:25,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:25,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:26,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:26,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"role\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:26,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:26,columnNumber:138},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:26,columnNumber:175},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" ac.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:26,columnNumber:212},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"newRole\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:26,columnNumber:252},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:26,columnNumber:295},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:26,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" user: [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:27,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:27,columnNumber:65},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:27,columnNumber:117},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"write\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:27,columnNumber:155},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"],\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:27,columnNumber:208},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:27,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" team: [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:28,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:28,columnNumber:65},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"],\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:28,columnNumber:117},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:28,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"});\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:29,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:29,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:31,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Simulate storing and retrieving the role in a database\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:32,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:32,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" *\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:33,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:33,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * The idea here is, that you can store permissions alongside an API token.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:34,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:34,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Now, when you verify the token, you can also verify the access permissions.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:35,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:36,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:36,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:37,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:37,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"serialized\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:37,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:37,columnNumber:144},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:37,columnNumber:181},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" role.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:37,columnNumber:218},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"toString\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:37,columnNumber:260},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"();\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:37,columnNumber:304},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:37,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:38,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:39,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:39,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Note how you can pass in the Statements type again, to get full type safety\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:40,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:40,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:41,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:41,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:42,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:42,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"recovered\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:42,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:42,columnNumber:143},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:42,columnNumber:180},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" Role.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:42,columnNumber:217},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"fromString\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:42,columnNumber:259},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"<\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:42,columnNumber:305},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"Statements\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:42,columnNumber:345},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\">(serialized);\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:42,columnNumber:391},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:42,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:43,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:44,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:44,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Validate the role by specifying the resource and the required access\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:45,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:45,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" *\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:46,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:46,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * everything is fully typed\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:47,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:47,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:48,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:48,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:49,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:49,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"res\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:49,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:49,columnNumber:137},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:49,columnNumber:174},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" recovered.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:49,columnNumber:211},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"authorize\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:49,columnNumber:258},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:49,columnNumber:303},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"team\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:49,columnNumber:341},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:49,columnNumber:393},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:49,columnNumber:432},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"]});\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:49,columnNumber:484},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:49,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:50,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// res.success => boolean\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:51,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:51,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// res.error => string | undefined provides a reason for failure\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:52,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:52,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:23,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\",lineNumber:1,columnNumber:1},this)}function Nn(l={}){let{wrapper:e}=l.components||{};return e?(0,r.jsxDEV)(e,Object.assign({},l,{children:(0,r.jsxDEV)(Fe,l,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d8066872-a2fe-4fe1-adaa-65c6bdb4f8d7.mdx\"},this):Fe(l)}var yn=Nn;return _n(kn);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/access.mdx", - "_raw": { - "sourceFilePath": "projects/access.mdx", - "sourceFileName": "access.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/access" - }, - "type": "Project", - "path": "/projects/access", - "slug": "access" - }, - "documentHash": "1679819558148", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/envshare.mdx": { - "document": { - "published": true, - "title": "envshare.dev", - "description": "EnvShare is a simple tool to share environment variables securely. It uses AES-GCM to encrypt your data before sending it to the server. The encryption key never leaves your browser.", - "date": "2023-01-16T00:00:00.000Z", - "url": "https://envshare.dev", - "repository": "chronark/envshare", - "body": { - "raw": "\nEnvShare is a simple tool to share environment variables securely. It uses\n**AES-GCM** to encrypt your data before sending it to the server. The encryption\nkey never leaves your browser.\n\n## Features\n\n- **Shareable Links:** Share your environment variables securely by sending a\n link\n- **End-to-End Encryption:** AES-GCM encryption is used to encrypt your data\n before sending it to the server\n- **Limit number of reads:** Limit the number of times a link can be read\n- **Auto Expire:** Automatically expire links and delete data after a certain\n time\n\n\n\n![](https://github.com/chronark/envshare/raw/main/img/envshare.png)\n\n## Built with\n\n- [Next.js](https://nextjs.org)\n- [tailwindcss](https://tailwindcss.com)\n- Deployed on [Vercel](https://vercel.com?utm_source=envshare)\n- Data stored on [Upstash](https://upstash.com?utm_source=envshare)\n\n## Deploy your own\n\nDetailed instructions can be found [here](https://envshare.dev/deploy)\n\nAll you need is a Redis database on Upstash and a Vercel account. Click the\nbutton below to clone and deploy:\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?demo-title=EnvShare&demo-description=Simple%20Next.js%20%2B%20Upstash%20app%20to%20share%20environment%20variables%20securely%20using%20AES-GCM%20encryption.&demo-url=https%3A%2F%2Fenvshare.dev%2F&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5SaFBHXp5FBFJbsTzVqIJ3%2Ff0f8382369b7642fd8103debb9025c11%2Fenvshare.png&project-name=EnvShare&repository-name=envshare&repository-url=https%3A%2F%2Fgithub.com%2Fchronark%2Fenvshare&from=templates&integration-ids=oac_V3R1GIpkoJorr6fqyiwdhl17)\n\n\n\n## Configuration\n\n### Environment Variables\n\n`ENABLE_VERCEL_ANALYTICS` Any truthy value will enable Vercel Analytics. This is turned off by default\n\n## Contributing\n\nThis repository uses `pnpm` to manage dependencies. Install it using\n`npm install -g pnpm`\n\nPlease run `pnpm fmt` before committing to format the code.\n\n## Docs\n\nDocs in the README are temporary and will be moved to the website soon.\n\n### API\n\n#### Store a secret\n\n**PLEASE NEVER EVER UPLOAD UNENCRYPTED SECRETS.**\n\nThis endpoint is only meant to store **already encrypted** secrets. The\nencrypted secrets are stored in plain text.\n\n```sh-session\n$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\"\n```\n\nYou can add optional headers to configure the ttl and number of reads.\n\n```sh-session\n$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\" -H \"envshare-ttl: 3600\" -H \"envshare-reads: 10\"\n```\n\n- Omitting the `envshare-ttl` header will set a default of 30 days. Disable the\n ttl by setting it to 0. (`envshare-ttl: 0`)\n- Omitting the `envshare-reads` header will simply disable it and allow reading\n for an unlimited number of times.\n\nThis endpoint returns a JSON response with the secret id:\n\n```json\n{\n \"data\": {\n \"id\": \"HdPbXgpvUvNk43oxSdK97u\",\n \"ttl\": 86400,\n \"reads\": 2,\n \"expiresAt\": \"2023-01-19T20:47:28.383Z\",\n \"url\": \"http://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"\n }\n}\n```\n\n#### Retrieve a secret\n\nYou need an id to retrieve a secret. The id is returned when you store a secret.\n\n```sh-session\n$ curl -s https://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\n```\n\n```json\n{\n \"data\": {\n \"secret\": \"Hello\",\n \"remainingReads\": 1\n }\n}\n```", - "code": "var Component=(()=>{var dn=Object.create;var O=Object.defineProperty;var ln=Object.getOwnPropertyDescriptor;var un=Object.getOwnPropertyNames;var mn=Object.getPrototypeOf,hn=Object.prototype.hasOwnProperty;var X=(l,n)=>()=>(n||l((n={exports:{}}).exports,n),n.exports),fn=(l,n)=>{for(var _ in n)O(l,_,{get:n[_],enumerable:!0})},ye=(l,n,_,x)=>{if(n&&typeof n==\"object\"||typeof n==\"function\")for(let k of un(n))!hn.call(l,k)&&k!==_&&O(l,k,{get:()=>n[k],enumerable:!(x=ln(n,k))||x.enumerable});return l};var bn=(l,n,_)=>(_=l!=null?dn(mn(l)):{},ye(n||!l||!l.__esModule?O(_,\"default\",{value:l,enumerable:!0}):_,l)),_n=l=>ye(O({},\"__esModule\",{value:!0}),l);var ve=X((gn,ge)=>{ge.exports=React});var Ee=X(H=>{\"use strict\";(function(){\"use strict\";var l=ve(),n=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),x=Symbol.for(\"react.fragment\"),k=Symbol.for(\"react.strict_mode\"),q=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),z=Symbol.for(\"react.context\"),R=Symbol.for(\"react.forward_ref\"),A=Symbol.for(\"react.suspense\"),D=Symbol.for(\"react.suspense_list\"),F=Symbol.for(\"react.memo\"),L=Symbol.for(\"react.lazy\"),Fe=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Te=\"@@iterator\";function we(e){if(e===null||typeof e!=\"object\")return null;var a=J&&e[J]||e[Te];return typeof a==\"function\"?a:null}var g=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function h(e){{for(var a=arguments.length,t=new Array(a>1?a-1:0),c=1;c=1&&m>=0&&o[u]!==f[m];)m--;for(;u>=1&&m>=0;u--,m--)if(o[u]!==f[m]){if(u!==1||m!==1)do if(u--,m--,m<0||o[u]!==f[m]){var b=`\n`+o[u].replace(\" at new \",\" at \");return e.displayName&&b.includes(\"\")&&(b=b.replace(\"\",e.displayName)),typeof e==\"function\"&&w.set(e,b),b}while(u>=1&&m>=0);break}}}finally{V=!1,I.current=d,Ve(),Error.prepareStackTrace=i}var E=e?e.displayName||e.name:\"\",xe=E?T(E):\"\";return typeof e==\"function\"&&w.set(e,xe),xe}function $e(e,a,t){return ie(e,!1)}function Me(e){var a=e.prototype;return!!(a&&a.isReactComponent)}function S(e,a,t){if(e==null)return\"\";if(typeof e==\"function\")return ie(e,Me(e));if(typeof e==\"string\")return T(e);switch(e){case A:return T(\"Suspense\");case D:return T(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case R:return $e(e.render);case F:return S(e.type,a,t);case L:{var c=e,i=c._payload,d=c._init;try{return S(d(i),a,t)}catch{}}}return\"\"}var C=Object.prototype.hasOwnProperty,de={},le=g.ReactDebugCurrentFrame;function P(e){if(e){var a=e._owner,t=S(e.type,e._source,a?a.type:null);le.setExtraStackFrame(t)}else le.setExtraStackFrame(null)}function We(e,a,t,c,i){{var d=Function.call.bind(C);for(var s in e)if(d(e,s)){var o=void 0;try{if(typeof e[s]!=\"function\"){var f=Error((c||\"React class\")+\": \"+t+\" type `\"+s+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[s]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw f.name=\"Invariant Violation\",f}o=e[s](a,s,c,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(u){o=u}o&&!(o instanceof Error)&&(P(i),h(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",c||\"React class\",t,s,typeof o),P(null)),o instanceof Error&&!(o.message in de)&&(de[o.message]=!0,P(i),h(\"Failed %s type: %s\",t,o.message),P(null))}}}var Ge=Array.isArray;function Y(e){return Ge(e)}function Xe(e){{var a=typeof Symbol==\"function\"&&Symbol.toStringTag,t=a&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function He(e){try{return ue(e),!1}catch{return!0}}function ue(e){return\"\"+e}function me(e){if(He(e))return h(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Xe(e)),ue(e)}var U=g.ReactCurrentOwner,qe={key:!0,ref:!0,__self:!0,__source:!0},he,fe,$;$={};function Ke(e){if(C.call(e,\"ref\")){var a=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(a&&a.isReactWarning)return!1}return e.ref!==void 0}function ze(e){if(C.call(e,\"key\")){var a=Object.getOwnPropertyDescriptor(e,\"key\").get;if(a&&a.isReactWarning)return!1}return e.key!==void 0}function Je(e,a){if(typeof e.ref==\"string\"&&U.current&&a&&U.current.stateNode!==a){var t=p(U.current.type);$[t]||(h('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(U.current.type),e.ref),$[t]=!0)}}function Ze(e,a){{var t=function(){he||(he=!0,h(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,a){{var t=function(){fe||(fe=!0,h(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var en=function(e,a,t,c,i,d,s){var o={$$typeof:n,type:e,key:a,ref:t,props:s,_owner:d};return o._store={},Object.defineProperty(o._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(o,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:c}),Object.defineProperty(o,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(o.props),Object.freeze(o)),o};function nn(e,a,t,c,i){{var d,s={},o=null,f=null;t!==void 0&&(me(t),o=\"\"+t),ze(a)&&(me(a.key),o=\"\"+a.key),Ke(a)&&(f=a.ref,Je(a,i));for(d in a)C.call(a,d)&&!qe.hasOwnProperty(d)&&(s[d]=a[d]);if(e&&e.defaultProps){var u=e.defaultProps;for(d in u)s[d]===void 0&&(s[d]=u[d])}if(o||f){var m=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;o&&Ze(s,m),f&&Qe(s,m)}return en(e,o,f,i,c,U.current,s)}}var M=g.ReactCurrentOwner,be=g.ReactDebugCurrentFrame;function v(e){if(e){var a=e._owner,t=S(e.type,e._source,a?a.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var W;W=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===n}function _e(){{if(M.current){var e=p(M.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function rn(e){{if(e!==void 0){var a=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+a+\":\"+t+\".\"}return\"\"}}var pe={};function an(e){{var a=_e();if(!a){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(a=`\n\nCheck the top-level render call using <`+t+\">.\")}return a}}function Ne(e,a){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=an(a);if(pe[t])return;pe[t]=!0;var c=\"\";e&&e._owner&&e._owner!==M.current&&(c=\" It was passed a child from \"+p(e._owner.type)+\".\"),v(e),h('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,c),v(null)}}function ke(e,a){{if(typeof e!=\"object\")return;if(Y(e))for(var t=0;t\",o=\" Did you accidentally export a JSX literal instead of a component?\"):u=typeof e,h(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",u,o)}var m=nn(e,a,t,i,d);if(m==null)return m;if(s){var b=a.children;if(b!==void 0)if(c)if(Y(b)){for(var E=0;E{\"use strict\";je.exports=Ee()});var xn={};fn(xn,{default:()=>kn,frontmatter:()=>pn});var r=bn(Ue()),pn={title:\"envshare.dev\",description:\"EnvShare is a simple tool to share environment variables securely. It uses AES-GCM to encrypt your data before sending it to the server. The encryption key never leaves your browser.\",date:\"2023-01-16\",url:\"https://envshare.dev\",repository:\"chronark/envshare\",published:!0};function Re(l){let n=Object.assign({p:\"p\",strong:\"strong\",h2:\"h2\",a:\"a\",span:\"span\",ul:\"ul\",li:\"li\",img:\"img\",h3:\"h3\",code:\"code\",h4:\"h4\",div:\"div\",pre:\"pre\"},l.components);return(0,r.jsxDEV)(r.Fragment,{children:[(0,r.jsxDEV)(n.p,{children:[`EnvShare is a simple tool to share environment variables securely. It uses\n`,(0,r.jsxDEV)(n.strong,{children:\"AES-GCM\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:11,columnNumber:1},this),` to encrypt your data before sending it to the server. The encryption\nkey never leaves your browser.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"features\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#features\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\"},this),\"Features\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Shareable Links:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:16,columnNumber:3},this),` Share your environment variables securely by sending a\nlink`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"End-to-End Encryption:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:18,columnNumber:3},this),` AES-GCM encryption is used to encrypt your data\nbefore sending it to the server`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Limit number of reads:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:20,columnNumber:3},this),\" Limit the number of times a link can be read\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Auto Expire:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:21,columnNumber:3},this),` Automatically expire links and delete data after a certain\ntime`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:21,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.img,{src:\"https://github.com/chronark/envshare/raw/main/img/envshare.png\",alt:\"\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:26,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:26,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"built-with\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#built-with\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\"},this),\"Built with\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:28,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:(0,r.jsxDEV)(n.a,{href:\"https://nextjs.org\",children:\"Next.js\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:30,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:(0,r.jsxDEV)(n.a,{href:\"https://tailwindcss.com\",children:\"tailwindcss\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:31,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Deployed on \",(0,r.jsxDEV)(n.a,{href:\"https://vercel.com?utm_source=envshare\",children:\"Vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:32,columnNumber:15},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:32,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Data stored on \",(0,r.jsxDEV)(n.a,{href:\"https://upstash.com?utm_source=envshare\",children:\"Upstash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:33,columnNumber:18},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:33,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"deploy-your-own\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#deploy-your-own\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\"},this),\"Deploy your own\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"Detailed instructions can be found \",(0,r.jsxDEV)(n.a,{href:\"https://envshare.dev/deploy\",children:\"here\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:37,columnNumber:36},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:37,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:`All you need is a Redis database on Upstash and a Vercel account. Click the\nbutton below to clone and deploy:`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:39,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.a,{href:\"https://vercel.com/new/clone?demo-title=EnvShare&demo-description=Simple%20Next.js%20%2B%20Upstash%20app%20to%20share%20environment%20variables%20securely%20using%20AES-GCM%20encryption.&demo-url=https%3A%2F%2Fenvshare.dev%2F&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5SaFBHXp5FBFJbsTzVqIJ3%2Ff0f8382369b7642fd8103debb9025c11%2Fenvshare.png&project-name=EnvShare&repository-name=envshare&repository-url=https%3A%2F%2Fgithub.com%2Fchronark%2Fenvshare&from=templates&integration-ids=oac_V3R1GIpkoJorr6fqyiwdhl17\",children:(0,r.jsxDEV)(n.img,{src:\"https://vercel.com/button\",alt:\"Deploy with Vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:42,columnNumber:2},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:42,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:42,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"configuration\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#configuration\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\"},this),\"Configuration\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:46,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h3,{id:\"environment-variables\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#environment-variables\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\"},this),\"Environment Variables\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:48,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[(0,r.jsxDEV)(n.code,{children:\"ENABLE_VERCEL_ANALYTICS\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:50,columnNumber:1},this),\" Any truthy value will enable Vercel Analytics. This is turned off by default\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:50,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"contributing\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#contributing\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\"},this),\"Contributing\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:52,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"This repository uses \",(0,r.jsxDEV)(n.code,{children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:54,columnNumber:22},this),` to manage dependencies. Install it using\n`,(0,r.jsxDEV)(n.code,{children:\"npm install -g pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:55,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:54,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"Please run \",(0,r.jsxDEV)(n.code,{children:\"pnpm fmt\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:57,columnNumber:12},this),\" before committing to format the code.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:57,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"docs\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#docs\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\"},this),\"Docs\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:59,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"Docs in the README are temporary and will be moved to the website soon.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:61,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h3,{id:\"api\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#api\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\"},this),\"API\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:63,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h4,{id:\"store-a-secret\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#store-a-secret\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\"},this),\"Store a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:65,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.strong,{children:\"PLEASE NEVER EVER UPLOAD UNENCRYPTED SECRETS.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:67,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:67,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"This endpoint is only meant to store \",(0,r.jsxDEV)(n.strong,{children:\"already encrypted\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:69,columnNumber:38},this),` secrets. The\nencrypted secrets are stored in plain text.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:69,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:'$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:72,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"You can add optional headers to configure the ttl and number of reads.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:76,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:'$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\" -H \"envshare-ttl: 3600\" -H \"envshare-reads: 10\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:78,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:[\"Omitting the \",(0,r.jsxDEV)(n.code,{children:\"envshare-ttl\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:82,columnNumber:16},this),` header will set a default of 30 days. Disable the\nttl by setting it to 0. (`,(0,r.jsxDEV)(n.code,{children:\"envshare-ttl: 0\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:83,columnNumber:28},this),\")\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Omitting the \",(0,r.jsxDEV)(n.code,{children:\"envshare-reads\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:84,columnNumber:16},this),` header will simply disable it and allow reading\nfor an unlimited number of times.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:84,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"This endpoint returns a JSON response with the secret id:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:87,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"json\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"json\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"data\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"id\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:3,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:3,columnNumber:110},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"HdPbXgpvUvNk43oxSdK97u\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:3,columnNumber:148},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:3,columnNumber:218},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"ttl\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:4,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:4,columnNumber:111},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"86400\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:4,columnNumber:149},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:4,columnNumber:190},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:5,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"reads\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:5,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:5,columnNumber:113},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"2\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:5,columnNumber:151},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:5,columnNumber:188},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:6,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"expiresAt\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:6,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:6,columnNumber:117},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"2023-01-19T20:47:28.383Z\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:6,columnNumber:155},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:6,columnNumber:227},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:7,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"url\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:7,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:7,columnNumber:111},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"http://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:7,columnNumber:149},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:9,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:89,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h4,{id:\"retrieve-a-secret\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#retrieve-a-secret\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\"},this),\"Retrieve a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:101,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"You need an id to retrieve a secret. The id is returned when you store a secret.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:103,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:\"$ curl -s https://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:105,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"json\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"json\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"data\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"secret\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:3,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:3,columnNumber:114},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"Hello\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:3,columnNumber:152},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:3,columnNumber:205},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"remainingReads\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:4,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:4,columnNumber:122},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:4,columnNumber:160},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:5,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:6,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:109,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\",lineNumber:1,columnNumber:1},this)}function Nn(l={}){let{wrapper:n}=l.components||{};return n?(0,r.jsxDEV)(n,Object.assign({},l,{children:(0,r.jsxDEV)(Re,l,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d23c61c-e97c-4ee3-8335-33f560aa887d.mdx\"},this):Re(l)}var kn=Nn;return _n(xn);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/envshare.mdx", - "_raw": { - "sourceFilePath": "projects/envshare.mdx", - "sourceFileName": "envshare.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/envshare" - }, - "type": "Project", - "path": "/projects/envshare", - "slug": "envshare" - }, - "documentHash": "1679819564284", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/planetfall.mdx": { - "document": { - "published": true, - "title": "planetfall.io", - "description": "I'm building a SAAS, that provides global latency monitoring for your APIs and websites from edge locations around the world. Have you ever wondered how fast your API is in any part of the world? Planetfall allows you to find out and monitor it continuously.", - "date": "2023-04-01T00:00:00.000Z", - "url": "https://planetfall.io", - "body": { - "raw": "\n\nI'm building a SAAS, that provides global latency monitoring for your APIs and websites from edge locations around the world. Have you ever wondered how fast your API is in any part of the world? Planetfall allows you to find out and monitor it continuously.", - "code": "var Component=(()=>{var sr=Object.create;var D=Object.defineProperty;var lr=Object.getOwnPropertyDescriptor;var fr=Object.getOwnPropertyNames;var cr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,l)=>()=>(l||s((l={exports:{}}).exports,l),l.exports),vr=(s,l)=>{for(var h in l)D(s,h,{get:l[h],enumerable:!0})},_e=(s,l,h,y)=>{if(l&&typeof l==\"object\"||typeof l==\"function\")for(let m of fr(l))!dr.call(s,m)&&m!==h&&D(s,m,{get:()=>l[m],enumerable:!(y=lr(l,m))||y.enumerable});return s};var pr=(s,l,h)=>(h=s!=null?sr(cr(s)):{},_e(l||!s||!s.__esModule?D(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(D({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var we=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),l=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),y=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),H=Symbol.for(\"react.profiler\"),X=Symbol.for(\"react.provider\"),K=Symbol.for(\"react.context\"),C=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),O=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&c>=0&&a[f]!==v[c];)c--;for(;f>=1&&c>=0;f--,c--)if(a[f]!==v[c]){if(f!==1||c!==1)do if(f--,c--,c<0||a[f]!==v[c]){var p=`\n`+a[f].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(f>=1&&c>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",Ee=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,Ee),Ee}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case C:return Ue(e.render);case O:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,le={},fe=_.ReactDebugCurrentFrame;function A(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){a=f}a&&!(a instanceof Error)&&(A(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),A(null)),a instanceof Error&&!(a.message in le)&&(le[a.message]=!0,A(i),d(\"Failed %s type: %s\",t,a.message),A(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return ce(e),!1}catch{return!0}}function ce(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),ce(e)}var P=_.ReactCurrentOwner,He={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Xe(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function Ke(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&P.current&&r&&P.current.stateNode!==r){var t=b(P.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',b(P.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:l,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),Ke(r)&&(de(r.key),a=\"\"+r.key),Xe(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!He.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var f=e.defaultProps;for(u in f)o[u]===void 0&&(o[u]=f[u])}if(a||v){var c=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,c),v&&Qe(o,c)}return er(e,a,v,i,n,P.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===l}function be(){{if(L.current){var e=b(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=be();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+b(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function ye(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):f=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",f,a)}var c=rr(e,r,t,i,u);if(c==null)return c;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Pe.exports=we()});var yr={};vr(yr,{default:()=>mr,frontmatter:()=>br});var F=pr(Ce()),br={title:\"planetfall.io\",description:\"I'm building a SAAS, that provides global latency monitoring for your APIs and websites from edge locations around the world. Have you ever wondered how fast your API is in any part of the world? Planetfall allows you to find out and monitor it continuously.\",date:\"2023-04-01\",url:\"https://planetfall.io\",published:!0};function Oe(s){let l=Object.assign({p:\"p\"},s.components);return(0,F.jsxDEV)(l.p,{children:\"I'm building a SAAS, that provides global latency monitoring for your APIs and websites from edge locations around the world. Have you ever wondered how fast your API is in any part of the world? Planetfall allows you to find out and monitor it continuously.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-758bf563-6dcf-48e1-946f-f078dd8776dc.mdx\",lineNumber:11,columnNumber:1},this)}function gr(s={}){let{wrapper:l}=s.components||{};return l?(0,F.jsxDEV)(l,Object.assign({},s,{children:(0,F.jsxDEV)(Oe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-758bf563-6dcf-48e1-946f-f078dd8776dc.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-758bf563-6dcf-48e1-946f-f078dd8776dc.mdx\"},this):Oe(s)}var mr=gr;return hr(yr);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/planetfall.mdx", - "_raw": { - "sourceFilePath": "projects/planetfall.mdx", - "sourceFileName": "planetfall.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/planetfall" - }, - "type": "Project", - "path": "/projects/planetfall", - "slug": "planetfall" - }, - "documentHash": "1679819567844", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/qstash.mdx": { - "document": { - "published": true, - "title": "QStash", - "description": "QStash is a fully managed serverless queue and messaging service designed for the serverless era.", - "date": "2022-07-18T00:00:00.000Z", - "url": "https://upstash.com/qstash", - "body": { - "raw": "\nQStash is an HTTP based messaging and scheduling solution for the serverless and edge runtimes.\n\n- 100% serverless, no stateful connections required. Messages are pushed to your API.\n- At-least-once delivery guaranteed to any public API\n- Pubsub via topics\n- Delay message delivery\n- Message deduplication\n- Scheduling via CRON\n\n\nFormally, QStash is a message queue and task scheduler designed for serverless runtimes. Informally, QStash is a glue for your serverless functions.\n\nThere was a perception serverless was only good for simple tasks. Not anymore. People build powerful systems with serverless stack. Powerful systems are composed of multiple components. Communication among those components is a big engineering problem. There are already great solutions for this problem. But we think existing solutions do not fit in serverless space. Either they are too complex or not designed to work with stateless runtimes. So we want a solution which (is):\n\n- Works anywhere including serverless and edge.\n- Messaging as a service with no backend for users to run.\n- Lightweight, easy to understand, requires nothing to learn.\n- Price scales to zero.\n\nLet's talk about a real world example. We have an e-commerce app and we want to send an informational email after each purchase. We have a service (an API route) for new purchases (newPurchase) and a second service for sending emails and notifications (sendEmail). We can call the sendEmail service from the newPurchase service. But what if the call fails? Should we wait for the response and retry? What if too many calls congest the sendEmail service and the service does not respond on time? You need to handle all these cases in your newPurchase service. Moreover, when you change the contract of sendEmail service; you have to update your newPurchase service too.\n\nIf you use QStash in the above example, you simply send a request to QStash from the newPurchase service. QStash will queue the request and call the sendEmail service. If the service does not respond, QStash will retry with a backoff strategy. The latency of sendEmail service will not affect the newPurchase service, because it will not wait for a response from the sendEmail service. QStash decouples the newPurchase and sendEmail services. You can update both services independently as long as you keep the message format compatible.\n\nWith QStash, you can add delays to the requests. Send an email 3 days after the shipment to remind the customer to add a review. You can also schedule tasks. You can send the requests with a CRON expression, so it will be run repetitively.\n\n\nTo learn more about QStash, visit [upstash.com/qstash](upstash.com/qstash).", - "code": "var Component=(()=>{var ur=Object.create;var F=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var lr=Object.getOwnPropertyNames;var fr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var B=(l,a)=>()=>(a||l((a={exports:{}}).exports,a),a.exports),hr=(l,a)=>{for(var v in a)F(l,v,{get:a[v],enumerable:!0})},Ee=(l,a,v,y)=>{if(a&&typeof a==\"object\"||typeof a==\"function\")for(let g of lr(a))!dr.call(l,g)&&g!==v&&F(l,g,{get:()=>a[g],enumerable:!(y=cr(a,g))||y.enumerable});return l};var mr=(l,a,v)=>(v=l!=null?ur(fr(l)):{},Ee(a||!l||!l.__esModule?F(v,\"default\",{value:l,enumerable:!0}):v,l)),br=l=>Ee(F({},\"__esModule\",{value:!0}),l);var we=B((Er,ke)=>{ke.exports=React});var xe=B(z=>{\"use strict\";(function(){\"use strict\";var l=we(),a=Symbol.for(\"react.element\"),v=Symbol.for(\"react.portal\"),y=Symbol.for(\"react.fragment\"),g=Symbol.for(\"react.strict_mode\"),G=Symbol.for(\"react.profiler\"),X=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),T=Symbol.for(\"react.forward_ref\"),U=Symbol.for(\"react.suspense\"),A=Symbol.for(\"react.suspense_list\"),j=Symbol.for(\"react.memo\"),I=Symbol.for(\"react.lazy\"),je=Symbol.for(\"react.offscreen\"),K=Symbol.iterator,Pe=\"@@iterator\";function Se(e){if(e===null||typeof e!=\"object\")return null;var r=K&&e[K]||e[Pe];return typeof r==\"function\"?r:null}var k=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function h(e){{for(var r=arguments.length,n=new Array(r>1?r-1:0),t=1;t=1&&d>=0&&o[f]!==m[d];)d--;for(;f>=1&&d>=0;f--,d--)if(o[f]!==m[d]){if(f!==1||d!==1)do if(f--,d--,d<0||o[f]!==m[d]){var b=`\n`+o[f].replace(\" at new \",\" at \");return e.displayName&&b.includes(\"\")&&(b=b.replace(\"\",e.displayName)),typeof e==\"function\"&&S.set(e,b),b}while(f>=1&&d>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=s}var x=e?e.displayName||e.name:\"\",ye=x?P(x):\"\";return typeof e==\"function\"&&S.set(e,ye),ye}function Ve(e,r,n){return ue(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function C(e,r,n){if(e==null)return\"\";if(typeof e==\"function\")return ue(e,Le(e));if(typeof e==\"string\")return P(e);switch(e){case U:return P(\"Suspense\");case A:return P(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case T:return Ve(e.render);case j:return C(e.type,r,n);case I:{var t=e,s=t._payload,u=t._init;try{return C(u(s),r,n)}catch{}}}return\"\"}var O=Object.prototype.hasOwnProperty,ce={},le=k.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,n=C(e.type,e._source,r?r.type:null);le.setExtraStackFrame(n)}else le.setExtraStackFrame(null)}function qe(e,r,n,t,s){{var u=Function.call.bind(O);for(var i in e)if(u(e,i)){var o=void 0;try{if(typeof e[i]!=\"function\"){var m=Error((t||\"React class\")+\": \"+n+\" type `\"+i+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[i]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw m.name=\"Invariant Violation\",m}o=e[i](r,i,t,n,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){o=f}o&&!(o instanceof Error)&&(D(s),h(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",t||\"React class\",n,i,typeof o),D(null)),o instanceof Error&&!(o.message in ce)&&(ce[o.message]=!0,D(s),h(\"Failed %s type: %s\",n,o.message),D(null))}}}var Qe=Array.isArray;function $(e){return Qe(e)}function Be(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,n=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return n}}function ze(e){try{return fe(e),!1}catch{return!0}}function fe(e){return\"\"+e}function de(e){if(ze(e))return h(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Be(e)),fe(e)}var N=k.ReactCurrentOwner,Ge={key:!0,ref:!0,__self:!0,__source:!0},he,me,V;V={};function Xe(e){if(O.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(O.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Ke(e,r){if(typeof e.ref==\"string\"&&N.current&&r&&N.current.stateNode!==r){var n=p(N.current.type);V[n]||(h('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(N.current.type),e.ref),V[n]=!0)}}function Je(e,r){{var n=function(){he||(he=!0,h(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};n.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:n,configurable:!0})}}function Ze(e,r){{var n=function(){me||(me=!0,h(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};n.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:n,configurable:!0})}}var er=function(e,r,n,t,s,u,i){var o={$$typeof:a,type:e,key:r,ref:n,props:i,_owner:u};return o._store={},Object.defineProperty(o._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(o,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:t}),Object.defineProperty(o,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:s}),Object.freeze&&(Object.freeze(o.props),Object.freeze(o)),o};function rr(e,r,n,t,s){{var u,i={},o=null,m=null;n!==void 0&&(de(n),o=\"\"+n),He(r)&&(de(r.key),o=\"\"+r.key),Xe(r)&&(m=r.ref,Ke(r,s));for(u in r)O.call(r,u)&&!Ge.hasOwnProperty(u)&&(i[u]=r[u]);if(e&&e.defaultProps){var f=e.defaultProps;for(u in f)i[u]===void 0&&(i[u]=f[u])}if(o||m){var d=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;o&&Je(i,d),m&&Ze(i,d)}return er(e,o,m,s,t,N.current,i)}}var L=k.ReactCurrentOwner,be=k.ReactDebugCurrentFrame;function w(e){if(e){var r=e._owner,n=C(e.type,e._source,r?r.type:null);be.setExtraStackFrame(n)}else be.setExtraStackFrame(null)}var q;q=!1;function Q(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===a}function ve(){{if(L.current){var e=p(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function nr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),n=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+n+\".\"}return\"\"}}var pe={};function tr(e){{var r=ve();if(!r){var n=typeof e==\"string\"?e:e.displayName||e.name;n&&(r=`\n\nCheck the top-level render call using <`+n+\">.\")}return r}}function _e(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var n=tr(r);if(pe[n])return;pe[n]=!0;var t=\"\";e&&e._owner&&e._owner!==L.current&&(t=\" It was passed a child from \"+p(e._owner.type)+\".\"),w(e),h('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',n,t),w(null)}}function ge(e,r){{if(typeof e!=\"object\")return;if($(e))for(var n=0;n\",o=\" Did you accidentally export a JSX literal instead of a component?\"):f=typeof e,h(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",f,o)}var d=rr(e,r,n,s,u);if(d==null)return d;if(i){var b=r.children;if(b!==void 0)if(t)if($(b)){for(var x=0;x{\"use strict\";Re.exports=xe()});var gr={};hr(gr,{default:()=>_r,frontmatter:()=>vr});var c=mr(Ne()),vr={title:\"QStash\",description:\"QStash is a fully managed serverless queue and messaging service designed for the serverless era.\",date:\"2022-07-18\",url:\"https://upstash.com/qstash\",published:!0};function Te(l){let a=Object.assign({p:\"p\",ul:\"ul\",li:\"li\",a:\"a\"},l.components);return(0,c.jsxDEV)(c.Fragment,{children:[(0,c.jsxDEV)(a.p,{children:\"QStash is an HTTP based messaging and scheduling solution for the serverless and edge runtimes.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-61138c5e-2f5b-4ef4-b363-6c2819165b19.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,c.jsxDEV)(a.ul,{children:[`\n`,(0,c.jsxDEV)(a.li,{children:\"100% serverless, no stateful connections required. Messages are pushed to your API.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-61138c5e-2f5b-4ef4-b363-6c2819165b19.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,c.jsxDEV)(a.li,{children:\"At-least-once delivery guaranteed to any public API\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-61138c5e-2f5b-4ef4-b363-6c2819165b19.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,c.jsxDEV)(a.li,{children:\"Pubsub via topics\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-61138c5e-2f5b-4ef4-b363-6c2819165b19.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,c.jsxDEV)(a.li,{children:\"Delay message delivery\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-61138c5e-2f5b-4ef4-b363-6c2819165b19.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,c.jsxDEV)(a.li,{children:\"Message deduplication\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-61138c5e-2f5b-4ef4-b363-6c2819165b19.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,c.jsxDEV)(a.li,{children:\"Scheduling via CRON\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-61138c5e-2f5b-4ef4-b363-6c2819165b19.mdx\",lineNumber:17,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-61138c5e-2f5b-4ef4-b363-6c2819165b19.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,c.jsxDEV)(a.p,{children:\"Formally, QStash is a message queue and task scheduler designed for serverless runtimes. Informally, QStash is a glue for your serverless functions.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-61138c5e-2f5b-4ef4-b363-6c2819165b19.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,c.jsxDEV)(a.p,{children:\"There was a perception serverless was only good for simple tasks. Not anymore. People build powerful systems with serverless stack. Powerful systems are composed of multiple components. Communication among those components is a big engineering problem. There are already great solutions for this problem. But we think existing solutions do not fit in serverless space. Either they are too complex or not designed to work with stateless runtimes. So we want a solution which (is):\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-61138c5e-2f5b-4ef4-b363-6c2819165b19.mdx\",lineNumber:22,columnNumber:1},this),`\n`,(0,c.jsxDEV)(a.ul,{children:[`\n`,(0,c.jsxDEV)(a.li,{children:\"Works anywhere including serverless and edge.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-61138c5e-2f5b-4ef4-b363-6c2819165b19.mdx\",lineNumber:24,columnNumber:1},this),`\n`,(0,c.jsxDEV)(a.li,{children:\"Messaging as a service with no backend for users to run.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-61138c5e-2f5b-4ef4-b363-6c2819165b19.mdx\",lineNumber:25,columnNumber:1},this),`\n`,(0,c.jsxDEV)(a.li,{children:\"Lightweight, easy to understand, requires nothing to learn.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-61138c5e-2f5b-4ef4-b363-6c2819165b19.mdx\",lineNumber:26,columnNumber:1},this),`\n`,(0,c.jsxDEV)(a.li,{children:\"Price scales to zero.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-61138c5e-2f5b-4ef4-b363-6c2819165b19.mdx\",lineNumber:27,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-61138c5e-2f5b-4ef4-b363-6c2819165b19.mdx\",lineNumber:24,columnNumber:1},this),`\n`,(0,c.jsxDEV)(a.p,{children:\"Let's talk about a real world example. We have an e-commerce app and we want to send an informational email after each purchase. We have a service (an API route) for new purchases (newPurchase) and a second service for sending emails and notifications (sendEmail). We can call the sendEmail service from the newPurchase service. But what if the call fails? Should we wait for the response and retry? What if too many calls congest the sendEmail service and the service does not respond on time? You need to handle all these cases in your newPurchase service. Moreover, when you change the contract of sendEmail service; you have to update your newPurchase service too.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-61138c5e-2f5b-4ef4-b363-6c2819165b19.mdx\",lineNumber:29,columnNumber:1},this),`\n`,(0,c.jsxDEV)(a.p,{children:\"If you use QStash in the above example, you simply send a request to QStash from the newPurchase service. QStash will queue the request and call the sendEmail service. If the service does not respond, QStash will retry with a backoff strategy. The latency of sendEmail service will not affect the newPurchase service, because it will not wait for a response from the sendEmail service. QStash decouples the newPurchase and sendEmail services. You can update both services independently as long as you keep the message format compatible.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-61138c5e-2f5b-4ef4-b363-6c2819165b19.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,c.jsxDEV)(a.p,{children:\"With QStash, you can add delays to the requests. Send an email 3 days after the shipment to remind the customer to add a review. You can also schedule tasks. You can send the requests with a CRON expression, so it will be run repetitively.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-61138c5e-2f5b-4ef4-b363-6c2819165b19.mdx\",lineNumber:33,columnNumber:1},this),`\n`,(0,c.jsxDEV)(a.p,{children:[\"To learn more about QStash, visit \",(0,c.jsxDEV)(a.a,{href:\"upstash.com/qstash\",children:\"upstash.com/qstash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-61138c5e-2f5b-4ef4-b363-6c2819165b19.mdx\",lineNumber:36,columnNumber:35},this),\".\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-61138c5e-2f5b-4ef4-b363-6c2819165b19.mdx\",lineNumber:36,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-61138c5e-2f5b-4ef4-b363-6c2819165b19.mdx\",lineNumber:1,columnNumber:1},this)}function pr(l={}){let{wrapper:a}=l.components||{};return a?(0,c.jsxDEV)(a,Object.assign({},l,{children:(0,c.jsxDEV)(Te,l,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-61138c5e-2f5b-4ef4-b363-6c2819165b19.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-61138c5e-2f5b-4ef4-b363-6c2819165b19.mdx\"},this):Te(l)}var _r=pr;return br(gr);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/qstash.mdx", - "_raw": { - "sourceFilePath": "projects/qstash.mdx", - "sourceFileName": "qstash.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/qstash" - }, - "type": "Project", - "path": "/projects/qstash", - "slug": "qstash" - }, - "documentHash": "1679819571089", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/terraform-provider-vercel.mdx": { - "document": { - "published": true, - "title": "Vercel Terraform Provider", - "description": "A Terraform provider for Vercel. It has been deprecated it when Vercel rolled out their official provider.", - "date": "2021-03-16T00:00:00.000Z", - "url": "https://registry.terraform.io/providers/chronark/vercel/latest", - "repository": "chronark/terraform-provider-vercel", - "body": { - "raw": "\n\n\nBack in the day when Vercel didn't have an official Terraform provider, I wrote one. \nI needed to manage my Vercel projects and especially sync environment variables from different cloud providers.\nTerraform was great to provision some postgres databases on digital ocean, but there was no way to sync the credentials with Vercel.\n\n```hcl\nterraform {\n required_providers {\n vercel = {\n source = \"registry.terraform.io/chronark/vercel\"\n version = \">=0.10.3\"\n }\n }\n}\n\nprovider \"vercel\" {\n token = \"\"\n}\n\nresource \"vercel_project\" \"my_project\" {\n name = \"project-via-terraform\"\n git_repository {\n type = \"github\"\n repo = \"chronark/terraform-provider-vercel\"\n }\n}\n```\n\nIt was a fun project and I learned a lot about Terraform and Vercel's API. \nIt gave me the opportunity to contribute to the Terraform ecosystem and my appreciation for the work that the Terraform team does is immense.\n\nThere have been quite a few individuals and teams that have used this provider and I am happy that it has been useful to you.\n\nNow that Vercel have stepped in, I have decided to [deprecate](https://twitter.com/chronark_/status/1517759708983177218) this one on April 23rd 2022. \n\nPlease use the [official provider](https://registry.terraform.io/providers/vercel/vercel/latest) instead.", - "code": "var Component=(()=>{var dr=Object.create;var S=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var lr=Object.getOwnPropertyNames;var ur=Object.getPrototypeOf,mr=Object.prototype.hasOwnProperty;var G=(l,r)=>()=>(r||l((r={exports:{}}).exports,r),r.exports),fr=(l,r)=>{for(var _ in r)S(l,_,{get:r[_],enumerable:!0})},ve=(l,r,_,k)=>{if(r&&typeof r==\"object\"||typeof r==\"function\")for(let y of lr(r))!mr.call(l,y)&&y!==_&&S(l,y,{get:()=>r[y],enumerable:!(k=cr(r,y))||k.enumerable});return l};var hr=(l,r,_)=>(_=l!=null?dr(ur(l)):{},ve(r||!l||!l.__esModule?S(_,\"default\",{value:l,enumerable:!0}):_,l)),br=l=>ve(S({},\"__esModule\",{value:!0}),l);var ge=G((vr,xe)=>{xe.exports=React});var Ee=G(z=>{\"use strict\";(function(){\"use strict\";var l=ge(),r=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),k=Symbol.for(\"react.fragment\"),y=Symbol.for(\"react.strict_mode\"),K=Symbol.for(\"react.profiler\"),X=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),R=Symbol.for(\"react.forward_ref\"),A=Symbol.for(\"react.suspense\"),D=Symbol.for(\"react.suspense_list\"),F=Symbol.for(\"react.memo\"),B=Symbol.for(\"react.lazy\"),Fe=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Te=\"@@iterator\";function we(e){if(e===null||typeof e!=\"object\")return null;var t=J&&e[J]||e[Te];return typeof t==\"function\"?t:null}var x=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function f(e){{for(var t=arguments.length,a=new Array(t>1?t-1:0),o=1;o=1&&m>=0&&s[u]!==h[m];)m--;for(;u>=1&&m>=0;u--,m--)if(s[u]!==h[m]){if(u!==1||m!==1)do if(u--,m--,m<0||s[u]!==h[m]){var b=`\n`+s[u].replace(\" at new \",\" at \");return e.displayName&&b.includes(\"\")&&(b=b.replace(\"\",e.displayName)),typeof e==\"function\"&&w.set(e,b),b}while(u>=1&&m>=0);break}}}finally{Y=!1,I.current=c,Ye(),Error.prepareStackTrace=d}var E=e?e.displayName||e.name:\"\",ke=E?T(E):\"\";return typeof e==\"function\"&&w.set(e,ke),ke}function We(e,t,a){return de(e,!1)}function Me(e){var t=e.prototype;return!!(t&&t.isReactComponent)}function C(e,t,a){if(e==null)return\"\";if(typeof e==\"function\")return de(e,Me(e));if(typeof e==\"string\")return T(e);switch(e){case A:return T(\"Suspense\");case D:return T(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case R:return We(e.render);case F:return C(e.type,t,a);case B:{var o=e,d=o._payload,c=o._init;try{return C(c(d),t,a)}catch{}}}return\"\"}var O=Object.prototype.hasOwnProperty,ce={},le=x.ReactDebugCurrentFrame;function P(e){if(e){var t=e._owner,a=C(e.type,e._source,t?t.type:null);le.setExtraStackFrame(a)}else le.setExtraStackFrame(null)}function Le(e,t,a,o,d){{var c=Function.call.bind(O);for(var i in e)if(c(e,i)){var s=void 0;try{if(typeof e[i]!=\"function\"){var h=Error((o||\"React class\")+\": \"+a+\" type `\"+i+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[i]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw h.name=\"Invariant Violation\",h}s=e[i](t,i,o,a,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(u){s=u}s&&!(s instanceof Error)&&(P(d),f(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",o||\"React class\",a,i,typeof s),P(null)),s instanceof Error&&!(s.message in ce)&&(ce[s.message]=!0,P(d),f(\"Failed %s type: %s\",a,s.message),P(null))}}}var qe=Array.isArray;function $(e){return qe(e)}function Ge(e){{var t=typeof Symbol==\"function\"&&Symbol.toStringTag,a=t&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return a}}function ze(e){try{return ue(e),!1}catch{return!0}}function ue(e){return\"\"+e}function me(e){if(ze(e))return f(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Ge(e)),ue(e)}var U=x.ReactCurrentOwner,Ke={key:!0,ref:!0,__self:!0,__source:!0},fe,he,W;W={};function Xe(e){if(O.call(e,\"ref\")){var t=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(t&&t.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(O.call(e,\"key\")){var t=Object.getOwnPropertyDescriptor(e,\"key\").get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function Je(e,t){if(typeof e.ref==\"string\"&&U.current&&t&&U.current.stateNode!==t){var a=p(U.current.type);W[a]||(f('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(U.current.type),e.ref),W[a]=!0)}}function Ze(e,t){{var a=function(){fe||(fe=!0,f(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",t))};a.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:a,configurable:!0})}}function Qe(e,t){{var a=function(){he||(he=!0,f(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",t))};a.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:a,configurable:!0})}}var er=function(e,t,a,o,d,c,i){var s={$$typeof:r,type:e,key:t,ref:a,props:i,_owner:c};return s._store={},Object.defineProperty(s._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(s,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(s,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:d}),Object.freeze&&(Object.freeze(s.props),Object.freeze(s)),s};function rr(e,t,a,o,d){{var c,i={},s=null,h=null;a!==void 0&&(me(a),s=\"\"+a),He(t)&&(me(t.key),s=\"\"+t.key),Xe(t)&&(h=t.ref,Je(t,d));for(c in t)O.call(t,c)&&!Ke.hasOwnProperty(c)&&(i[c]=t[c]);if(e&&e.defaultProps){var u=e.defaultProps;for(c in u)i[c]===void 0&&(i[c]=u[c])}if(s||h){var m=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;s&&Ze(i,m),h&&Qe(i,m)}return er(e,s,h,d,o,U.current,i)}}var M=x.ReactCurrentOwner,be=x.ReactDebugCurrentFrame;function g(e){if(e){var t=e._owner,a=C(e.type,e._source,t?t.type:null);be.setExtraStackFrame(a)}else be.setExtraStackFrame(null)}var L;L=!1;function q(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===r}function _e(){{if(M.current){var e=p(M.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function nr(e){{if(e!==void 0){var t=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),a=e.lineNumber;return`\n\nCheck your code at `+t+\":\"+a+\".\"}return\"\"}}var pe={};function tr(e){{var t=_e();if(!t){var a=typeof e==\"string\"?e:e.displayName||e.name;a&&(t=`\n\nCheck the top-level render call using <`+a+\">.\")}return t}}function Ne(e,t){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var a=tr(t);if(pe[a])return;pe[a]=!0;var o=\"\";e&&e._owner&&e._owner!==M.current&&(o=\" It was passed a child from \"+p(e._owner.type)+\".\"),g(e),f('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',a,o),g(null)}}function ye(e,t){{if(typeof e!=\"object\")return;if($(e))for(var a=0;a\",s=\" Did you accidentally export a JSX literal instead of a component?\"):u=typeof e,f(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",u,s)}var m=rr(e,t,a,d,c);if(m==null)return m;if(i){var b=t.children;if(b!==void 0)if(o)if($(b)){for(var E=0;E{\"use strict\";je.exports=Ee()});var yr={};fr(yr,{default:()=>Nr,frontmatter:()=>_r});var n=hr(Ue()),_r={title:\"Vercel Terraform Provider\",description:\"A Terraform provider for Vercel. It has been deprecated it when Vercel rolled out their official provider.\",date:\"2021-03-16\",repository:\"chronark/terraform-provider-vercel\",url:\"https://registry.terraform.io/providers/chronark/vercel/latest\",published:!0};function Re(l){let r=Object.assign({p:\"p\",div:\"div\",pre:\"pre\",code:\"code\",span:\"span\",a:\"a\"},l.components);return(0,n.jsxDEV)(n.Fragment,{children:[(0,n.jsxDEV)(r.p,{children:`Back in the day when Vercel didn't have an official Terraform provider, I wrote one.\nI needed to manage my Vercel projects and especially sync environment variables from different cloud providers.\nTerraform was great to provision some postgres databases on digital ocean, but there was no way to sync the credentials with Vercel.`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(r.pre,{\"data-language\":\"hcl\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(r.code,{\"data-language\":\"hcl\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"terraform\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:1,columnNumber:149},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"required_providers\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:2,columnNumber:58},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:2,columnNumber:112},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:3,columnNumber:66},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:3,columnNumber:103},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:3,columnNumber:140},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:3,columnNumber:177},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" source \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:4,columnNumber:70},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:4,columnNumber:107},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"registry.terraform.io/chronark/vercel\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:4,columnNumber:144},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" version \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:5,columnNumber:70},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:5,columnNumber:107},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\">=0.10.3\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:5,columnNumber:144},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"provider\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:10,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:10,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:'\"vercel\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:10,columnNumber:101},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:10,columnNumber:155},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" token\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:11,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:11,columnNumber:63},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:11,columnNumber:100},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:11,columnNumber:137},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:11,columnNumber:174},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:12,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"resource\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:14,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:14,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:'\"vercel_project\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:14,columnNumber:101},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:14,columnNumber:163},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:'\"my_project\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:14,columnNumber:200},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:14,columnNumber:258},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" name\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:15,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:15,columnNumber:62},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:15,columnNumber:99},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:15,columnNumber:136},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"project-via-terraform\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:15,columnNumber:173},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:16,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"git_repository\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:16,columnNumber:58},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:16,columnNumber:108},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" type\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:17,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:17,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:17,columnNumber:101},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:17,columnNumber:138},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"github\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:17,columnNumber:175},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" repo\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:18,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:18,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:18,columnNumber:101},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:18,columnNumber:138},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"chronark/terraform-provider-vercel\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:18,columnNumber:175},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:19,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:20,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:20,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:`It was a fun project and I learned a lot about Terraform and Vercel's API.\nIt gave me the opportunity to contribute to the Terraform ecosystem and my appreciation for the work that the Terraform team does is immense.`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:39,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:\"There have been quite a few individuals and teams that have used this provider and I am happy that it has been useful to you.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:42,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[\"Now that Vercel have stepped in, I have decided to \",(0,n.jsxDEV)(r.a,{href:\"https://twitter.com/chronark_/status/1517759708983177218\",children:\"deprecate\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:44,columnNumber:52},this),\" this one on April 23rd 2022.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:44,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[\"Please use the \",(0,n.jsxDEV)(r.a,{href:\"https://registry.terraform.io/providers/vercel/vercel/latest\",children:\"official provider\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:46,columnNumber:16},this),\" instead.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:46,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\",lineNumber:1,columnNumber:1},this)}function pr(l={}){let{wrapper:r}=l.components||{};return r?(0,n.jsxDEV)(r,Object.assign({},l,{children:(0,n.jsxDEV)(Re,l,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1061b8b2-72f1-4a86-9ddd-24268692e20f.mdx\"},this):Re(l)}var Nr=pr;return br(yr);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/terraform-provider-vercel.mdx", - "_raw": { - "sourceFilePath": "projects/terraform-provider-vercel.mdx", - "sourceFileName": "terraform-provider-vercel.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/terraform-provider-vercel" - }, - "type": "Project", - "path": "/projects/terraform-provider-vercel", - "slug": "terraform-provider-vercel" - }, - "documentHash": "1679819574612", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-auth-analytics.mdx": { - "document": { - "title": "Upstash Auth Analytics", - "description": "A library to record and analyse Auth.js user behaviour", - "url": "https://console.upstash.com/ratelimit", - "repository": "upstash/auth-analytics", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var A=Object.defineProperty;var fr=Object.getOwnPropertyDescriptor;var cr=Object.getOwnPropertyNames;var lr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,f)=>()=>(f||s((f={exports:{}}).exports,f),f.exports),vr=(s,f)=>{for(var h in f)A(s,h,{get:f[h],enumerable:!0})},_e=(s,f,h,E)=>{if(f&&typeof f==\"object\"||typeof f==\"function\")for(let m of cr(f))!dr.call(s,m)&&m!==h&&A(s,m,{get:()=>f[m],enumerable:!(E=fr(f,m))||E.enumerable});return s};var pr=(s,f,h)=>(h=s!=null?sr(lr(s)):{},_e(f||!s||!s.__esModule?A(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(A({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),f=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&l>=0&&a[c]!==v[l];)l--;for(;c>=1&&l>=0;c--,l--)if(a[c]!==v[l]){if(c!==1||l!==1)do if(c--,l--,l<0||a[c]!==v[l]){var p=`\n`+a[c].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(c>=1&&l>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,fe={},ce=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);ce.setExtraStackFrame(t)}else ce.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(c){a=c}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in fe)&&(fe[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return le(e),!1}catch{return!0}}function le(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),le(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=b(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',b(O.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:f,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var c=e.defaultProps;for(u in c)o[u]===void 0&&(o[u]=c[u])}if(a||v){var l=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,l),v&&Qe(o,l)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===f}function be(){{if(L.current){var e=b(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=be();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+b(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):c=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",c,a)}var l=rr(e,r,t,i,u);if(l==null)return l;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>br});var F=pr(we()),br={title:\"Upstash Auth Analytics\",description:\"A library to record and analyse Auth.js user behaviour\",url:\"https://console.upstash.com/ratelimit\",repository:\"upstash/auth-analytics\"};function Pe(s){let f=Object.assign({p:\"p\"},s.components);return(0,F.jsxDEV)(f.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5a751f2-eec5-45a5-83ae-f09bd8dd78f0.mdx\",lineNumber:8,columnNumber:1},this)}function gr(s={}){let{wrapper:f}=s.components||{};return f?(0,F.jsxDEV)(f,Object.assign({},s,{children:(0,F.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5a751f2-eec5-45a5-83ae-f09bd8dd78f0.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f5a751f2-eec5-45a5-83ae-f09bd8dd78f0.mdx\"},this):Pe(s)}var mr=gr;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-auth-analytics.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-auth-analytics.mdx", - "sourceFileName": "upstash-auth-analytics.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-auth-analytics" - }, - "type": "Project", - "path": "/projects/upstash-auth-analytics", - "slug": "upstash-auth-analytics" - }, - "documentHash": "1679820070900", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-cli.mdx": { - "document": { - "published": true, - "title": "@upstash/cli", - "description": "A CLI to provision and manage Upstash resources, including Redis and Kafka databases.", - "date": "2022-05-16T00:00:00.000Z", - "url": "https://upstash.com/cli", - "repository": "upstash/cli", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var fr=Object.getOwnPropertyNames;var lr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,c)=>()=>(c||s((c={exports:{}}).exports,c),c.exports),vr=(s,c)=>{for(var h in c)F(s,h,{get:c[h],enumerable:!0})},_e=(s,c,h,E)=>{if(c&&typeof c==\"object\"||typeof c==\"function\")for(let m of fr(c))!dr.call(s,m)&&m!==h&&F(s,m,{get:()=>c[m],enumerable:!(E=cr(c,m))||E.enumerable});return s};var pr=(s,c,h)=>(h=s!=null?sr(lr(s)):{},_e(c||!s||!s.__esModule?F(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),c=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),K=Symbol.for(\"react.profiler\"),X=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&l>=0&&a[f]!==v[l];)l--;for(;f>=1&&l>=0;f--,l--)if(a[f]!==v[l]){if(f!==1||l!==1)do if(f--,l--,l<0||a[f]!==v[l]){var p=`\n`+a[f].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(f>=1&&l>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,ce={},fe=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){a=f}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return le(e),!1}catch{return!0}}function le(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),le(e)}var O=_.ReactCurrentOwner,Ke={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Xe(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=b(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',b(O.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:c,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Xe(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Ke.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var f=e.defaultProps;for(u in f)o[u]===void 0&&(o[u]=f[u])}if(a||v){var l=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,l),v&&Qe(o,l)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===c}function be(){{if(L.current){var e=b(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=be();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+b(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):f=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",f,a)}var l=rr(e,r,t,i,u);if(l==null)return l;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>br});var A=pr(we()),br={title:\"@upstash/cli\",description:\"A CLI to provision and manage Upstash resources, including Redis and Kafka databases.\",date:\"2022-05-16\",url:\"https://upstash.com/cli\",repository:\"upstash/cli\",published:!0};function Pe(s){let c=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(c.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1f55bee8-27ca-403c-8aef-c0ff586b11d8.mdx\",lineNumber:11,columnNumber:1},this)}function gr(s={}){let{wrapper:c}=s.components||{};return c?(0,A.jsxDEV)(c,Object.assign({},s,{children:(0,A.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1f55bee8-27ca-403c-8aef-c0ff586b11d8.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1f55bee8-27ca-403c-8aef-c0ff586b11d8.mdx\"},this):Pe(s)}var mr=gr;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-cli.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-cli.mdx", - "sourceFileName": "upstash-cli.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-cli" - }, - "type": "Project", - "path": "/projects/upstash-cli", - "slug": "upstash-cli" - }, - "documentHash": "1679819580897", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-core-analytics.mdx": { - "document": { - "published": true, - "title": "Upstash Core Analytics", - "description": "Low level utilities to build analytics tools on top of Redis.", - "date": "2023-02-13T00:00:00.000Z", - "url": "https://console.upstash.com/ratelimit", - "repository": "upstash/core-analytics", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var lr=Object.getOwnPropertyDescriptor;var cr=Object.getOwnPropertyNames;var fr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,l)=>()=>(l||s((l={exports:{}}).exports,l),l.exports),vr=(s,l)=>{for(var h in l)F(s,h,{get:l[h],enumerable:!0})},_e=(s,l,h,E)=>{if(l&&typeof l==\"object\"||typeof l==\"function\")for(let m of cr(l))!dr.call(s,m)&&m!==h&&F(s,m,{get:()=>l[m],enumerable:!(E=lr(l,m))||E.enumerable});return s};var pr=(s,l,h)=>(h=s!=null?sr(fr(s)):{},_e(l||!s||!s.__esModule?F(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),l=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&f>=0&&a[c]!==v[f];)f--;for(;c>=1&&f>=0;c--,f--)if(a[c]!==v[f]){if(c!==1||f!==1)do if(c--,f--,f<0||a[c]!==v[f]){var p=`\n`+a[c].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(c>=1&&f>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,le={},ce=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);ce.setExtraStackFrame(t)}else ce.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(c){a=c}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in le)&&(le[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return fe(e),!1}catch{return!0}}function fe(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),fe(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=b(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',b(O.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:l,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var c=e.defaultProps;for(u in c)o[u]===void 0&&(o[u]=c[u])}if(a||v){var f=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,f),v&&Qe(o,f)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===l}function be(){{if(L.current){var e=b(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=be();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+b(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):c=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",c,a)}var f=rr(e,r,t,i,u);if(f==null)return f;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>br});var A=pr(we()),br={title:\"Upstash Core Analytics\",description:\"Low level utilities to build analytics tools on top of Redis.\",date:\"2023-02-13\",url:\"https://console.upstash.com/ratelimit\",repository:\"upstash/core-analytics\",published:!0};function Pe(s){let l=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(l.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-71ee98e7-3fa2-4314-af5e-59c6b4033dc5.mdx\",lineNumber:11,columnNumber:1},this)}function gr(s={}){let{wrapper:l}=s.components||{};return l?(0,A.jsxDEV)(l,Object.assign({},s,{children:(0,A.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-71ee98e7-3fa2-4314-af5e-59c6b4033dc5.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-71ee98e7-3fa2-4314-af5e-59c6b4033dc5.mdx\"},this):Pe(s)}var mr=gr;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-core-analytics.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-core-analytics.mdx", - "sourceFileName": "upstash-core-analytics.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-core-analytics" - }, - "type": "Project", - "path": "/projects/upstash-core-analytics", - "slug": "upstash-core-analytics" - }, - "documentHash": "1679819583922", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-edge-flags.mdx": { - "document": { - "published": true, - "title": "@upstash/edge-flags", - "description": "Featues flags for your edge functions.", - "date": "2022-12-12T00:00:00.000Z", - "url": "https://upstash.com/edge-flags", - "repository": "upstash/edge-flags", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var fr=Object.getOwnPropertyDescriptor;var cr=Object.getOwnPropertyNames;var lr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,f)=>()=>(f||s((f={exports:{}}).exports,f),f.exports),vr=(s,f)=>{for(var g in f)F(s,g,{get:f[g],enumerable:!0})},_e=(s,f,g,E)=>{if(f&&typeof f==\"object\"||typeof f==\"function\")for(let m of cr(f))!dr.call(s,m)&&m!==g&&F(s,m,{get:()=>f[m],enumerable:!(E=fr(f,m))||E.enumerable});return s};var pr=(s,f,g)=>(g=s!=null?sr(lr(s)):{},_e(f||!s||!s.__esModule?F(g,\"default\",{value:s,enumerable:!0}):g,s)),gr=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),f=Symbol.for(\"react.element\"),g=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&l>=0&&a[c]!==v[l];)l--;for(;c>=1&&l>=0;c--,l--)if(a[c]!==v[l]){if(c!==1||l!==1)do if(c--,l--,l<0||a[c]!==v[l]){var p=`\n`+a[c].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(c>=1&&l>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,fe={},ce=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);ce.setExtraStackFrame(t)}else ce.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(c){a=c}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in fe)&&(fe[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return le(e),!1}catch{return!0}}function le(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),le(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=h(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',h(O.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:f,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var c=e.defaultProps;for(u in c)o[u]===void 0&&(o[u]=c[u])}if(a||v){var l=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,l),v&&Qe(o,l)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,ge=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);ge.setExtraStackFrame(t)}else ge.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===f}function he(){{if(L.current){var e=h(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var be={};function nr(e){{var r=he();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(be[t])return;be[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+h(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):c=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",c,a)}var l=rr(e,r,t,i,u);if(l==null)return l;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>hr});var A=pr(we()),hr={title:\"@upstash/edge-flags\",description:\"Featues flags for your edge functions.\",date:\"2022-12-12\",url:\"https://upstash.com/edge-flags\",repository:\"upstash/edge-flags\",published:!0};function Pe(s){let f=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(f.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-505af2cc-6871-4879-9946-4df95fa4b1a5.mdx\",lineNumber:11,columnNumber:1},this)}function br(s={}){let{wrapper:f}=s.components||{};return f?(0,A.jsxDEV)(f,Object.assign({},s,{children:(0,A.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-505af2cc-6871-4879-9946-4df95fa4b1a5.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-505af2cc-6871-4879-9946-4df95fa4b1a5.mdx\"},this):Pe(s)}var mr=br;return gr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-edge-flags.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-edge-flags.mdx", - "sourceFileName": "upstash-edge-flags.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-edge-flags" - }, - "type": "Project", - "path": "/projects/upstash-edge-flags", - "slug": "upstash-edge-flags" - }, - "documentHash": "1679819586745", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-kafka.mdx": { - "document": { - "published": true, - "title": "@upstash/kafka", - "description": "A fully typed Kafka client built for Upstash Kafka and HTTP, perfect for serverless and edge runtimes", - "date": "2022-01-08T00:00:00.000Z", - "url": "https://upstash.com/kafka", - "repository": "upstash/upstash-kafka", - "body": { - "raw": "\n\nAn HTTP/REST based Kafka client built on top of\n[Upstash REST API](https://docs.upstash.com/kafka/rest).\n\nIt is the only connectionless (HTTP based) Kafka client and designed for:\n\n- Serverless functions (AWS Lambda ...)\n- Cloudflare Workers (see the example)\n- Fastly Compute@Edge\n- Next.js Edge, Remix ...\n- Client side web/mobile applications\n- WebAssembly and other environments where HTTP is preferred over TCP\n connections.\n\n# Installation\n\n```bash\nnpm install @upstash/kafka\n```\n\n# Quickstart\n\n## Auth\n\n1. Go to [upstash](https://console.upstash.com/kafka) and select your database.\n2. Copy the `REST API` secrets at the bottom of the page\n\n```typescript\nimport { Kafka } from \"@upstash/kafka\"\n\nconst kafka = new Kafka({\n url: \"\",\n username: \"\",\n password: \"\",\n})\n```\n\n## Produce a single message\n\n```typescript\nconst p = kafka.producer()\nconst message = { hello: \"world\" } // Objects will get serialized using `JSON.stringify`\nconst res = await p.produce(\"\", message)\nconst res = await p.produce(\"\", message, {\n partition: 1,\n timestamp: 12345,\n key: \"\",\n headers: [{ key: \"traceId\", value: \"85a9f12\" }],\n})\n```\n\n## Produce multiple messages.\n\nThe same options from the example above can be set for every message.\n\n```typescript\nconst p = kafka.producer()\nconst res = await p.produceMany([\n {\n topic: \"my.topic\",\n value: { hello: \"world\" },\n // ...options\n },\n {\n topic: \"another.topic\",\n value: \"another message\",\n // ...options\n },\n])\n```\n\n## Consume\n\nThe first time a consumer is created, it needs to figure out the group\ncoordinator by asking the Kafka brokers and joins the consumer group. This\nprocess takes some time to complete. That's why when a consumer instance is\ncreated first time, it may return empty messages until consumer group\ncoordination is completed.\n\n```typescript\nconst c = kafka.consumer()\nconst messages = await c.consume({\n consumerGroupId: \"group_1\",\n instanceId: \"instance_1\",\n topics: [\"test.topic\"],\n autoOffsetReset: \"earliest\",\n})\n```\n\nMore examples can be found in the\n[docstring](https://github.com/upstash/upstash-kafka/blob/main/pkg/consumer.ts#L265)\n\n## Commit manually\n\nWhile `consume` can handle committing automatically, you can also use\n`Consumer.commit` to manually commit.\n\n```typescript\nconst consumerGroupId = \"mygroup\"\nconst instanceId = \"myinstance\"\nconst topic = \"my.topic\"\n\nconst c = kafka.consumer()\nconst messages = await c.consume({\n consumerGroupId,\n instanceId,\n topics: [topic],\n autoCommit: false,\n})\n\nfor (const message of messages) {\n // message handling logic\n\n await c.commit({\n consumerGroupId,\n instanceId,\n offset: {\n topic: message.topic,\n partition: message.partition,\n offset: message.offset,\n },\n })\n}\n```\n\n## Fetch\n\nYou can also manage offsets manually by using `Consumer.fetch`\n\n```typescript\nconst c = kafka.consumer()\nconst messages = await c.fetch({\n topic: \"greeting\",\n partition: 3,\n offset: 42,\n timeout: 1000,\n})\n```\n\n## Examples\n\nSee [/examples](https://github.com/upstash/upstash-kafka/tree/main/examples) as\nwell as various examples in the docstrings of each method.\n\n# Contributing\n\n## Requirements\n\n- [nodejs](https://nodejs.org) v14.x or higher\n- [pnpm](https://pnpm.io/installation)\n\n## Setup\n\n0. Install dependencies using `pnpm install`\n1. Create a kafka instance on upstash.\n [docs](https://docs.upstash.com/kafka#create-a-kafka-cluster)\n2. Create the following topics: `blue`, `red`, `green`.\n [docs](https://docs.upstash.com/kafka#create-a-topic)\n\n The partitions or retention settings don't matter at this time.\n\n3. Create `.env` file with your kafka secrets `cp .env.example .env`\n\n## Running tests\n\n```bash\npnpm test\n```\n", - "code": "var Component=(()=>{var mn=Object.create;var P=Object.defineProperty;var ln=Object.getOwnPropertyDescriptor;var dn=Object.getOwnPropertyNames;var un=Object.getPrototypeOf,hn=Object.prototype.hasOwnProperty;var G=(l,e)=>()=>(e||l((e={exports:{}}).exports,e),e.exports),bn=(l,e)=>{for(var _ in e)P(l,_,{get:e[_],enumerable:!0})},ye=(l,e,_,x)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let k of dn(e))!hn.call(l,k)&&k!==_&&P(l,k,{get:()=>e[k],enumerable:!(x=ln(e,k))||x.enumerable});return l};var fn=(l,e,_)=>(_=l!=null?mn(un(l)):{},ye(e||!l||!l.__esModule?P(_,\"default\",{value:l,enumerable:!0}):_,l)),_n=l=>ye(P({},\"__esModule\",{value:!0}),l);var Ee=G((gn,ge)=>{ge.exports=React});var je=G(q=>{\"use strict\";(function(){\"use strict\";var l=Ee(),e=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),x=Symbol.for(\"react.fragment\"),k=Symbol.for(\"react.strict_mode\"),H=Symbol.for(\"react.profiler\"),z=Symbol.for(\"react.provider\"),X=Symbol.for(\"react.context\"),F=Symbol.for(\"react.forward_ref\"),O=Symbol.for(\"react.suspense\"),A=Symbol.for(\"react.suspense_list\"),C=Symbol.for(\"react.memo\"),D=Symbol.for(\"react.lazy\"),Ce=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Re=\"@@iterator\";function Te(r){if(r===null||typeof r!=\"object\")return null;var a=J&&r[J]||r[Re];return typeof a==\"function\"?a:null}var g=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function h(r){{for(var a=arguments.length,t=new Array(a>1?a-1:0),o=1;o=1&&u>=0&&s[d]!==b[u];)u--;for(;d>=1&&u>=0;d--,u--)if(s[d]!==b[u]){if(d!==1||u!==1)do if(d--,u--,u<0||s[d]!==b[u]){var f=`\n`+s[d].replace(\" at new \",\" at \");return r.displayName&&f.includes(\"\")&&(f=f.replace(\"\",r.displayName)),typeof r==\"function\"&&T.set(r,f),f}while(d>=1&&u>=0);break}}}finally{W=!1,I.current=m,We(),Error.prepareStackTrace=i}var j=r?r.displayName||r.name:\"\",xe=j?R(j):\"\";return typeof r==\"function\"&&T.set(r,xe),xe}function Me(r,a,t){return ie(r,!1)}function $e(r){var a=r.prototype;return!!(a&&a.isReactComponent)}function w(r,a,t){if(r==null)return\"\";if(typeof r==\"function\")return ie(r,$e(r));if(typeof r==\"string\")return R(r);switch(r){case O:return R(\"Suspense\");case A:return R(\"SuspenseList\")}if(typeof r==\"object\")switch(r.$$typeof){case F:return Me(r.render);case C:return w(r.type,a,t);case D:{var o=r,i=o._payload,m=o._init;try{return w(m(i),a,t)}catch{}}}return\"\"}var S=Object.prototype.hasOwnProperty,me={},le=g.ReactDebugCurrentFrame;function B(r){if(r){var a=r._owner,t=w(r.type,r._source,a?a.type:null);le.setExtraStackFrame(t)}else le.setExtraStackFrame(null)}function Ve(r,a,t,o,i){{var m=Function.call.bind(S);for(var c in r)if(m(r,c)){var s=void 0;try{if(typeof r[c]!=\"function\"){var b=Error((o||\"React class\")+\": \"+t+\" type `\"+c+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof r[c]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw b.name=\"Invariant Violation\",b}s=r[c](a,c,o,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(d){s=d}s&&!(s instanceof Error)&&(B(i),h(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",o||\"React class\",t,c,typeof s),B(null)),s instanceof Error&&!(s.message in me)&&(me[s.message]=!0,B(i),h(\"Failed %s type: %s\",t,s.message),B(null))}}}var Ke=Array.isArray;function Y(r){return Ke(r)}function Ge(r){{var a=typeof Symbol==\"function\"&&Symbol.toStringTag,t=a&&r[Symbol.toStringTag]||r.constructor.name||\"Object\";return t}}function qe(r){try{return de(r),!1}catch{return!0}}function de(r){return\"\"+r}function ue(r){if(qe(r))return h(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Ge(r)),de(r)}var v=g.ReactCurrentOwner,He={key:!0,ref:!0,__self:!0,__source:!0},he,be,M;M={};function ze(r){if(S.call(r,\"ref\")){var a=Object.getOwnPropertyDescriptor(r,\"ref\").get;if(a&&a.isReactWarning)return!1}return r.ref!==void 0}function Xe(r){if(S.call(r,\"key\")){var a=Object.getOwnPropertyDescriptor(r,\"key\").get;if(a&&a.isReactWarning)return!1}return r.key!==void 0}function Je(r,a){if(typeof r.ref==\"string\"&&v.current&&a&&v.current.stateNode!==a){var t=p(v.current.type);M[t]||(h('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(v.current.type),r.ref),M[t]=!0)}}function Qe(r,a){{var t=function(){he||(he=!0,h(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(r,\"key\",{get:t,configurable:!0})}}function Ze(r,a){{var t=function(){be||(be=!0,h(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(r,\"ref\",{get:t,configurable:!0})}}var en=function(r,a,t,o,i,m,c){var s={$$typeof:e,type:r,key:a,ref:t,props:c,_owner:m};return s._store={},Object.defineProperty(s._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(s,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(s,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(s.props),Object.freeze(s)),s};function nn(r,a,t,o,i){{var m,c={},s=null,b=null;t!==void 0&&(ue(t),s=\"\"+t),Xe(a)&&(ue(a.key),s=\"\"+a.key),ze(a)&&(b=a.ref,Je(a,i));for(m in a)S.call(a,m)&&!He.hasOwnProperty(m)&&(c[m]=a[m]);if(r&&r.defaultProps){var d=r.defaultProps;for(m in d)c[m]===void 0&&(c[m]=d[m])}if(s||b){var u=typeof r==\"function\"?r.displayName||r.name||\"Unknown\":r;s&&Qe(c,u),b&&Ze(c,u)}return en(r,s,b,i,o,v.current,c)}}var $=g.ReactCurrentOwner,fe=g.ReactDebugCurrentFrame;function E(r){if(r){var a=r._owner,t=w(r.type,r._source,a?a.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}var V;V=!1;function K(r){return typeof r==\"object\"&&r!==null&&r.$$typeof===e}function _e(){{if($.current){var r=p($.current.type);if(r)return`\n\nCheck the render method of \\``+r+\"`.\"}return\"\"}}function rn(r){{if(r!==void 0){var a=r.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=r.lineNumber;return`\n\nCheck your code at `+a+\":\"+t+\".\"}return\"\"}}var pe={};function an(r){{var a=_e();if(!a){var t=typeof r==\"string\"?r:r.displayName||r.name;t&&(a=`\n\nCheck the top-level render call using <`+t+\">.\")}return a}}function Ne(r,a){{if(!r._store||r._store.validated||r.key!=null)return;r._store.validated=!0;var t=an(a);if(pe[t])return;pe[t]=!0;var o=\"\";r&&r._owner&&r._owner!==$.current&&(o=\" It was passed a child from \"+p(r._owner.type)+\".\"),E(r),h('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,o),E(null)}}function ke(r,a){{if(typeof r!=\"object\")return;if(Y(r))for(var t=0;t\",s=\" Did you accidentally export a JSX literal instead of a component?\"):d=typeof r,h(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",d,s)}var u=nn(r,a,t,i,m);if(u==null)return u;if(c){var f=a.children;if(f!==void 0)if(o)if(Y(f)){for(var j=0;j{\"use strict\";Ue.exports=je()});var xn={};bn(xn,{default:()=>kn,frontmatter:()=>pn});var n=fn(ve()),pn={title:\"@upstash/kafka\",description:\"A fully typed Kafka client built for Upstash Kafka and HTTP, perfect for serverless and edge runtimes\",date:\"2022-01-08\",url:\"https://upstash.com/kafka\",repository:\"upstash/upstash-kafka\",published:!0};function Fe(l){let e=Object.assign({p:\"p\",a:\"a\",ul:\"ul\",li:\"li\",h1:\"h1\",span:\"span\",div:\"div\",pre:\"pre\",code:\"code\",h2:\"h2\",ol:\"ol\"},l.components);return(0,n.jsxDEV)(n.Fragment,{children:[(0,n.jsxDEV)(e.p,{children:[`An HTTP/REST based Kafka client built on top of\n`,(0,n.jsxDEV)(e.a,{href:\"https://docs.upstash.com/kafka/rest\",children:\"Upstash REST API\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:13,columnNumber:1},this),\".\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:\"It is the only connectionless (HTTP based) Kafka client and designed for:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.ul,{children:[`\n`,(0,n.jsxDEV)(e.li,{children:\"Serverless functions (AWS Lambda ...)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"Cloudflare Workers (see the example)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"Fastly Compute@Edge\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"Next.js Edge, Remix ...\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"Client side web/mobile applications\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:21,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:`WebAssembly and other environments where HTTP is preferred over TCP\nconnections.`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:22,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h1,{id:\"installation\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#installation\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this),\"Installation\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:25,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"npm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:143},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"install\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:180},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:223},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"@upstash/kafka\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:260},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:27,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h1,{id:\"quickstart\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#quickstart\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this),\"Quickstart\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"auth\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#auth\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this),\"Auth\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:33,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.ol,{children:[`\n`,(0,n.jsxDEV)(e.li,{children:[\"Go to \",(0,n.jsxDEV)(e.a,{href:\"https://console.upstash.com/kafka\",children:\"upstash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:35,columnNumber:10},this),\" and select your database.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:[\"Copy the \",(0,n.jsxDEV)(e.code,{children:\"REST API\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:36,columnNumber:13},this),\" secrets at the bottom of the page\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:36,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" { Kafka } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:146},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:193},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:233},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"@upstash/kafka\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:270},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"kafka\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:139},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:176},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:213},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"new\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:250},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:289},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"Kafka\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:326},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:367},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" url: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:63},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:141},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" username: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:68},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:151},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" password: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:68},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:151},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:7,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:38,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"produce-a-single-message\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#produce-a-single-message\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this),\"Produce a single message\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:48,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:145},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"p\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:182},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:219},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:256},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:293},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"producer\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:336},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:380},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"message\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:141},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:178},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" { hello: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:215},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"world\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:261},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:314},this),(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// Objects will get serialized using `JSON.stringify`\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:353},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"res\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:137},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:174},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:211},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:248},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" p.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:289},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"produce\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:328},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:371},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:408},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", message)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:472},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"res\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:137},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:174},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:211},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:248},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" p.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:289},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"produce\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:328},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:371},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:408},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", message, {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:472},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" partition: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:69},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:106},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" timestamp: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"12345\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:69},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" key: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:7,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:7,columnNumber:63},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:7,columnNumber:129},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" headers: [{ key: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:8,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"traceId\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:8,columnNumber:75},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", value: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:8,columnNumber:130},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"85a9f12\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:8,columnNumber:175},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" }],\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:8,columnNumber:230},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:9,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:50,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"produce-multiple-messages\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#produce-multiple-messages\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this),\"Produce multiple messages.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:62,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:\"The same options from the example above can be set for every message.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:64,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:145},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"p\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:182},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:219},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:256},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:293},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"producer\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:336},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:380},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"res\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:137},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:174},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:211},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:248},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" p.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:289},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"produceMany\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:328},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"([\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:375},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topic: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"my.topic\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:67},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:123},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" value: { hello: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"world\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:76},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" },\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:129},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// ...options\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:60},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" },\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topic: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:9,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"another.topic\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:9,columnNumber:67},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:9,columnNumber:128},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" value: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:10,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"another message\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:10,columnNumber:67},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:10,columnNumber:130},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:11,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// ...options\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:11,columnNumber:60},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" },\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:12,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"])\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:13,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:13,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:66,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"consume\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#consume\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this),\"Consume\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:`The first time a consumer is created, it needs to figure out the group\ncoordinator by asking the Kafka brokers and joins the consumer group. This\nprocess takes some time to complete. That's why when a consumer instance is\ncreated first time, it may return empty messages until consumer group\ncoordination is completed.`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:84,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:145},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"c\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:182},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:219},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:256},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:293},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"consumer\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:336},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:380},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"messages\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:142},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:179},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:216},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:253},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" c.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:294},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"consume\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:333},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:376},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" consumerGroupId: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"group_1\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:75},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:130},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" instanceId: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"instance_1\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:70},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:128},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topics: [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"test.topic\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:67},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"],\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:125},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" autoOffsetReset: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"earliest\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:75},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:131},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:7,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:90,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:[`More examples can be found in the\n`,(0,n.jsxDEV)(e.a,{href:\"https://github.com/upstash/upstash-kafka/blob/main/pkg/consumer.ts#L265\",children:\"docstring\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:101,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:100,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"commit-manually\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#commit-manually\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this),\"Commit manually\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:103,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:[\"While \",(0,n.jsxDEV)(e.code,{children:\"consume\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:105,columnNumber:7},this),` can handle committing automatically, you can also use\n`,(0,n.jsxDEV)(e.code,{children:\"Consumer.commit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:106,columnNumber:1},this),\" to manually commit.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:105,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:145},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"consumerGroupId\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:182},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:233},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:270},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:307},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"mygroup\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:344},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"instanceId\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:144},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:181},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:218},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"myinstance\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:255},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"topic\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:139},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:176},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:213},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"my.topic\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:250},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"c\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:135},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:172},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:209},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"consumer\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:252},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:296},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"messages\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:142},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:179},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:216},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:253},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" c.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:294},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"consume\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:333},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:376},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" consumerGroupId,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" instanceId,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topics: [topic],\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" autoCommit: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:10,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"false\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:10,columnNumber:70},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:10,columnNumber:111},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:11,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"for\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:13,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" (\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:13,columnNumber:59},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:13,columnNumber:97},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:13,columnNumber:138},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"message\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:13,columnNumber:175},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:13,columnNumber:218},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"of\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:13,columnNumber:255},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" messages) {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:13,columnNumber:293},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:14,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// message handling logic\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:14,columnNumber:58},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:16,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:16,columnNumber:58},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" c.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:16,columnNumber:99},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"commit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:16,columnNumber:138},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:16,columnNumber:180},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" consumerGroupId,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:17,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" instanceId,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:18,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" offset: {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:19,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topic: message.topic,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:20,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" partition: message.partition,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:21,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:21,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" offset: message.offset,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:22,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:22,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" },\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:23,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:23,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" })\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:24,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:24,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:25,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:25,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:108,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"fetch\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#fetch\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this),\"Fetch\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:136,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:[\"You can also manage offsets manually by using \",(0,n.jsxDEV)(e.code,{children:\"Consumer.fetch\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:138,columnNumber:47},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:138,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:145},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"c\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:182},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:219},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:256},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:293},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"consumer\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:336},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:380},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"messages\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:142},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:179},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:216},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:253},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" c.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:294},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"fetch\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:333},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:374},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topic: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"greeting\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:65},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:121},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" partition: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"3\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:69},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:106},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" offset: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"42\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:66},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:104},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" timeout: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"1000\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:67},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:107},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:7,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:140,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"examples\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#examples\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this),\"Examples\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:150,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:[\"See \",(0,n.jsxDEV)(e.a,{href:\"https://github.com/upstash/upstash-kafka/tree/main/examples\",children:\"/examples\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:152,columnNumber:5},this),` as\nwell as various examples in the docstrings of each method.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:152,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h1,{id:\"contributing\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#contributing\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this),\"Contributing\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:155,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"requirements\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#requirements\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this),\"Requirements\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:157,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.ul,{children:[`\n`,(0,n.jsxDEV)(e.li,{children:[(0,n.jsxDEV)(e.a,{href:\"https://nodejs.org\",children:\"nodejs\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:159,columnNumber:3},this),\" v14.x or higher\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:159,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:(0,n.jsxDEV)(e.a,{href:\"https://pnpm.io/installation\",children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:160,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:160,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:159,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"setup\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#setup\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this),\"Setup\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:162,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.ol,{start:\"0\",children:[`\n`,(0,n.jsxDEV)(e.li,{children:[`\n`,(0,n.jsxDEV)(e.p,{children:[\"Install dependencies using \",(0,n.jsxDEV)(e.code,{children:\"pnpm install\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:164,columnNumber:31},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:164,columnNumber:4},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:164,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:[`\n`,(0,n.jsxDEV)(e.p,{children:[`Create a kafka instance on upstash.\n`,(0,n.jsxDEV)(e.a,{href:\"https://docs.upstash.com/kafka#create-a-kafka-cluster\",children:\"docs\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:166,columnNumber:4},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:165,columnNumber:4},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:165,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:[`\n`,(0,n.jsxDEV)(e.p,{children:[\"Create the following topics: \",(0,n.jsxDEV)(e.code,{children:\"blue\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:167,columnNumber:33},this),\", \",(0,n.jsxDEV)(e.code,{children:\"red\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:167,columnNumber:41},this),\", \",(0,n.jsxDEV)(e.code,{children:\"green\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:167,columnNumber:48},this),`.\n`,(0,n.jsxDEV)(e.a,{href:\"https://docs.upstash.com/kafka#create-a-topic\",children:\"docs\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:168,columnNumber:4},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:167,columnNumber:4},this),`\n`,(0,n.jsxDEV)(e.p,{children:\"The partitions or retention settings don't matter at this time.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:170,columnNumber:4},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:167,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:[`\n`,(0,n.jsxDEV)(e.p,{children:[\"Create \",(0,n.jsxDEV)(e.code,{children:\".env\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:172,columnNumber:11},this),\" file with your kafka secrets \",(0,n.jsxDEV)(e.code,{children:\"cp .env.example .env\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:172,columnNumber:47},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:172,columnNumber:4},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:172,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:164,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"running-tests\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#running-tests\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this),\"Running tests\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:174,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:144},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"test\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:181},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:176,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\",lineNumber:1,columnNumber:1},this)}function Nn(l={}){let{wrapper:e}=l.components||{};return e?(0,n.jsxDEV)(e,Object.assign({},l,{children:(0,n.jsxDEV)(Fe,l,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-478649a2-2c12-443b-b34a-927444113f41.mdx\"},this):Fe(l)}var kn=Nn;return _n(xn);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-kafka.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-kafka.mdx", - "sourceFileName": "upstash-kafka.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-kafka" - }, - "type": "Project", - "path": "/projects/upstash-kafka", - "slug": "upstash-kafka" - }, - "documentHash": "1679819588795", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-qstash-sdk.mdx": { - "document": { - "published": true, - "title": "@upstash/qstash", - "description": "A typescript client and consumer for QStash.", - "date": "2022-07-18T00:00:00.000Z", - "url": "https://upstash.com/qstash", - "repository": "upstash/sdk-qstash-ts", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var lr=Object.getOwnPropertyNames;var fr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var G=(s,c)=>()=>(c||s((c={exports:{}}).exports,c),c.exports),vr=(s,c)=>{for(var h in c)F(s,h,{get:c[h],enumerable:!0})},_e=(s,c,h,E)=>{if(c&&typeof c==\"object\"||typeof c==\"function\")for(let m of lr(c))!dr.call(s,m)&&m!==h&&F(s,m,{get:()=>c[m],enumerable:!(E=cr(c,m))||E.enumerable});return s};var pr=(s,c,h)=>(h=s!=null?sr(fr(s)):{},_e(c||!s||!s.__esModule?F(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=G((_r,Re)=>{Re.exports=React});var Ce=G(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),c=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&f>=0&&a[l]!==v[f];)f--;for(;l>=1&&f>=0;l--,f--)if(a[l]!==v[f]){if(l!==1||f!==1)do if(l--,f--,f<0||a[l]!==v[f]){var p=`\n`+a[l].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(l>=1&&f>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,ce={},le=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);le.setExtraStackFrame(t)}else le.setExtraStackFrame(null)}function qe(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(l){a=l}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Be=Array.isArray;function V(e){return Be(e)}function Ge(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return fe(e),!1}catch{return!0}}function fe(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Ge(e)),fe(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=b(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',b(O.current.type),e.ref),U[t]=!0)}}function Qe(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Ze(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:c,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var l=e.defaultProps;for(u in l)o[u]===void 0&&(o[u]=l[u])}if(a||v){var f=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Qe(o,f),v&&Ze(o,f)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var q;q=!1;function B(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===c}function be(){{if(L.current){var e=b(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=be();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+b(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):l=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",l,a)}var f=rr(e,r,t,i,u);if(f==null)return f;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>br});var A=pr(we()),br={title:\"@upstash/qstash\",description:\"A typescript client and consumer for QStash.\",date:\"2022-07-18\",url:\"https://upstash.com/qstash\",repository:\"upstash/sdk-qstash-ts\",published:!0};function Pe(s){let c=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(c.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-ae992301-14e5-46cb-a2a7-41d502dd21b1.mdx\",lineNumber:10,columnNumber:1},this)}function gr(s={}){let{wrapper:c}=s.components||{};return c?(0,A.jsxDEV)(c,Object.assign({},s,{children:(0,A.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-ae992301-14e5-46cb-a2a7-41d502dd21b1.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-ae992301-14e5-46cb-a2a7-41d502dd21b1.mdx\"},this):Pe(s)}var mr=gr;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-qstash-sdk.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-qstash-sdk.mdx", - "sourceFileName": "upstash-qstash-sdk.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-qstash-sdk" - }, - "type": "Project", - "path": "/projects/upstash-qstash-sdk", - "slug": "upstash-qstash-sdk" - }, - "documentHash": "1679819591035", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-ratelimit.mdx": { - "document": { - "published": true, - "title": "@upstash/ratelimit", - "description": "Ratelimiting library for serverless and edge runtimes. Built on top of Upstash Redis.", - "date": "2022-06-06T00:00:00.000Z", - "url": "https://upstash.com/ratelimit", - "repository": "upstash/ratelimit", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var lr=Object.getOwnPropertyNames;var fr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,c)=>()=>(c||s((c={exports:{}}).exports,c),c.exports),vr=(s,c)=>{for(var h in c)F(s,h,{get:c[h],enumerable:!0})},_e=(s,c,h,E)=>{if(c&&typeof c==\"object\"||typeof c==\"function\")for(let m of lr(c))!dr.call(s,m)&&m!==h&&F(s,m,{get:()=>c[m],enumerable:!(E=cr(c,m))||E.enumerable});return s};var pr=(s,c,h)=>(h=s!=null?sr(fr(s)):{},_e(c||!s||!s.__esModule?F(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),c=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&f>=0&&a[l]!==v[f];)f--;for(;l>=1&&f>=0;l--,f--)if(a[l]!==v[f]){if(l!==1||f!==1)do if(l--,f--,f<0||a[l]!==v[f]){var p=`\n`+a[l].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(l>=1&&f>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,ce={},le=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);le.setExtraStackFrame(t)}else le.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(l){a=l}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return fe(e),!1}catch{return!0}}function fe(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),fe(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=b(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',b(O.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:c,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var l=e.defaultProps;for(u in l)o[u]===void 0&&(o[u]=l[u])}if(a||v){var f=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,f),v&&Qe(o,f)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===c}function be(){{if(L.current){var e=b(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=be();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+b(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):l=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",l,a)}var f=rr(e,r,t,i,u);if(f==null)return f;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>br});var A=pr(we()),br={title:\"@upstash/ratelimit\",description:\"Ratelimiting library for serverless and edge runtimes. Built on top of Upstash Redis.\",date:\"2022-06-06\",url:\"https://upstash.com/ratelimit\",repository:\"upstash/ratelimit\",published:!0};function Pe(s){let c=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(c.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-682d6bc1-8f13-4c07-81e8-836d1ced6678.mdx\",lineNumber:11,columnNumber:1},this)}function gr(s={}){let{wrapper:c}=s.components||{};return c?(0,A.jsxDEV)(c,Object.assign({},s,{children:(0,A.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-682d6bc1-8f13-4c07-81e8-836d1ced6678.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-682d6bc1-8f13-4c07-81e8-836d1ced6678.mdx\"},this):Pe(s)}var mr=gr;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-ratelimit.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-ratelimit.mdx", - "sourceFileName": "upstash-ratelimit.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-ratelimit" - }, - "type": "Project", - "path": "/projects/upstash-ratelimit", - "slug": "upstash-ratelimit" - }, - "documentHash": "1679819595280", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-react-ui.mdx": { - "document": { - "published": true, - "title": "React.js CLI", - "description": "A CLI React component to interact with Upstash Redis databases.", - "date": "2023-02-05T00:00:00.000Z", - "url": "https://upstash.com", - "repository": "upstash/react-ui", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var fr=Object.getOwnPropertyNames;var lr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,c)=>()=>(c||s((c={exports:{}}).exports,c),c.exports),vr=(s,c)=>{for(var b in c)F(s,b,{get:c[b],enumerable:!0})},_e=(s,c,b,E)=>{if(c&&typeof c==\"object\"||typeof c==\"function\")for(let m of fr(c))!dr.call(s,m)&&m!==b&&F(s,m,{get:()=>c[m],enumerable:!(E=cr(c,m))||E.enumerable});return s};var pr=(s,c,b)=>(b=s!=null?sr(lr(s)):{},_e(c||!s||!s.__esModule?F(b,\"default\",{value:s,enumerable:!0}):b,s)),br=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),c=Symbol.for(\"react.element\"),b=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&l>=0&&a[f]!==v[l];)l--;for(;f>=1&&l>=0;f--,l--)if(a[f]!==v[l]){if(f!==1||l!==1)do if(f--,l--,l<0||a[f]!==v[l]){var p=`\n`+a[f].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(f>=1&&l>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Le(e,r,t){return se(e,!1)}function Ue(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Ue(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Le(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,ce={},fe=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){a=f}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return le(e),!1}catch{return!0}}function le(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),le(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,L;L={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=h(O.current.type);L[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',h(O.current.type),e.ref),L[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:c,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var f=e.defaultProps;for(u in f)o[u]===void 0&&(o[u]=f[u])}if(a||v){var l=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,l),v&&Qe(o,l)}return er(e,a,v,i,n,O.current,o)}}var U=_.ReactCurrentOwner,be=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===c}function he(){{if(U.current){var e=h(U.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=he();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==U.current&&(n=\" It was passed a child from \"+h(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):f=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",f,a)}var l=rr(e,r,t,i,u);if(l==null)return l;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>hr});var A=pr(we()),hr={title:\"React.js CLI\",description:\"A CLI React component to interact with Upstash Redis databases.\",date:\"2023-02-05\",url:\"https://upstash.com\",repository:\"upstash/react-ui\",published:!0};function Pe(s){let c=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(c.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0a7351ab-37c7-4470-a4f2-2cac6db56cb8.mdx\",lineNumber:11,columnNumber:1},this)}function gr(s={}){let{wrapper:c}=s.components||{};return c?(0,A.jsxDEV)(c,Object.assign({},s,{children:(0,A.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0a7351ab-37c7-4470-a4f2-2cac6db56cb8.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0a7351ab-37c7-4470-a4f2-2cac6db56cb8.mdx\"},this):Pe(s)}var mr=gr;return br(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-react-ui.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-react-ui.mdx", - "sourceFileName": "upstash-react-ui.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-react-ui" - }, - "type": "Project", - "path": "/projects/upstash-react-ui", - "slug": "upstash-react-ui" - }, - "documentHash": "1679819598600", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-redis.mdx": { - "document": { - "published": true, - "title": "@upstash/redis", - "description": "A fully typed Redis client built for Upstash Redis and HTTP, perfect for serverless and edge runtimes.", - "date": "2022-03-14T00:00:00.000Z", - "url": "https://upstash.com/redis", - "repository": "upstash/upstash-redis", - "body": { - "raw": "\n\n`@upstash/redis` is an HTTP/REST based Redis client for typescript, built on top\nof [Upstash REST API](https://docs.upstash.com/features/restapi).\n\nIt is the only connectionless (HTTP based) Redis client and designed for:\n\n- Serverless functions (AWS Lambda ...)\n- Cloudflare Workers (see\n [the example](https://github.com/upstash/upstash-redis/tree/main/examples/cloudflare-workers))\n- Fastly Compute@Edge (see\n [the example](https://github.com/upstash/upstash-redis/tree/main/examples/fastly))\n- Next.js, Jamstack ...\n- Client side web/mobile applications\n- WebAssembly\n- and other environments where HTTP is preferred over TCP.\n\nSee\n[the list of APIs](https://docs.upstash.com/features/restapi#rest---redis-api-compatibility)\nsupported.\n\n## Quick Start\n\n### Install\n\n#### Node.js\n\n```bash\nnpm install @upstash/redis\n```\n\n#### Deno\n\n```ts\nimport { Redis } from \"https://deno.land/x/upstash_redis/mod.ts\";\n```\n\n### Create database\n\nCreate a new redis database on [upstash](https://console.upstash.com/)\n\n## Basic Usage:\n\n```ts\nimport { Redis } from \"@upstash/redis\"\n\nconst redis = new Redis({\n url: ,\n token: ,\n})\n\n// string\nawait redis.set('key', 'value');\nlet data = await redis.get('key');\nconsole.log(data)\n\nawait redis.set('key2', 'value2', {ex: 1});\n\n// sorted set\nawait redis.zadd('scores', { score: 1, member: 'team1' })\ndata = await redis.zrange('scores', 0, 100 )\nconsole.log(data)\n\n// list\nawait redis.lpush('elements', 'magnesium')\ndata = await redis.lrange('elements', 0, 100 )\nconsole.log(data)\n\n// hash\nawait redis.hset('people', {name: 'joe'})\ndata = await redis.hget('people', 'name' )\nconsole.log(data)\n\n// sets\nawait redis.sadd('animals', 'cat')\ndata = await redis.spop('animals', 1)\nconsole.log(data)\n```\n", - "code": "var Component=(()=>{var dn=Object.create;var O=Object.defineProperty;var ln=Object.getOwnPropertyDescriptor;var mn=Object.getOwnPropertyNames;var un=Object.getPrototypeOf,hn=Object.prototype.hasOwnProperty;var q=(l,e)=>()=>(e||l((e={exports:{}}).exports,e),e.exports),bn=(l,e)=>{for(var _ in e)O(l,_,{get:e[_],enumerable:!0})},ye=(l,e,_,x)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let k of mn(e))!hn.call(l,k)&&k!==_&&O(l,k,{get:()=>e[k],enumerable:!(x=ln(e,k))||x.enumerable});return l};var fn=(l,e,_)=>(_=l!=null?dn(un(l)):{},ye(e||!l||!l.__esModule?O(_,\"default\",{value:l,enumerable:!0}):_,l)),_n=l=>ye(O({},\"__esModule\",{value:!0}),l);var Ee=q((gn,ge)=>{ge.exports=React});var je=q(z=>{\"use strict\";(function(){\"use strict\";var l=Ee(),e=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),x=Symbol.for(\"react.fragment\"),k=Symbol.for(\"react.strict_mode\"),G=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),X=Symbol.for(\"react.context\"),F=Symbol.for(\"react.forward_ref\"),B=Symbol.for(\"react.suspense\"),D=Symbol.for(\"react.suspense_list\"),R=Symbol.for(\"react.memo\"),A=Symbol.for(\"react.lazy\"),Re=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Ce=\"@@iterator\";function Te(r){if(r===null||typeof r!=\"object\")return null;var a=J&&r[J]||r[Ce];return typeof a==\"function\"?a:null}var g=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function h(r){{for(var a=arguments.length,t=new Array(a>1?a-1:0),o=1;o=1&&u>=0&&c[m]!==b[u];)u--;for(;m>=1&&u>=0;m--,u--)if(c[m]!==b[u]){if(m!==1||u!==1)do if(m--,u--,u<0||c[m]!==b[u]){var f=`\n`+c[m].replace(\" at new \",\" at \");return r.displayName&&f.includes(\"\")&&(f=f.replace(\"\",r.displayName)),typeof r==\"function\"&&T.set(r,f),f}while(m>=1&&u>=0);break}}}finally{W=!1,I.current=i,We(),Error.prepareStackTrace=d}var j=r?r.displayName||r.name:\"\",xe=j?C(j):\"\";return typeof r==\"function\"&&T.set(r,xe),xe}function $e(r,a,t){return de(r,!1)}function Me(r){var a=r.prototype;return!!(a&&a.isReactComponent)}function w(r,a,t){if(r==null)return\"\";if(typeof r==\"function\")return de(r,Me(r));if(typeof r==\"string\")return C(r);switch(r){case B:return C(\"Suspense\");case D:return C(\"SuspenseList\")}if(typeof r==\"object\")switch(r.$$typeof){case F:return $e(r.render);case R:return w(r.type,a,t);case A:{var o=r,d=o._payload,i=o._init;try{return w(i(d),a,t)}catch{}}}return\"\"}var S=Object.prototype.hasOwnProperty,ie={},le=g.ReactDebugCurrentFrame;function P(r){if(r){var a=r._owner,t=w(r.type,r._source,a?a.type:null);le.setExtraStackFrame(t)}else le.setExtraStackFrame(null)}function Ve(r,a,t,o,d){{var i=Function.call.bind(S);for(var s in r)if(i(r,s)){var c=void 0;try{if(typeof r[s]!=\"function\"){var b=Error((o||\"React class\")+\": \"+t+\" type `\"+s+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof r[s]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw b.name=\"Invariant Violation\",b}c=r[s](a,s,o,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(m){c=m}c&&!(c instanceof Error)&&(P(d),h(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",o||\"React class\",t,s,typeof c),P(null)),c instanceof Error&&!(c.message in ie)&&(ie[c.message]=!0,P(d),h(\"Failed %s type: %s\",t,c.message),P(null))}}}var He=Array.isArray;function Y(r){return He(r)}function qe(r){{var a=typeof Symbol==\"function\"&&Symbol.toStringTag,t=a&&r[Symbol.toStringTag]||r.constructor.name||\"Object\";return t}}function ze(r){try{return me(r),!1}catch{return!0}}function me(r){return\"\"+r}function ue(r){if(ze(r))return h(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(r)),me(r)}var v=g.ReactCurrentOwner,Ge={key:!0,ref:!0,__self:!0,__source:!0},he,be,$;$={};function Ke(r){if(S.call(r,\"ref\")){var a=Object.getOwnPropertyDescriptor(r,\"ref\").get;if(a&&a.isReactWarning)return!1}return r.ref!==void 0}function Xe(r){if(S.call(r,\"key\")){var a=Object.getOwnPropertyDescriptor(r,\"key\").get;if(a&&a.isReactWarning)return!1}return r.key!==void 0}function Je(r,a){if(typeof r.ref==\"string\"&&v.current&&a&&v.current.stateNode!==a){var t=p(v.current.type);$[t]||(h('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(v.current.type),r.ref),$[t]=!0)}}function Qe(r,a){{var t=function(){he||(he=!0,h(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(r,\"key\",{get:t,configurable:!0})}}function Ze(r,a){{var t=function(){be||(be=!0,h(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(r,\"ref\",{get:t,configurable:!0})}}var en=function(r,a,t,o,d,i,s){var c={$$typeof:e,type:r,key:a,ref:t,props:s,_owner:i};return c._store={},Object.defineProperty(c._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(c,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(c,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:d}),Object.freeze&&(Object.freeze(c.props),Object.freeze(c)),c};function nn(r,a,t,o,d){{var i,s={},c=null,b=null;t!==void 0&&(ue(t),c=\"\"+t),Xe(a)&&(ue(a.key),c=\"\"+a.key),Ke(a)&&(b=a.ref,Je(a,d));for(i in a)S.call(a,i)&&!Ge.hasOwnProperty(i)&&(s[i]=a[i]);if(r&&r.defaultProps){var m=r.defaultProps;for(i in m)s[i]===void 0&&(s[i]=m[i])}if(c||b){var u=typeof r==\"function\"?r.displayName||r.name||\"Unknown\":r;c&&Qe(s,u),b&&Ze(s,u)}return en(r,c,b,d,o,v.current,s)}}var M=g.ReactCurrentOwner,fe=g.ReactDebugCurrentFrame;function E(r){if(r){var a=r._owner,t=w(r.type,r._source,a?a.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}var V;V=!1;function H(r){return typeof r==\"object\"&&r!==null&&r.$$typeof===e}function _e(){{if(M.current){var r=p(M.current.type);if(r)return`\n\nCheck the render method of \\``+r+\"`.\"}return\"\"}}function rn(r){{if(r!==void 0){var a=r.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=r.lineNumber;return`\n\nCheck your code at `+a+\":\"+t+\".\"}return\"\"}}var pe={};function an(r){{var a=_e();if(!a){var t=typeof r==\"string\"?r:r.displayName||r.name;t&&(a=`\n\nCheck the top-level render call using <`+t+\">.\")}return a}}function Ne(r,a){{if(!r._store||r._store.validated||r.key!=null)return;r._store.validated=!0;var t=an(a);if(pe[t])return;pe[t]=!0;var o=\"\";r&&r._owner&&r._owner!==M.current&&(o=\" It was passed a child from \"+p(r._owner.type)+\".\"),E(r),h('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,o),E(null)}}function ke(r,a){{if(typeof r!=\"object\")return;if(Y(r))for(var t=0;t\",c=\" Did you accidentally export a JSX literal instead of a component?\"):m=typeof r,h(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",m,c)}var u=nn(r,a,t,d,i);if(u==null)return u;if(s){var f=a.children;if(f!==void 0)if(o)if(Y(f)){for(var j=0;j{\"use strict\";Ue.exports=je()});var xn={};bn(xn,{default:()=>kn,frontmatter:()=>pn});var n=fn(ve()),pn={title:\"@upstash/redis\",description:\"A fully typed Redis client built for Upstash Redis and HTTP, perfect for serverless and edge runtimes.\",date:\"2022-03-14\",url:\"https://upstash.com/redis\",repository:\"upstash/upstash-redis\",published:!0};function Fe(l){let e=Object.assign({p:\"p\",code:\"code\",a:\"a\",ul:\"ul\",li:\"li\",h2:\"h2\",span:\"span\",h3:\"h3\",h4:\"h4\",div:\"div\",pre:\"pre\"},l.components);return(0,n.jsxDEV)(n.Fragment,{children:[(0,n.jsxDEV)(e.p,{children:[(0,n.jsxDEV)(e.code,{children:\"@upstash/redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:12,columnNumber:1},this),` is an HTTP/REST based Redis client for typescript, built on top\nof `,(0,n.jsxDEV)(e.a,{href:\"https://docs.upstash.com/features/restapi\",children:\"Upstash REST API\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:13,columnNumber:4},this),\".\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:\"It is the only connectionless (HTTP based) Redis client and designed for:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.ul,{children:[`\n`,(0,n.jsxDEV)(e.li,{children:\"Serverless functions (AWS Lambda ...)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:[`Cloudflare Workers (see\n`,(0,n.jsxDEV)(e.a,{href:\"https://github.com/upstash/upstash-redis/tree/main/examples/cloudflare-workers\",children:\"the example\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:19,columnNumber:3},this),\")\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:[`Fastly Compute@Edge (see\n`,(0,n.jsxDEV)(e.a,{href:\"https://github.com/upstash/upstash-redis/tree/main/examples/fastly\",children:\"the example\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:21,columnNumber:3},this),\")\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"Next.js, Jamstack ...\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:22,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"Client side web/mobile applications\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:23,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"WebAssembly\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:24,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"and other environments where HTTP is preferred over TCP.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:25,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:[`See\n`,(0,n.jsxDEV)(e.a,{href:\"https://docs.upstash.com/features/restapi#rest---redis-api-compatibility\",children:\"the list of APIs\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:28,columnNumber:1},this),`\nsupported.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:27,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"quick-start\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#quick-start\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\"},this),\"Quick Start\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h3,{id:\"install\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#install\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\"},this),\"Install\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:33,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h4,{id:\"nodejs\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#nodejs\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\"},this),\"Node.js\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"npm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:1,columnNumber:143},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"install\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:1,columnNumber:180},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:1,columnNumber:223},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"@upstash/redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:1,columnNumber:260},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:37,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h4,{id:\"deno\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#deno\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\"},this),\"Deno\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:41,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" { Redis } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:1,columnNumber:146},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:1,columnNumber:193},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:1,columnNumber:233},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"https://deno.land/x/upstash_redis/mod.ts\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:1,columnNumber:270},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\";\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:1,columnNumber:358},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:43,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h3,{id:\"create-database\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#create-database\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\"},this),\"Create database\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:47,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:[\"Create a new redis database on \",(0,n.jsxDEV)(e.a,{href:\"https://console.upstash.com/\",children:\"upstash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:49,columnNumber:32},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:49,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"basic-usage\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#basic-usage\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\"},this),\"Basic Usage:\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:51,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" { Redis } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:1,columnNumber:146},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:1,columnNumber:193},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:1,columnNumber:233},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"@upstash/redis\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:1,columnNumber:270},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:3,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:3,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:3,columnNumber:139},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:3,columnNumber:176},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:3,columnNumber:213},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"new\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:3,columnNumber:250},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:3,columnNumber:289},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"Redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:3,columnNumber:326},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:3,columnNumber:367},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" url: <\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"UPSTASH_REDIS_REST_URL\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:4,columnNumber:67},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\">,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:4,columnNumber:125},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" token: <\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"UPSTASH_REDIS_REST_TOKEN\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:5,columnNumber:69},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\">,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:5,columnNumber:129},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// string\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:9,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:9,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"set\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:9,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:9,columnNumber:143},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'key'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:9,columnNumber:180},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:9,columnNumber:229},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'value'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:9,columnNumber:267},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\");\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:9,columnNumber:318},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"let\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:10,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" data \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:10,columnNumber:59},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:10,columnNumber:101},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:10,columnNumber:138},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:10,columnNumber:175},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:10,columnNumber:216},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"get\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:10,columnNumber:259},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:10,columnNumber:298},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'key'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:10,columnNumber:335},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\");\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:10,columnNumber:384},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"console.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:11,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"log\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:11,columnNumber:64},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(data)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:11,columnNumber:103},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:13,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:13,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"set\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:13,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:13,columnNumber:143},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'key2'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:13,columnNumber:180},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:13,columnNumber:230},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'value2'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:13,columnNumber:268},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", {ex: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:13,columnNumber:320},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:13,columnNumber:363},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"});\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:13,columnNumber:400},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// sorted set\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:15,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:16,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:16,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"zadd\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:16,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:16,columnNumber:144},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'scores'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:16,columnNumber:181},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", { score: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:16,columnNumber:233},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:16,columnNumber:280},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", member: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:16,columnNumber:317},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'team1'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:16,columnNumber:363},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" })\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:16,columnNumber:414},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"data \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:17,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:17,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:17,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:17,columnNumber:135},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:17,columnNumber:176},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"zrange\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:17,columnNumber:219},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:17,columnNumber:261},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'scores'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:17,columnNumber:298},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:17,columnNumber:350},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"0\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:17,columnNumber:388},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:17,columnNumber:425},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"100\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:17,columnNumber:463},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" )\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:17,columnNumber:502},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"console.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:18,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"log\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:18,columnNumber:64},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(data)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:18,columnNumber:103},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// list\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:20,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:21,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:21,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"lpush\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:21,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:21,columnNumber:145},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'elements'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:21,columnNumber:182},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:21,columnNumber:236},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'magnesium'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:21,columnNumber:274},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\")\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:21,columnNumber:329},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:21,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"data \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:22,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:22,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:22,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:22,columnNumber:135},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:22,columnNumber:176},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"lrange\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:22,columnNumber:219},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:22,columnNumber:261},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'elements'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:22,columnNumber:298},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:22,columnNumber:352},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"0\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:22,columnNumber:390},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:22,columnNumber:427},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"100\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:22,columnNumber:465},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" )\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:22,columnNumber:504},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:22,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"console.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:23,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"log\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:23,columnNumber:64},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(data)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:23,columnNumber:103},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:23,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:24,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// hash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:25,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:25,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:26,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:26,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"hset\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:26,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:26,columnNumber:144},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'people'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:26,columnNumber:181},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", {name: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:26,columnNumber:233},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'joe'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:26,columnNumber:278},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:26,columnNumber:327},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:26,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"data \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:27,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:27,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:27,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:27,columnNumber:135},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:27,columnNumber:176},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"hget\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:27,columnNumber:219},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:27,columnNumber:259},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'people'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:27,columnNumber:296},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:27,columnNumber:348},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'name'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:27,columnNumber:386},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" )\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:27,columnNumber:436},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:27,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"console.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:28,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"log\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:28,columnNumber:64},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(data)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:28,columnNumber:103},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:28,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:29,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// sets\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:30,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:31,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:31,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"sadd\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:31,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:31,columnNumber:144},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'animals'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:31,columnNumber:181},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:31,columnNumber:234},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'cat'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:31,columnNumber:272},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\")\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:31,columnNumber:321},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"data \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:32,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:32,columnNumber:62},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:32,columnNumber:99},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:32,columnNumber:136},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:32,columnNumber:177},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"spop\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:32,columnNumber:220},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:32,columnNumber:260},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'animals'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:32,columnNumber:297},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:32,columnNumber:350},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:32,columnNumber:388},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\")\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:32,columnNumber:425},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:32,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"console.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:33,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"log\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:33,columnNumber:64},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(data)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:33,columnNumber:103},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:33,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:53,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\",lineNumber:1,columnNumber:1},this)}function Nn(l={}){let{wrapper:e}=l.components||{};return e?(0,n.jsxDEV)(e,Object.assign({},l,{children:(0,n.jsxDEV)(Fe,l,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0d630033-ac38-4a92-8b12-ba7c8fd91140.mdx\"},this):Fe(l)}var kn=Nn;return _n(xn);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-redis.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-redis.mdx", - "sourceFileName": "upstash-redis.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-redis" - }, - "type": "Project", - "path": "/projects/upstash-redis", - "slug": "upstash-redis" - }, - "documentHash": "1679819604294", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-web-analytics.mdx": { - "document": { - "published": true, - "title": "Upstash Web Analytics", - "description": "A library to record and analyse web page traffic and user behaviour", - "repository": "upstash/web-analytics", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var A=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var lr=Object.getOwnPropertyNames;var fr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,c)=>()=>(c||s((c={exports:{}}).exports,c),c.exports),vr=(s,c)=>{for(var b in c)A(s,b,{get:c[b],enumerable:!0})},_e=(s,c,b,E)=>{if(c&&typeof c==\"object\"||typeof c==\"function\")for(let m of lr(c))!dr.call(s,m)&&m!==b&&A(s,m,{get:()=>c[m],enumerable:!(E=cr(c,m))||E.enumerable});return s};var pr=(s,c,b)=>(b=s!=null?sr(fr(s)):{},_e(c||!s||!s.__esModule?A(b,\"default\",{value:s,enumerable:!0}):b,s)),br=s=>_e(A({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),c=Symbol.for(\"react.element\"),b=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),W=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),Y=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&f>=0&&a[l]!==v[f];)f--;for(;l>=1&&f>=0;l--,f--)if(a[l]!==v[f]){if(l!==1||f!==1)do if(l--,f--,f<0||a[l]!==v[f]){var p=`\n`+a[l].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(l>=1&&f>=0);break}}}finally{M=!1,$.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case W:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case Y:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,ce={},le=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);le.setExtraStackFrame(t)}else le.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(l){a=l}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return fe(e),!1}catch{return!0}}function fe(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),fe(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=h(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',h(O.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:c,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var l=e.defaultProps;for(u in l)o[u]===void 0&&(o[u]=l[u])}if(a||v){var f=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,f),v&&Qe(o,f)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,be=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===c}function he(){{if(L.current){var e=h(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=he();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+h(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):l=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",l,a)}var f=rr(e,r,t,i,u);if(f==null)return f;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>hr});var F=pr(we()),hr={title:\"Upstash Web Analytics\",description:\"A library to record and analyse web page traffic and user behaviour\",repository:\"upstash/web-analytics\",published:!0};function Pe(s){let c=Object.assign({p:\"p\"},s.components);return(0,F.jsxDEV)(c.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-239c4544-e22d-4f40-b854-803d8a41d708.mdx\",lineNumber:8,columnNumber:1},this)}function gr(s={}){let{wrapper:c}=s.components||{};return c?(0,F.jsxDEV)(c,Object.assign({},s,{children:(0,F.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-239c4544-e22d-4f40-b854-803d8a41d708.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-239c4544-e22d-4f40-b854-803d8a41d708.mdx\"},this):Pe(s)}var mr=gr;return br(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-web-analytics.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-web-analytics.mdx", - "sourceFileName": "upstash-web-analytics.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-web-analytics" - }, - "type": "Project", - "path": "/projects/upstash-web-analytics", - "slug": "upstash-web-analytics" - }, - "documentHash": "1679820082861", - "hasWarnings": false, - "documentTypeName": "Project" - } - } -} diff --git a/.contentlayer/.cache/v0.3.0/data-XX52LLCN.json b/.contentlayer/.cache/v0.3.0/data-XX52LLCN.json deleted file mode 100644 index 8e59d66..0000000 --- a/.contentlayer/.cache/v0.3.0/data-XX52LLCN.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "cacheItemsMap": { - "projects/envshare.mdx": { - "document": { - "title": "envshare.dev", - "description": "EnvShare is a simple tool to share environment variables securely. It uses AES-GCM to encrypt your data before sending it to the server. The encryption key never leaves your browser.", - "date": "2023-01-16T00:00:00.000Z", - "url": "https://envshare.dev", - "repository": "chronark/envshare", - "body": { - "raw": "\nEnvShare is a simple tool to share environment variables securely. It uses\n**AES-GCM** to encrypt your data before sending it to the server. The encryption\nkey never leaves your browser.\n\n## Features\n\n- **Shareable Links:** Share your environment variables securely by sending a\n link\n- **End-to-End Encryption:** AES-GCM encryption is used to encrypt your data\n before sending it to the server\n- **Limit number of reads:** Limit the number of times a link can be read\n- **Auto Expire:** Automatically expire links and delete data after a certain\n time\n\n\n\n![](img/envshare.png)\n\n## Built with\n\n- [Next.js](https://nextjs.org)\n- [tailwindcss](https://tailwindcss.com)\n- Deployed on [Vercel](https://vercel.com?utm_source=envshare)\n- Data stored on [Upstash](https://upstash.com?utm_source=envshare)\n\n## Deploy your own\n\nDetailed instructions can be found [here](https://envshare.dev/deploy)\n\nAll you need is a Redis database on Upstash and a Vercel account. Click the\nbutton below to clone and deploy:\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?demo-title=EnvShare&demo-description=Simple%20Next.js%20%2B%20Upstash%20app%20to%20share%20environment%20variables%20securely%20using%20AES-GCM%20encryption.&demo-url=https%3A%2F%2Fenvshare.dev%2F&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5SaFBHXp5FBFJbsTzVqIJ3%2Ff0f8382369b7642fd8103debb9025c11%2Fenvshare.png&project-name=EnvShare&repository-name=envshare&repository-url=https%3A%2F%2Fgithub.com%2Fchronark%2Fenvshare&from=templates&integration-ids=oac_V3R1GIpkoJorr6fqyiwdhl17)\n\n\n\n## Configuration\n\n### Environment Variables\n\n`ENABLE_VERCEL_ANALYTICS` Any truthy value will enable Vercel Analytics. This is turned off by default\n\n## Contributing\n\nThis repository uses `pnpm` to manage dependencies. Install it using\n`npm install -g pnpm`\n\nPlease run `pnpm fmt` before committing to format the code.\n\n## Docs\n\nDocs in the README are temporary and will be moved to the website soon.\n\n### API\n\n#### Store a secret\n\n**PLEASE NEVER EVER UPLOAD UNENCRYPTED SECRETS.**\n\nThis endpoint is only meant to store **already encrypted** secrets. The\nencrypted secrets are stored in plain text.\n\n```sh-session\n$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\"\n```\n\nYou can add optional headers to configure the ttl and number of reads.\n\n```sh-session\n$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\" -H \"envshare-ttl: 3600\" -H \"envshare-reads: 10\"\n```\n\n- Omitting the `envshare-ttl` header will set a default of 30 days. Disable the\n ttl by setting it to 0. (`envshare-ttl: 0`)\n- Omitting the `envshare-reads` header will simply disable it and allow reading\n for an unlimited number of times.\n\nThis endpoint returns a JSON response with the secret id:\n\n```json\n{\n \"data\": {\n \"id\": \"HdPbXgpvUvNk43oxSdK97u\",\n \"ttl\": 86400,\n \"reads\": 2,\n \"expiresAt\": \"2023-01-19T20:47:28.383Z\",\n \"url\": \"http://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"\n }\n}\n```\n\n#### Retrieve a secret\n\nYou need an id to retrieve a secret. The id is returned when you store a secret.\n\n```sh-session\n$ curl -s https://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\n```\n\n```json\n{\n \"data\": {\n \"secret\": \"Hello\",\n \"remainingReads\": 1\n }\n}\n```", - "code": "var Component=(()=>{var cn=Object.create;var O=Object.defineProperty;var ln=Object.getOwnPropertyDescriptor;var un=Object.getOwnPropertyNames;var mn=Object.getPrototypeOf,bn=Object.prototype.hasOwnProperty;var X=(l,n)=>()=>(n||l((n={exports:{}}).exports,n),n.exports),fn=(l,n)=>{for(var _ in n)O(l,_,{get:n[_],enumerable:!0})},ye=(l,n,_,x)=>{if(n&&typeof n==\"object\"||typeof n==\"function\")for(let k of un(n))!bn.call(l,k)&&k!==_&&O(l,k,{get:()=>n[k],enumerable:!(x=ln(n,k))||x.enumerable});return l};var hn=(l,n,_)=>(_=l!=null?cn(mn(l)):{},ye(n||!l||!l.__esModule?O(_,\"default\",{value:l,enumerable:!0}):_,l)),_n=l=>ye(O({},\"__esModule\",{value:!0}),l);var ve=X((gn,ge)=>{ge.exports=React});var Ee=X(H=>{\"use strict\";(function(){\"use strict\";var l=ve(),n=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),x=Symbol.for(\"react.fragment\"),k=Symbol.for(\"react.strict_mode\"),q=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),z=Symbol.for(\"react.context\"),R=Symbol.for(\"react.forward_ref\"),A=Symbol.for(\"react.suspense\"),D=Symbol.for(\"react.suspense_list\"),F=Symbol.for(\"react.memo\"),L=Symbol.for(\"react.lazy\"),Fe=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Te=\"@@iterator\";function we(e){if(e===null||typeof e!=\"object\")return null;var t=J&&e[J]||e[Te];return typeof t==\"function\"?t:null}var g=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function b(e){{for(var t=arguments.length,a=new Array(t>1?t-1:0),o=1;o=1&&m>=0&&d[u]!==f[m];)m--;for(;u>=1&&m>=0;u--,m--)if(d[u]!==f[m]){if(u!==1||m!==1)do if(u--,m--,m<0||d[u]!==f[m]){var h=`\n`+d[u].replace(\" at new \",\" at \");return e.displayName&&h.includes(\"\")&&(h=h.replace(\"\",e.displayName)),typeof e==\"function\"&&w.set(e,h),h}while(u>=1&&m>=0);break}}}finally{V=!1,I.current=c,Ve(),Error.prepareStackTrace=i}var E=e?e.displayName||e.name:\"\",xe=E?T(E):\"\";return typeof e==\"function\"&&w.set(e,xe),xe}function $e(e,t,a){return ie(e,!1)}function Me(e){var t=e.prototype;return!!(t&&t.isReactComponent)}function S(e,t,a){if(e==null)return\"\";if(typeof e==\"function\")return ie(e,Me(e));if(typeof e==\"string\")return T(e);switch(e){case A:return T(\"Suspense\");case D:return T(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case R:return $e(e.render);case F:return S(e.type,t,a);case L:{var o=e,i=o._payload,c=o._init;try{return S(c(i),t,a)}catch{}}}return\"\"}var C=Object.prototype.hasOwnProperty,ce={},le=g.ReactDebugCurrentFrame;function P(e){if(e){var t=e._owner,a=S(e.type,e._source,t?t.type:null);le.setExtraStackFrame(a)}else le.setExtraStackFrame(null)}function We(e,t,a,o,i){{var c=Function.call.bind(C);for(var s in e)if(c(e,s)){var d=void 0;try{if(typeof e[s]!=\"function\"){var f=Error((o||\"React class\")+\": \"+a+\" type `\"+s+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[s]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw f.name=\"Invariant Violation\",f}d=e[s](t,s,o,a,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(u){d=u}d&&!(d instanceof Error)&&(P(i),b(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",o||\"React class\",a,s,typeof d),P(null)),d instanceof Error&&!(d.message in ce)&&(ce[d.message]=!0,P(i),b(\"Failed %s type: %s\",a,d.message),P(null))}}}var Ge=Array.isArray;function Y(e){return Ge(e)}function Xe(e){{var t=typeof Symbol==\"function\"&&Symbol.toStringTag,a=t&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return a}}function He(e){try{return ue(e),!1}catch{return!0}}function ue(e){return\"\"+e}function me(e){if(He(e))return b(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Xe(e)),ue(e)}var U=g.ReactCurrentOwner,qe={key:!0,ref:!0,__self:!0,__source:!0},be,fe,$;$={};function Ke(e){if(C.call(e,\"ref\")){var t=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(t&&t.isReactWarning)return!1}return e.ref!==void 0}function ze(e){if(C.call(e,\"key\")){var t=Object.getOwnPropertyDescriptor(e,\"key\").get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function Je(e,t){if(typeof e.ref==\"string\"&&U.current&&t&&U.current.stateNode!==t){var a=p(U.current.type);$[a]||(b('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(U.current.type),e.ref),$[a]=!0)}}function Ze(e,t){{var a=function(){be||(be=!0,b(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",t))};a.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:a,configurable:!0})}}function Qe(e,t){{var a=function(){fe||(fe=!0,b(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",t))};a.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:a,configurable:!0})}}var en=function(e,t,a,o,i,c,s){var d={$$typeof:n,type:e,key:t,ref:a,props:s,_owner:c};return d._store={},Object.defineProperty(d._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(d,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(d,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(d.props),Object.freeze(d)),d};function nn(e,t,a,o,i){{var c,s={},d=null,f=null;a!==void 0&&(me(a),d=\"\"+a),ze(t)&&(me(t.key),d=\"\"+t.key),Ke(t)&&(f=t.ref,Je(t,i));for(c in t)C.call(t,c)&&!qe.hasOwnProperty(c)&&(s[c]=t[c]);if(e&&e.defaultProps){var u=e.defaultProps;for(c in u)s[c]===void 0&&(s[c]=u[c])}if(d||f){var m=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;d&&Ze(s,m),f&&Qe(s,m)}return en(e,d,f,i,o,U.current,s)}}var M=g.ReactCurrentOwner,he=g.ReactDebugCurrentFrame;function v(e){if(e){var t=e._owner,a=S(e.type,e._source,t?t.type:null);he.setExtraStackFrame(a)}else he.setExtraStackFrame(null)}var W;W=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===n}function _e(){{if(M.current){var e=p(M.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function rn(e){{if(e!==void 0){var t=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),a=e.lineNumber;return`\n\nCheck your code at `+t+\":\"+a+\".\"}return\"\"}}var pe={};function tn(e){{var t=_e();if(!t){var a=typeof e==\"string\"?e:e.displayName||e.name;a&&(t=`\n\nCheck the top-level render call using <`+a+\">.\")}return t}}function Ne(e,t){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var a=tn(t);if(pe[a])return;pe[a]=!0;var o=\"\";e&&e._owner&&e._owner!==M.current&&(o=\" It was passed a child from \"+p(e._owner.type)+\".\"),v(e),b('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',a,o),v(null)}}function ke(e,t){{if(typeof e!=\"object\")return;if(Y(e))for(var a=0;a\",d=\" Did you accidentally export a JSX literal instead of a component?\"):u=typeof e,b(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",u,d)}var m=nn(e,t,a,i,c);if(m==null)return m;if(s){var h=t.children;if(h!==void 0)if(o)if(Y(h)){for(var E=0;E{\"use strict\";je.exports=Ee()});var xn={};fn(xn,{default:()=>kn,frontmatter:()=>pn});var r=hn(Ue()),pn={title:\"envshare.dev\",description:\"EnvShare is a simple tool to share environment variables securely. It uses AES-GCM to encrypt your data before sending it to the server. The encryption key never leaves your browser.\",date:\"2023-01-16\",url:\"https://envshare.dev\",repository:\"chronark/envshare\"};function Re(l){let n=Object.assign({p:\"p\",strong:\"strong\",h2:\"h2\",a:\"a\",span:\"span\",ul:\"ul\",li:\"li\",img:\"img\",h3:\"h3\",code:\"code\",h4:\"h4\",div:\"div\",pre:\"pre\"},l.components);return(0,r.jsxDEV)(r.Fragment,{children:[(0,r.jsxDEV)(n.p,{children:[`EnvShare is a simple tool to share environment variables securely. It uses\n`,(0,r.jsxDEV)(n.strong,{children:\"AES-GCM\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:11,columnNumber:1},this),` to encrypt your data before sending it to the server. The encryption\nkey never leaves your browser.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"features\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#features\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\"},this),\"Features\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Shareable Links:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:16,columnNumber:3},this),` Share your environment variables securely by sending a\nlink`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"End-to-End Encryption:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:18,columnNumber:3},this),` AES-GCM encryption is used to encrypt your data\nbefore sending it to the server`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Limit number of reads:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:20,columnNumber:3},this),\" Limit the number of times a link can be read\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Auto Expire:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:21,columnNumber:3},this),` Automatically expire links and delete data after a certain\ntime`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:21,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.img,{src:\"img/envshare.png\",alt:\"\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:26,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:26,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"built-with\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#built-with\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\"},this),\"Built with\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:28,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:(0,r.jsxDEV)(n.a,{href:\"https://nextjs.org\",children:\"Next.js\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:30,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:(0,r.jsxDEV)(n.a,{href:\"https://tailwindcss.com\",children:\"tailwindcss\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:31,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Deployed on \",(0,r.jsxDEV)(n.a,{href:\"https://vercel.com?utm_source=envshare\",children:\"Vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:32,columnNumber:15},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:32,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Data stored on \",(0,r.jsxDEV)(n.a,{href:\"https://upstash.com?utm_source=envshare\",children:\"Upstash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:33,columnNumber:18},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:33,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"deploy-your-own\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#deploy-your-own\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\"},this),\"Deploy your own\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"Detailed instructions can be found \",(0,r.jsxDEV)(n.a,{href:\"https://envshare.dev/deploy\",children:\"here\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:37,columnNumber:36},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:37,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:`All you need is a Redis database on Upstash and a Vercel account. Click the\nbutton below to clone and deploy:`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:39,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.a,{href:\"https://vercel.com/new/clone?demo-title=EnvShare&demo-description=Simple%20Next.js%20%2B%20Upstash%20app%20to%20share%20environment%20variables%20securely%20using%20AES-GCM%20encryption.&demo-url=https%3A%2F%2Fenvshare.dev%2F&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5SaFBHXp5FBFJbsTzVqIJ3%2Ff0f8382369b7642fd8103debb9025c11%2Fenvshare.png&project-name=EnvShare&repository-name=envshare&repository-url=https%3A%2F%2Fgithub.com%2Fchronark%2Fenvshare&from=templates&integration-ids=oac_V3R1GIpkoJorr6fqyiwdhl17\",children:(0,r.jsxDEV)(n.img,{src:\"https://vercel.com/button\",alt:\"Deploy with Vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:42,columnNumber:2},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:42,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:42,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"configuration\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#configuration\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\"},this),\"Configuration\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:46,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h3,{id:\"environment-variables\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#environment-variables\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\"},this),\"Environment Variables\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:48,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[(0,r.jsxDEV)(n.code,{children:\"ENABLE_VERCEL_ANALYTICS\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:50,columnNumber:1},this),\" Any truthy value will enable Vercel Analytics. This is turned off by default\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:50,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"contributing\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#contributing\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\"},this),\"Contributing\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:52,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"This repository uses \",(0,r.jsxDEV)(n.code,{children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:54,columnNumber:22},this),` to manage dependencies. Install it using\n`,(0,r.jsxDEV)(n.code,{children:\"npm install -g pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:55,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:54,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"Please run \",(0,r.jsxDEV)(n.code,{children:\"pnpm fmt\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:57,columnNumber:12},this),\" before committing to format the code.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:57,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"docs\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#docs\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\"},this),\"Docs\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:59,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"Docs in the README are temporary and will be moved to the website soon.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:61,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h3,{id:\"api\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#api\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\"},this),\"API\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:63,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h4,{id:\"store-a-secret\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#store-a-secret\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\"},this),\"Store a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:65,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.strong,{children:\"PLEASE NEVER EVER UPLOAD UNENCRYPTED SECRETS.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:67,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:67,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"This endpoint is only meant to store \",(0,r.jsxDEV)(n.strong,{children:\"already encrypted\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:69,columnNumber:38},this),` secrets. The\nencrypted secrets are stored in plain text.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:69,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:'$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:72,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"You can add optional headers to configure the ttl and number of reads.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:76,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:'$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\" -H \"envshare-ttl: 3600\" -H \"envshare-reads: 10\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:78,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:[\"Omitting the \",(0,r.jsxDEV)(n.code,{children:\"envshare-ttl\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:82,columnNumber:16},this),` header will set a default of 30 days. Disable the\nttl by setting it to 0. (`,(0,r.jsxDEV)(n.code,{children:\"envshare-ttl: 0\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:83,columnNumber:28},this),\")\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Omitting the \",(0,r.jsxDEV)(n.code,{children:\"envshare-reads\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:84,columnNumber:16},this),` header will simply disable it and allow reading\nfor an unlimited number of times.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:84,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"This endpoint returns a JSON response with the secret id:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:87,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"json\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"json\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"data\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"id\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:3,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:3,columnNumber:110},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"HdPbXgpvUvNk43oxSdK97u\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:3,columnNumber:148},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:3,columnNumber:218},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"ttl\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:4,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:4,columnNumber:111},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"86400\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:4,columnNumber:149},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:4,columnNumber:190},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:5,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"reads\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:5,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:5,columnNumber:113},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"2\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:5,columnNumber:151},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:5,columnNumber:188},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:6,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"expiresAt\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:6,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:6,columnNumber:117},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"2023-01-19T20:47:28.383Z\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:6,columnNumber:155},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:6,columnNumber:227},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:7,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"url\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:7,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:7,columnNumber:111},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"http://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:7,columnNumber:149},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:9,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:89,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h4,{id:\"retrieve-a-secret\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#retrieve-a-secret\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\"},this),\"Retrieve a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:101,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"You need an id to retrieve a secret. The id is returned when you store a secret.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:103,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:\"$ curl -s https://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:105,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"json\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"json\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"data\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"secret\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:3,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:3,columnNumber:114},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"Hello\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:3,columnNumber:152},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:3,columnNumber:205},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"remainingReads\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:4,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:4,columnNumber:122},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:4,columnNumber:160},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:5,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:6,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:109,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\",lineNumber:1,columnNumber:1},this)}function Nn(l={}){let{wrapper:n}=l.components||{};return n?(0,r.jsxDEV)(n,Object.assign({},l,{children:(0,r.jsxDEV)(Re,l,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f3b650-bd46-4b44-af9b-ed54d12e1f35.mdx\"},this):Re(l)}var kn=Nn;return _n(xn);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/envshare.mdx", - "_raw": { - "sourceFilePath": "projects/envshare.mdx", - "sourceFileName": "envshare.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/envshare" - }, - "type": "Project", - "path": "/projects/envshare", - "slug": "envshare" - }, - "documentHash": "1677516594972", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-core-analytics.mdx": { - "document": { - "title": "Upstash Core Analytics", - "description": "Low level utilities to build analytics tools on top of Redis.", - "date": "2023-02-13T00:00:00.000Z", - "url": "https://console.upstash.com/ratelimit", - "repository": "upstash/core-analytics", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var fr=Object.getOwnPropertyDescriptor;var cr=Object.getOwnPropertyNames;var lr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,f)=>()=>(f||s((f={exports:{}}).exports,f),f.exports),vr=(s,f)=>{for(var b in f)F(s,b,{get:f[b],enumerable:!0})},_e=(s,f,b,E)=>{if(f&&typeof f==\"object\"||typeof f==\"function\")for(let m of cr(f))!dr.call(s,m)&&m!==b&&F(s,m,{get:()=>f[m],enumerable:!(E=fr(f,m))||E.enumerable});return s};var pr=(s,f,b)=>(b=s!=null?sr(lr(s)):{},_e(f||!s||!s.__esModule?F(b,\"default\",{value:s,enumerable:!0}):b,s)),br=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),f=Symbol.for(\"react.element\"),b=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&l>=0&&a[c]!==v[l];)l--;for(;c>=1&&l>=0;c--,l--)if(a[c]!==v[l]){if(c!==1||l!==1)do if(c--,l--,l<0||a[c]!==v[l]){var p=`\n`+a[c].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(c>=1&&l>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,fe={},ce=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);ce.setExtraStackFrame(t)}else ce.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(c){a=c}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in fe)&&(fe[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return le(e),!1}catch{return!0}}function le(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),le(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=h(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',h(O.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:f,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var c=e.defaultProps;for(u in c)o[u]===void 0&&(o[u]=c[u])}if(a||v){var l=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,l),v&&Qe(o,l)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,be=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===f}function he(){{if(L.current){var e=h(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=he();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+h(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):c=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",c,a)}var l=rr(e,r,t,i,u);if(l==null)return l;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>hr});var A=pr(we()),hr={title:\"Upstash Core Analytics\",description:\"Low level utilities to build analytics tools on top of Redis.\",date:\"2023-02-13\",url:\"https://console.upstash.com/ratelimit\",repository:\"upstash/core-analytics\"};function Pe(s){let f=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(f.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-045a1f85-3e1d-480f-af18-c8dfd95b2bbc.mdx\",lineNumber:10,columnNumber:1},this)}function gr(s={}){let{wrapper:f}=s.components||{};return f?(0,A.jsxDEV)(f,Object.assign({},s,{children:(0,A.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-045a1f85-3e1d-480f-af18-c8dfd95b2bbc.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-045a1f85-3e1d-480f-af18-c8dfd95b2bbc.mdx\"},this):Pe(s)}var mr=gr;return br(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-core-analytics.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-core-analytics.mdx", - "sourceFileName": "upstash-core-analytics.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-core-analytics" - }, - "type": "Project", - "path": "/projects/upstash-core-analytics", - "slug": "upstash-core-analytics" - }, - "documentHash": "1677516952361", - "hasWarnings": false, - "documentTypeName": "Project" - }, - "projects/upstash-qstash-sdk.mdx": { - "document": { - "title": "QStash SDK", - "description": "A typescript client and consumer for QStash.", - "date": "2023-07-18T00:00:00.000Z", - "url": "https://upstash.com/qstash", - "repository": "upstash/sdk-qstash-ts", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var fr=Object.getOwnPropertyNames;var lr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var G=(s,c)=>()=>(c||s((c={exports:{}}).exports,c),c.exports),vr=(s,c)=>{for(var h in c)F(s,h,{get:c[h],enumerable:!0})},_e=(s,c,h,E)=>{if(c&&typeof c==\"object\"||typeof c==\"function\")for(let m of fr(c))!dr.call(s,m)&&m!==h&&F(s,m,{get:()=>c[m],enumerable:!(E=cr(c,m))||E.enumerable});return s};var pr=(s,c,h)=>(h=s!=null?sr(lr(s)):{},_e(c||!s||!s.__esModule?F(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=G((_r,Re)=>{Re.exports=React});var Ce=G(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),c=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),K=Symbol.for(\"react.profiler\"),X=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),S=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),w=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Pe=Symbol.for(\"react.offscreen\"),Q=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=Q&&e[Q]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&l>=0&&a[f]!==v[l];)l--;for(;f>=1&&l>=0;f--,l--)if(a[f]!==v[l]){if(f!==1||l!==1)do if(f--,l--,l<0||a[f]!==v[l]){var p=`\n`+a[f].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(f>=1&&l>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?P(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return P(e);switch(e){case I:return P(\"Suspense\");case Y:return P(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case S:return Ue(e.render);case w:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,ce={},fe=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){a=f}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var qe=Array.isArray;function V(e){return qe(e)}function Ge(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return le(e),!1}catch{return!0}}function le(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Ge(e)),le(e)}var O=_.ReactCurrentOwner,Ke={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Xe(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Qe(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=b(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',b(O.current.type),e.ref),U[t]=!0)}}function Je(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Ze(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:c,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Xe(r)&&(v=r.ref,Qe(r,i));for(u in r)k.call(r,u)&&!Ke.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var f=e.defaultProps;for(u in f)o[u]===void 0&&(o[u]=f[u])}if(a||v){var l=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Je(o,l),v&&Ze(o,l)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var B;B=!1;function q(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===c}function be(){{if(L.current){var e=b(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=be();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+b(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):f=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",f,a)}var l=rr(e,r,t,i,u);if(l==null)return l;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>br});var A=pr(Se()),br={title:\"QStash SDK\",description:\"A typescript client and consumer for QStash.\",date:\"2023-07-18\",url:\"https://upstash.com/qstash\",repository:\"upstash/sdk-qstash-ts\"};function we(s){let c=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(c.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d96b6931-37cb-43a3-9da5-d98fb72dfd26.mdx\",lineNumber:9,columnNumber:1},this)}function gr(s={}){let{wrapper:c}=s.components||{};return c?(0,A.jsxDEV)(c,Object.assign({},s,{children:(0,A.jsxDEV)(we,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d96b6931-37cb-43a3-9da5-d98fb72dfd26.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d96b6931-37cb-43a3-9da5-d98fb72dfd26.mdx\"},this):we(s)}var mr=gr;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-qstash-sdk.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-qstash-sdk.mdx", - "sourceFileName": "upstash-qstash-sdk.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-qstash-sdk" - }, - "type": "Project", - "path": "/projects/upstash-qstash-sdk", - "slug": "upstash-qstash-sdk" - }, - "documentHash": "1677516964793", - "hasWarnings": false, - "documentTypeName": "Project" - } - } -} diff --git a/.contentlayer/generated/Page/_index.json b/.contentlayer/generated/Page/_index.json deleted file mode 100644 index 0637a08..0000000 --- a/.contentlayer/generated/Page/_index.json +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/.contentlayer/generated/Page/_index.mjs b/.contentlayer/generated/Page/_index.mjs deleted file mode 100644 index 666b015..0000000 --- a/.contentlayer/generated/Page/_index.mjs +++ /dev/null @@ -1,3 +0,0 @@ -// NOTE This file is auto-generated by Contentlayer - -export const allPages = []; diff --git a/.contentlayer/generated/Project/_index.json b/.contentlayer/generated/Project/_index.json deleted file mode 100644 index 1f18b56..0000000 --- a/.contentlayer/generated/Project/_index.json +++ /dev/null @@ -1,340 +0,0 @@ -[ - { - "published": true, - "title": "@chronark/access", - "description": "A minimal library for access control. It is designed to be used together with opaque access tokens by providing a simple interface to define roles with different access permissions and verifying requests to resources.", - "date": "2022-11-13T00:00:00.000Z", - "repository": "chronark/access", - "body": { - "raw": "A minimal library for access control. It is designed to be used together with opaque access tokens by providing a simple interface to define roles with different access permissions and verifying requests to resources.\n\n- Fully typed\n- Zero dependencies\n- Serializable to store in a database\n\n## Install\n\n```sh-session\nnpm i @chronark/access\n```\n\n## Usage\n\n```ts\nimport { AccessControl, Role } from \"@chronark/access\";\n\n/**\n * Define all your resources and their access patterns\n *\n * key => resource\n * value => array of access types\n */\ntype Statements = {\n user: [\"read\", \"write\", \"dance\"];\n team: [\"read\", \"write\"];\n};\n\n/**\n * Create an access control instance and pass the Statements type to enjoy full\n * type safety\n */\nconst ac = new AccessControl();\n\n/**\n * Now you can define one or more roles by specifying the access permissions\n *\n * This is already fully typed and typescript will let you know if you try to\n * use anything, that is not defined in the Statements type.\n */\nconst role = ac.newRole({\n user: [\"read\", \"write\"],\n team: [\"read\"],\n});\n\n/**\n * Simulate storing and retrieving the role in a database\n *\n * The idea here is, that you can store permissions alongside an API token.\n * Now, when you verify the token, you can also verify the access permissions.\n */\nconst serialized = role.toString();\n\n/**\n * Note how you can pass in the Statements type again, to get full type safety\n */\nconst recovered = Role.fromString(serialized);\n\n/**\n * Validate the role by specifying the resource and the required access\n *\n * everything is fully typed\n */\nconst res = recovered.authorize({\"team\", [\"read\"]});\n\n// res.success => boolean\n// res.error => string | undefined provides a reason for failure\n```", - "code": "var Component=(()=>{var sn=Object.create;var S=Object.defineProperty;var ln=Object.getOwnPropertyDescriptor;var mn=Object.getOwnPropertyNames;var un=Object.getPrototypeOf,fn=Object.prototype.hasOwnProperty;var z=(l,e)=>()=>(e||l((e={exports:{}}).exports,e),e.exports),hn=(l,e)=>{for(var _ in e)S(l,_,{get:e[_],enumerable:!0})},xe=(l,e,_,k)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let y of mn(e))!fn.call(l,y)&&y!==_&&S(l,y,{get:()=>e[y],enumerable:!(k=ln(e,y))||k.enumerable});return l};var bn=(l,e,_)=>(_=l!=null?sn(un(l)):{},xe(e||!l||!l.__esModule?S(_,\"default\",{value:l,enumerable:!0}):_,l)),_n=l=>xe(S({},\"__esModule\",{value:!0}),l);var Ee=z((gn,ge)=>{ge.exports=React});var je=z(G=>{\"use strict\";(function(){\"use strict\";var l=Ee(),e=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),k=Symbol.for(\"react.fragment\"),y=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),F=Symbol.for(\"react.forward_ref\"),O=Symbol.for(\"react.suspense\"),P=Symbol.for(\"react.suspense_list\"),R=Symbol.for(\"react.memo\"),B=Symbol.for(\"react.lazy\"),Re=Symbol.for(\"react.offscreen\"),Z=Symbol.iterator,Ce=\"@@iterator\";function De(n){if(n===null||typeof n!=\"object\")return null;var a=Z&&n[Z]||n[Ce];return typeof a==\"function\"?a:null}var g=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function f(n){{for(var a=arguments.length,d=new Array(a>1?a-1:0),c=1;c=1&&u>=0&&t[m]!==h[u];)u--;for(;m>=1&&u>=0;m--,u--)if(t[m]!==h[u]){if(m!==1||u!==1)do if(m--,u--,u<0||t[m]!==h[u]){var b=`\n`+t[m].replace(\" at new \",\" at \");return n.displayName&&b.includes(\"\")&&(b=b.replace(\"\",n.displayName)),typeof n==\"function\"&&D.set(n,b),b}while(m>=1&&u>=0);break}}}finally{$=!1,I.current=i,$e(),Error.prepareStackTrace=s}var j=n?n.displayName||n.name:\"\",ke=j?C(j):\"\";return typeof n==\"function\"&&D.set(n,ke),ke}function Ve(n,a,d){return se(n,!1)}function Me(n){var a=n.prototype;return!!(a&&a.isReactComponent)}function w(n,a,d){if(n==null)return\"\";if(typeof n==\"function\")return se(n,Me(n));if(typeof n==\"string\")return C(n);switch(n){case O:return C(\"Suspense\");case P:return C(\"SuspenseList\")}if(typeof n==\"object\")switch(n.$$typeof){case F:return Ve(n.render);case R:return w(n.type,a,d);case B:{var c=n,s=c._payload,i=c._init;try{return w(i(s),a,d)}catch{}}}return\"\"}var T=Object.prototype.hasOwnProperty,ie={},le=g.ReactDebugCurrentFrame;function A(n){if(n){var a=n._owner,d=w(n.type,n._source,a?a.type:null);le.setExtraStackFrame(d)}else le.setExtraStackFrame(null)}function Le(n,a,d,c,s){{var i=Function.call.bind(T);for(var o in n)if(i(n,o)){var t=void 0;try{if(typeof n[o]!=\"function\"){var h=Error((c||\"React class\")+\": \"+d+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof n[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw h.name=\"Invariant Violation\",h}t=n[o](a,o,c,d,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(m){t=m}t&&!(t instanceof Error)&&(A(s),f(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",c||\"React class\",d,o,typeof t),A(null)),t instanceof Error&&!(t.message in ie)&&(ie[t.message]=!0,A(s),f(\"Failed %s type: %s\",d,t.message),A(null))}}}var qe=Array.isArray;function W(n){return qe(n)}function ze(n){{var a=typeof Symbol==\"function\"&&Symbol.toStringTag,d=a&&n[Symbol.toStringTag]||n.constructor.name||\"Object\";return d}}function Ge(n){try{return me(n),!1}catch{return!0}}function me(n){return\"\"+n}function ue(n){if(Ge(n))return f(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",ze(n)),me(n)}var v=g.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},fe,he,V;V={};function Ke(n){if(T.call(n,\"ref\")){var a=Object.getOwnPropertyDescriptor(n,\"ref\").get;if(a&&a.isReactWarning)return!1}return n.ref!==void 0}function He(n){if(T.call(n,\"key\")){var a=Object.getOwnPropertyDescriptor(n,\"key\").get;if(a&&a.isReactWarning)return!1}return n.key!==void 0}function Ze(n,a){if(typeof n.ref==\"string\"&&v.current&&a&&v.current.stateNode!==a){var d=p(v.current.type);V[d]||(f('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(v.current.type),n.ref),V[d]=!0)}}function Je(n,a){{var d=function(){fe||(fe=!0,f(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};d.isReactWarning=!0,Object.defineProperty(n,\"key\",{get:d,configurable:!0})}}function Qe(n,a){{var d=function(){he||(he=!0,f(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};d.isReactWarning=!0,Object.defineProperty(n,\"ref\",{get:d,configurable:!0})}}var en=function(n,a,d,c,s,i,o){var t={$$typeof:e,type:n,key:a,ref:d,props:o,_owner:i};return t._store={},Object.defineProperty(t._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(t,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:c}),Object.defineProperty(t,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:s}),Object.freeze&&(Object.freeze(t.props),Object.freeze(t)),t};function nn(n,a,d,c,s){{var i,o={},t=null,h=null;d!==void 0&&(ue(d),t=\"\"+d),He(a)&&(ue(a.key),t=\"\"+a.key),Ke(a)&&(h=a.ref,Ze(a,s));for(i in a)T.call(a,i)&&!Xe.hasOwnProperty(i)&&(o[i]=a[i]);if(n&&n.defaultProps){var m=n.defaultProps;for(i in m)o[i]===void 0&&(o[i]=m[i])}if(t||h){var u=typeof n==\"function\"?n.displayName||n.name||\"Unknown\":n;t&&Je(o,u),h&&Qe(o,u)}return en(n,t,h,s,c,v.current,o)}}var M=g.ReactCurrentOwner,be=g.ReactDebugCurrentFrame;function E(n){if(n){var a=n._owner,d=w(n.type,n._source,a?a.type:null);be.setExtraStackFrame(d)}else be.setExtraStackFrame(null)}var L;L=!1;function q(n){return typeof n==\"object\"&&n!==null&&n.$$typeof===e}function _e(){{if(M.current){var n=p(M.current.type);if(n)return`\n\nCheck the render method of \\``+n+\"`.\"}return\"\"}}function rn(n){{if(n!==void 0){var a=n.fileName.replace(/^.*[\\\\\\/]/,\"\"),d=n.lineNumber;return`\n\nCheck your code at `+a+\":\"+d+\".\"}return\"\"}}var pe={};function an(n){{var a=_e();if(!a){var d=typeof n==\"string\"?n:n.displayName||n.name;d&&(a=`\n\nCheck the top-level render call using <`+d+\">.\")}return a}}function Ne(n,a){{if(!n._store||n._store.validated||n.key!=null)return;n._store.validated=!0;var d=an(a);if(pe[d])return;pe[d]=!0;var c=\"\";n&&n._owner&&n._owner!==M.current&&(c=\" It was passed a child from \"+p(n._owner.type)+\".\"),E(n),f('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',d,c),E(null)}}function ye(n,a){{if(typeof n!=\"object\")return;if(W(n))for(var d=0;d\",t=\" Did you accidentally export a JSX literal instead of a component?\"):m=typeof n,f(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",m,t)}var u=nn(n,a,d,s,i);if(u==null)return u;if(o){var b=a.children;if(b!==void 0)if(c)if(W(b)){for(var j=0;j{\"use strict\";Ue.exports=je()});var kn={};hn(kn,{default:()=>yn,frontmatter:()=>pn});var r=bn(ve()),pn={title:\"@chronark/access\",description:\"A minimal library for access control. It is designed to be used together with opaque access tokens by providing a simple interface to define roles with different access permissions and verifying requests to resources.\",repository:\"chronark/access\",date:\"2022-11-13\",published:!0};function Fe(l){let e=Object.assign({p:\"p\",ul:\"ul\",li:\"li\",h2:\"h2\",a:\"a\",span:\"span\",div:\"div\",pre:\"pre\",code:\"code\"},l.components);return(0,r.jsxDEV)(r.Fragment,{children:[(0,r.jsxDEV)(e.p,{children:\"A minimal library for access control. It is designed to be used together with opaque access tokens by providing a simple interface to define roles with different access permissions and verifying requests to resources.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ul,{children:[`\n`,(0,r.jsxDEV)(e.li,{children:\"Fully typed\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:\"Zero dependencies\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:\"Serializable to store in a database\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:13,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h2,{id:\"install\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#install\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\"},this),\"Install\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\"npm i @chronark/access\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h2,{id:\"usage\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#usage\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\"},this),\"Usage\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:21,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:104},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" { AccessControl, Role } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:146},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:207},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:247},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"@chronark/access\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:284},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\";\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:348},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:3,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Define all your resources and their access patterns\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:4,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" *\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:5,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * key => resource\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * value => array of access types\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"type\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:60},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"Statements\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:97},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:143},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:180},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:217},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\"user\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:58},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\":\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:135},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:173},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:225},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"write\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:263},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:316},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"dance\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:354},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"];\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:407},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\"team\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:58},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\":\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:135},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:173},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:225},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"write\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:263},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"];\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:316},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"};\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:12,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:14,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Create an access control instance and pass the Statements type to enjoy full\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:15,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * type safety\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:16,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:17,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"ac\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:136},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:173},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:210},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"new\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:247},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:286},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"AccessControl\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:323},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"<\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:372},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"Statements\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:412},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\">();\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:458},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:20,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Now you can define one or more roles by specifying the access permissions\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:21,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:21,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" *\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:22,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:22,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * This is already fully typed and typescript will let you know if you try to\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:23,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:23,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * use anything, that is not defined in the Statements type.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:24,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:24,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:25,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:25,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"role\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:138},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:175},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" ac.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:212},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"newRole\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:252},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:295},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" user: [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:27,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:27,columnNumber:65},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:27,columnNumber:117},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"write\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:27,columnNumber:155},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"],\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:27,columnNumber:208},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:27,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" team: [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:28,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:28,columnNumber:65},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"],\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:28,columnNumber:117},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:28,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"});\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:29,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:29,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:31,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Simulate storing and retrieving the role in a database\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:32,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:32,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" *\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:33,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:33,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * The idea here is, that you can store permissions alongside an API token.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:34,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:34,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Now, when you verify the token, you can also verify the access permissions.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:35,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:36,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:36,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"serialized\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:144},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:181},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" role.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:218},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"toString\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:260},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"();\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:304},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:38,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:39,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:39,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Note how you can pass in the Statements type again, to get full type safety\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:40,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:40,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:41,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:41,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"recovered\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:143},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:180},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" Role.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:217},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"fromString\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:259},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"<\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:305},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"Statements\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:345},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\">(serialized);\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:391},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:43,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:44,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:44,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Validate the role by specifying the resource and the required access\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:45,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:45,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" *\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:46,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:46,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * everything is fully typed\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:47,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:47,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:48,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:48,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"res\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:137},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:174},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" recovered.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:211},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"authorize\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:258},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:303},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"team\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:341},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:393},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:432},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"]});\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:484},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:50,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// res.success => boolean\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:51,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:51,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// res.error => string | undefined provides a reason for failure\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:52,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:52,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:23,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:1},this)}function Nn(l={}){let{wrapper:e}=l.components||{};return e?(0,r.jsxDEV)(e,Object.assign({},l,{children:(0,r.jsxDEV)(Fe,l,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\"},this):Fe(l)}var yn=Nn;return _n(kn);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/access.mdx", - "_raw": { - "sourceFilePath": "projects/access.mdx", - "sourceFileName": "access.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/access" - }, - "type": "Project", - "path": "/projects/access", - "slug": "access" - }, - { - "published": true, - "title": "envshare.dev", - "description": "EnvShare is a simple tool to share environment variables securely. It uses AES-GCM to encrypt your data before sending it to the server. The encryption key never leaves your browser.", - "date": "2023-01-16T00:00:00.000Z", - "url": "https://envshare.dev", - "repository": "chronark/envshare", - "body": { - "raw": "\nEnvShare is a simple tool to share environment variables securely. It uses\n**AES-GCM** to encrypt your data before sending it to the server. The encryption\nkey never leaves your browser.\n\n## Features\n\n- **Shareable Links:** Share your environment variables securely by sending a\n link\n- **End-to-End Encryption:** AES-GCM encryption is used to encrypt your data\n before sending it to the server\n- **Limit number of reads:** Limit the number of times a link can be read\n- **Auto Expire:** Automatically expire links and delete data after a certain\n time\n\n\n\n![](https://github.com/chronark/envshare/raw/main/img/envshare.png)\n\n## Built with\n\n- [Next.js](https://nextjs.org)\n- [tailwindcss](https://tailwindcss.com)\n- Deployed on [Vercel](https://vercel.com?utm_source=envshare)\n- Data stored on [Upstash](https://upstash.com?utm_source=envshare)\n\n## Deploy your own\n\nDetailed instructions can be found [here](https://envshare.dev/deploy)\n\nAll you need is a Redis database on Upstash and a Vercel account. Click the\nbutton below to clone and deploy:\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?demo-title=EnvShare&demo-description=Simple%20Next.js%20%2B%20Upstash%20app%20to%20share%20environment%20variables%20securely%20using%20AES-GCM%20encryption.&demo-url=https%3A%2F%2Fenvshare.dev%2F&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5SaFBHXp5FBFJbsTzVqIJ3%2Ff0f8382369b7642fd8103debb9025c11%2Fenvshare.png&project-name=EnvShare&repository-name=envshare&repository-url=https%3A%2F%2Fgithub.com%2Fchronark%2Fenvshare&from=templates&integration-ids=oac_V3R1GIpkoJorr6fqyiwdhl17)\n\n\n\n## Configuration\n\n### Environment Variables\n\n`ENABLE_VERCEL_ANALYTICS` Any truthy value will enable Vercel Analytics. This is turned off by default\n\n## Contributing\n\nThis repository uses `pnpm` to manage dependencies. Install it using\n`npm install -g pnpm`\n\nPlease run `pnpm fmt` before committing to format the code.\n\n## Docs\n\nDocs in the README are temporary and will be moved to the website soon.\n\n### API\n\n#### Store a secret\n\n**PLEASE NEVER EVER UPLOAD UNENCRYPTED SECRETS.**\n\nThis endpoint is only meant to store **already encrypted** secrets. The\nencrypted secrets are stored in plain text.\n\n```sh-session\n$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\"\n```\n\nYou can add optional headers to configure the ttl and number of reads.\n\n```sh-session\n$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\" -H \"envshare-ttl: 3600\" -H \"envshare-reads: 10\"\n```\n\n- Omitting the `envshare-ttl` header will set a default of 30 days. Disable the\n ttl by setting it to 0. (`envshare-ttl: 0`)\n- Omitting the `envshare-reads` header will simply disable it and allow reading\n for an unlimited number of times.\n\nThis endpoint returns a JSON response with the secret id:\n\n```json\n{\n \"data\": {\n \"id\": \"HdPbXgpvUvNk43oxSdK97u\",\n \"ttl\": 86400,\n \"reads\": 2,\n \"expiresAt\": \"2023-01-19T20:47:28.383Z\",\n \"url\": \"http://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"\n }\n}\n```\n\n#### Retrieve a secret\n\nYou need an id to retrieve a secret. The id is returned when you store a secret.\n\n```sh-session\n$ curl -s https://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\n```\n\n```json\n{\n \"data\": {\n \"secret\": \"Hello\",\n \"remainingReads\": 1\n }\n}\n```", - "code": "var Component=(()=>{var ln=Object.create;var O=Object.defineProperty;var dn=Object.getOwnPropertyDescriptor;var un=Object.getOwnPropertyNames;var mn=Object.getPrototypeOf,bn=Object.prototype.hasOwnProperty;var X=(d,n)=>()=>(n||d((n={exports:{}}).exports,n),n.exports),hn=(d,n)=>{for(var _ in n)O(d,_,{get:n[_],enumerable:!0})},ye=(d,n,_,x)=>{if(n&&typeof n==\"object\"||typeof n==\"function\")for(let k of un(n))!bn.call(d,k)&&k!==_&&O(d,k,{get:()=>n[k],enumerable:!(x=dn(n,k))||x.enumerable});return d};var fn=(d,n,_)=>(_=d!=null?ln(mn(d)):{},ye(n||!d||!d.__esModule?O(_,\"default\",{value:d,enumerable:!0}):_,d)),_n=d=>ye(O({},\"__esModule\",{value:!0}),d);var ve=X((gn,ge)=>{ge.exports=React});var Ee=X(H=>{\"use strict\";(function(){\"use strict\";var d=ve(),n=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),x=Symbol.for(\"react.fragment\"),k=Symbol.for(\"react.strict_mode\"),q=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),z=Symbol.for(\"react.context\"),R=Symbol.for(\"react.forward_ref\"),A=Symbol.for(\"react.suspense\"),D=Symbol.for(\"react.suspense_list\"),F=Symbol.for(\"react.memo\"),L=Symbol.for(\"react.lazy\"),Fe=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Te=\"@@iterator\";function we(e){if(e===null||typeof e!=\"object\")return null;var t=J&&e[J]||e[Te];return typeof t==\"function\"?t:null}var g=d.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function b(e){{for(var t=arguments.length,a=new Array(t>1?t-1:0),o=1;o=1&&m>=0&&s[u]!==h[m];)m--;for(;u>=1&&m>=0;u--,m--)if(s[u]!==h[m]){if(u!==1||m!==1)do if(u--,m--,m<0||s[u]!==h[m]){var f=`\n`+s[u].replace(\" at new \",\" at \");return e.displayName&&f.includes(\"\")&&(f=f.replace(\"\",e.displayName)),typeof e==\"function\"&&w.set(e,f),f}while(u>=1&&m>=0);break}}}finally{V=!1,I.current=l,Ve(),Error.prepareStackTrace=c}var E=e?e.displayName||e.name:\"\",xe=E?T(E):\"\";return typeof e==\"function\"&&w.set(e,xe),xe}function $e(e,t,a){return ce(e,!1)}function Me(e){var t=e.prototype;return!!(t&&t.isReactComponent)}function S(e,t,a){if(e==null)return\"\";if(typeof e==\"function\")return ce(e,Me(e));if(typeof e==\"string\")return T(e);switch(e){case A:return T(\"Suspense\");case D:return T(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case R:return $e(e.render);case F:return S(e.type,t,a);case L:{var o=e,c=o._payload,l=o._init;try{return S(l(c),t,a)}catch{}}}return\"\"}var C=Object.prototype.hasOwnProperty,le={},de=g.ReactDebugCurrentFrame;function P(e){if(e){var t=e._owner,a=S(e.type,e._source,t?t.type:null);de.setExtraStackFrame(a)}else de.setExtraStackFrame(null)}function We(e,t,a,o,c){{var l=Function.call.bind(C);for(var i in e)if(l(e,i)){var s=void 0;try{if(typeof e[i]!=\"function\"){var h=Error((o||\"React class\")+\": \"+a+\" type `\"+i+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[i]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw h.name=\"Invariant Violation\",h}s=e[i](t,i,o,a,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(u){s=u}s&&!(s instanceof Error)&&(P(c),b(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",o||\"React class\",a,i,typeof s),P(null)),s instanceof Error&&!(s.message in le)&&(le[s.message]=!0,P(c),b(\"Failed %s type: %s\",a,s.message),P(null))}}}var Ge=Array.isArray;function Y(e){return Ge(e)}function Xe(e){{var t=typeof Symbol==\"function\"&&Symbol.toStringTag,a=t&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return a}}function He(e){try{return ue(e),!1}catch{return!0}}function ue(e){return\"\"+e}function me(e){if(He(e))return b(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Xe(e)),ue(e)}var U=g.ReactCurrentOwner,qe={key:!0,ref:!0,__self:!0,__source:!0},be,he,$;$={};function Ke(e){if(C.call(e,\"ref\")){var t=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(t&&t.isReactWarning)return!1}return e.ref!==void 0}function ze(e){if(C.call(e,\"key\")){var t=Object.getOwnPropertyDescriptor(e,\"key\").get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function Je(e,t){if(typeof e.ref==\"string\"&&U.current&&t&&U.current.stateNode!==t){var a=p(U.current.type);$[a]||(b('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(U.current.type),e.ref),$[a]=!0)}}function Ze(e,t){{var a=function(){be||(be=!0,b(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",t))};a.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:a,configurable:!0})}}function Qe(e,t){{var a=function(){he||(he=!0,b(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",t))};a.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:a,configurable:!0})}}var en=function(e,t,a,o,c,l,i){var s={$$typeof:n,type:e,key:t,ref:a,props:i,_owner:l};return s._store={},Object.defineProperty(s._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(s,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(s,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:c}),Object.freeze&&(Object.freeze(s.props),Object.freeze(s)),s};function nn(e,t,a,o,c){{var l,i={},s=null,h=null;a!==void 0&&(me(a),s=\"\"+a),ze(t)&&(me(t.key),s=\"\"+t.key),Ke(t)&&(h=t.ref,Je(t,c));for(l in t)C.call(t,l)&&!qe.hasOwnProperty(l)&&(i[l]=t[l]);if(e&&e.defaultProps){var u=e.defaultProps;for(l in u)i[l]===void 0&&(i[l]=u[l])}if(s||h){var m=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;s&&Ze(i,m),h&&Qe(i,m)}return en(e,s,h,c,o,U.current,i)}}var M=g.ReactCurrentOwner,fe=g.ReactDebugCurrentFrame;function v(e){if(e){var t=e._owner,a=S(e.type,e._source,t?t.type:null);fe.setExtraStackFrame(a)}else fe.setExtraStackFrame(null)}var W;W=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===n}function _e(){{if(M.current){var e=p(M.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function rn(e){{if(e!==void 0){var t=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),a=e.lineNumber;return`\n\nCheck your code at `+t+\":\"+a+\".\"}return\"\"}}var pe={};function tn(e){{var t=_e();if(!t){var a=typeof e==\"string\"?e:e.displayName||e.name;a&&(t=`\n\nCheck the top-level render call using <`+a+\">.\")}return t}}function Ne(e,t){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var a=tn(t);if(pe[a])return;pe[a]=!0;var o=\"\";e&&e._owner&&e._owner!==M.current&&(o=\" It was passed a child from \"+p(e._owner.type)+\".\"),v(e),b('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',a,o),v(null)}}function ke(e,t){{if(typeof e!=\"object\")return;if(Y(e))for(var a=0;a\",s=\" Did you accidentally export a JSX literal instead of a component?\"):u=typeof e,b(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",u,s)}var m=nn(e,t,a,c,l);if(m==null)return m;if(i){var f=t.children;if(f!==void 0)if(o)if(Y(f)){for(var E=0;E{\"use strict\";je.exports=Ee()});var xn={};hn(xn,{default:()=>kn,frontmatter:()=>pn});var r=fn(Ue()),pn={title:\"envshare.dev\",description:\"EnvShare is a simple tool to share environment variables securely. It uses AES-GCM to encrypt your data before sending it to the server. The encryption key never leaves your browser.\",date:\"2023-01-16\",url:\"https://envshare.dev\",repository:\"chronark/envshare\",published:!0};function Re(d){let n=Object.assign({p:\"p\",strong:\"strong\",h2:\"h2\",a:\"a\",span:\"span\",ul:\"ul\",li:\"li\",img:\"img\",h3:\"h3\",code:\"code\",h4:\"h4\",div:\"div\",pre:\"pre\"},d.components);return(0,r.jsxDEV)(r.Fragment,{children:[(0,r.jsxDEV)(n.p,{children:[`EnvShare is a simple tool to share environment variables securely. It uses\n`,(0,r.jsxDEV)(n.strong,{children:\"AES-GCM\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:11,columnNumber:1},this),` to encrypt your data before sending it to the server. The encryption\nkey never leaves your browser.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"features\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#features\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Features\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Shareable Links:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:16,columnNumber:3},this),` Share your environment variables securely by sending a\nlink`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"End-to-End Encryption:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:18,columnNumber:3},this),` AES-GCM encryption is used to encrypt your data\nbefore sending it to the server`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Limit number of reads:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:20,columnNumber:3},this),\" Limit the number of times a link can be read\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Auto Expire:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:21,columnNumber:3},this),` Automatically expire links and delete data after a certain\ntime`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:21,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.img,{src:\"https://github.com/chronark/envshare/raw/main/img/envshare.png\",alt:\"\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:26,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:26,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"built-with\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#built-with\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Built with\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:28,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:(0,r.jsxDEV)(n.a,{href:\"https://nextjs.org\",children:\"Next.js\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:30,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:(0,r.jsxDEV)(n.a,{href:\"https://tailwindcss.com\",children:\"tailwindcss\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:31,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Deployed on \",(0,r.jsxDEV)(n.a,{href:\"https://vercel.com?utm_source=envshare\",children:\"Vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:32,columnNumber:15},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:32,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Data stored on \",(0,r.jsxDEV)(n.a,{href:\"https://upstash.com?utm_source=envshare\",children:\"Upstash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:33,columnNumber:18},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:33,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"deploy-your-own\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#deploy-your-own\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Deploy your own\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"Detailed instructions can be found \",(0,r.jsxDEV)(n.a,{href:\"https://envshare.dev/deploy\",children:\"here\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:37,columnNumber:36},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:37,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:`All you need is a Redis database on Upstash and a Vercel account. Click the\nbutton below to clone and deploy:`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:39,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.a,{href:\"https://vercel.com/new/clone?demo-title=EnvShare&demo-description=Simple%20Next.js%20%2B%20Upstash%20app%20to%20share%20environment%20variables%20securely%20using%20AES-GCM%20encryption.&demo-url=https%3A%2F%2Fenvshare.dev%2F&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5SaFBHXp5FBFJbsTzVqIJ3%2Ff0f8382369b7642fd8103debb9025c11%2Fenvshare.png&project-name=EnvShare&repository-name=envshare&repository-url=https%3A%2F%2Fgithub.com%2Fchronark%2Fenvshare&from=templates&integration-ids=oac_V3R1GIpkoJorr6fqyiwdhl17\",children:(0,r.jsxDEV)(n.img,{src:\"https://vercel.com/button\",alt:\"Deploy with Vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:42,columnNumber:2},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:42,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:42,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"configuration\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#configuration\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Configuration\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:46,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h3,{id:\"environment-variables\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#environment-variables\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Environment Variables\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:48,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[(0,r.jsxDEV)(n.code,{children:\"ENABLE_VERCEL_ANALYTICS\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:50,columnNumber:1},this),\" Any truthy value will enable Vercel Analytics. This is turned off by default\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:50,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"contributing\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#contributing\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Contributing\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:52,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"This repository uses \",(0,r.jsxDEV)(n.code,{children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:54,columnNumber:22},this),` to manage dependencies. Install it using\n`,(0,r.jsxDEV)(n.code,{children:\"npm install -g pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:55,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:54,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"Please run \",(0,r.jsxDEV)(n.code,{children:\"pnpm fmt\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:57,columnNumber:12},this),\" before committing to format the code.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:57,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"docs\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#docs\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Docs\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:59,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"Docs in the README are temporary and will be moved to the website soon.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:61,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h3,{id:\"api\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#api\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"API\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:63,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h4,{id:\"store-a-secret\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#store-a-secret\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Store a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:65,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.strong,{children:\"PLEASE NEVER EVER UPLOAD UNENCRYPTED SECRETS.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:67,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:67,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"This endpoint is only meant to store \",(0,r.jsxDEV)(n.strong,{children:\"already encrypted\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:69,columnNumber:38},this),` secrets. The\nencrypted secrets are stored in plain text.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:69,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:'$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:72,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"You can add optional headers to configure the ttl and number of reads.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:76,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:'$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\" -H \"envshare-ttl: 3600\" -H \"envshare-reads: 10\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:78,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:[\"Omitting the \",(0,r.jsxDEV)(n.code,{children:\"envshare-ttl\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:82,columnNumber:16},this),` header will set a default of 30 days. Disable the\nttl by setting it to 0. (`,(0,r.jsxDEV)(n.code,{children:\"envshare-ttl: 0\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:83,columnNumber:28},this),\")\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Omitting the \",(0,r.jsxDEV)(n.code,{children:\"envshare-reads\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:84,columnNumber:16},this),` header will simply disable it and allow reading\nfor an unlimited number of times.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:84,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"This endpoint returns a JSON response with the secret id:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:87,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"json\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"json\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"data\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"id\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:110},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"HdPbXgpvUvNk43oxSdK97u\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:148},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:218},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"ttl\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:111},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"86400\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:149},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:190},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"reads\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:113},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"2\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:151},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:188},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"expiresAt\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:117},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"2023-01-19T20:47:28.383Z\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:155},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:227},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:7,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"url\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:7,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:7,columnNumber:111},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"http://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:7,columnNumber:149},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:9,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:89,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h4,{id:\"retrieve-a-secret\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#retrieve-a-secret\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Retrieve a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:101,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"You need an id to retrieve a secret. The id is returned when you store a secret.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:103,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:\"$ curl -s https://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:105,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"json\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"json\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"data\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"secret\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:114},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"Hello\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:152},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:205},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"remainingReads\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:122},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:160},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:109,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:1},this)}function Nn(d={}){let{wrapper:n}=d.components||{};return n?(0,r.jsxDEV)(n,Object.assign({},d,{children:(0,r.jsxDEV)(Re,d,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this):Re(d)}var kn=Nn;return _n(xn);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/envshare.mdx", - "_raw": { - "sourceFilePath": "projects/envshare.mdx", - "sourceFileName": "envshare.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/envshare" - }, - "type": "Project", - "path": "/projects/envshare", - "slug": "envshare" - }, - { - "published": true, - "title": "planetfall.io", - "description": "I'm building a SAAS providing global latency monitoring for your APIs and websites from edge locations around the world. Have you ever wondered how fast your API is in any part of the world? Planetfall allows you to find out and monitor it continuously.", - "date": "2023-04-01T00:00:00.000Z", - "url": "https://planetfall.io", - "body": { - "raw": "\n\nPlanetfall is a SaaS platform that provides global latency monitoring and synthetic monitoring for APIs. With over 60 regions to monitor from, customers can gain insights into the true performance of their API by checking latency from around the world. \nPlanetfall offers custom timeouts, threshold notifications, and real-time alerts for potential performance issues. Additionally, customers can create custom status pages to share with their customers, which can display availability and latency for every region. Planetfall offers a free tier that includes 100k checks per month and scales as customers grow. Overall, Planetfall helps customers stay in control of their API's performance, improve communication with their customers, and build trust.", - "code": "var Component=(()=>{var sr=Object.create;var D=Object.defineProperty;var lr=Object.getOwnPropertyDescriptor;var fr=Object.getOwnPropertyNames;var cr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,l)=>()=>(l||s((l={exports:{}}).exports,l),l.exports),vr=(s,l)=>{for(var h in l)D(s,h,{get:l[h],enumerable:!0})},_e=(s,l,h,y)=>{if(l&&typeof l==\"object\"||typeof l==\"function\")for(let b of fr(l))!dr.call(s,b)&&b!==h&&D(s,b,{get:()=>l[b],enumerable:!(y=lr(l,b))||y.enumerable});return s};var pr=(s,l,h)=>(h=s!=null?sr(cr(s)):{},_e(l||!s||!s.__esModule?D(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(D({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var we=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),l=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),y=Symbol.for(\"react.fragment\"),b=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),H=Symbol.for(\"react.provider\"),K=Symbol.for(\"react.context\"),C=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),W=Symbol.for(\"react.suspense_list\"),O=Symbol.for(\"react.memo\"),Y=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function ke(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&c>=0&&a[f]!==v[c];)c--;for(;f>=1&&c>=0;f--,c--)if(a[f]!==v[c]){if(f!==1||c!==1)do if(f--,c--,c<0||a[f]!==v[c]){var p=`\n`+a[f].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(f>=1&&c>=0);break}}}finally{M=!1,$.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",Ee=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,Ee),Ee}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function k(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case W:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case C:return Ue(e.render);case O:return k(e.type,r,t);case Y:{var n=e,i=n._payload,u=n._init;try{return k(u(i),r,t)}catch{}}}return\"\"}var x=Object.prototype.hasOwnProperty,le={},fe=_.ReactDebugCurrentFrame;function A(e){if(e){var r=e._owner,t=k(e.type,e._source,r?r.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(x);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){a=f}a&&!(a instanceof Error)&&(A(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),A(null)),a instanceof Error&&!(a.message in le)&&(le[a.message]=!0,A(i),d(\"Failed %s type: %s\",t,a.message),A(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return ce(e),!1}catch{return!0}}function ce(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),ce(e)}var P=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function He(e){if(x.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function Ke(e){if(x.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&P.current&&r&&P.current.stateNode!==r){var t=m(P.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',m(P.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:l,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),Ke(r)&&(de(r.key),a=\"\"+r.key),He(r)&&(v=r.ref,Je(r,i));for(u in r)x.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var f=e.defaultProps;for(u in f)o[u]===void 0&&(o[u]=f[u])}if(a||v){var c=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,c),v&&Qe(o,c)}return er(e,a,v,i,n,P.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=k(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===l}function me(){{if(L.current){var e=m(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=me();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function be(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+m(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function ye(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):f=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",f,a)}var c=rr(e,r,t,i,u);if(c==null)return c;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Pe.exports=we()});var yr={};vr(yr,{default:()=>br,frontmatter:()=>mr});var F=pr(Ce()),mr={title:\"planetfall.io\",description:\"I'm building a SAAS providing global latency monitoring for your APIs and websites from edge locations around the world. Have you ever wondered how fast your API is in any part of the world? Planetfall allows you to find out and monitor it continuously.\",date:\"2023-04-01\",url:\"https://planetfall.io\",published:!0};function Oe(s){let l=Object.assign({p:\"p\"},s.components);return(0,F.jsxDEV)(l.p,{children:`Planetfall is a SaaS platform that provides global latency monitoring and synthetic monitoring for APIs. With over 60 regions to monitor from, customers can gain insights into the true performance of their API by checking latency from around the world.\nPlanetfall offers custom timeouts, threshold notifications, and real-time alerts for potential performance issues. Additionally, customers can create custom status pages to share with their customers, which can display availability and latency for every region. Planetfall offers a free tier that includes 100k checks per month and scales as customers grow. Overall, Planetfall helps customers stay in control of their API's performance, improve communication with their customers, and build trust.`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e9522400-f185-40ad-8df0-2d91f99fdbba.mdx\",lineNumber:11,columnNumber:1},this)}function gr(s={}){let{wrapper:l}=s.components||{};return l?(0,F.jsxDEV)(l,Object.assign({},s,{children:(0,F.jsxDEV)(Oe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e9522400-f185-40ad-8df0-2d91f99fdbba.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e9522400-f185-40ad-8df0-2d91f99fdbba.mdx\"},this):Oe(s)}var br=gr;return hr(yr);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/planetfall.mdx", - "_raw": { - "sourceFilePath": "projects/planetfall.mdx", - "sourceFileName": "planetfall.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/planetfall" - }, - "type": "Project", - "path": "/projects/planetfall", - "slug": "planetfall" - }, - { - "published": true, - "title": "QStash", - "description": "QStash is a fully managed serverless queue and messaging service designed for the serverless era.", - "date": "2022-07-18T00:00:00.000Z", - "url": "https://upstash.com/qstash", - "body": { - "raw": "\nQStash is an HTTP based messaging and scheduling solution for the serverless and edge runtimes.\n\n- 100% serverless, no stateful connections required. Messages are pushed to your API.\n- At-least-once delivery guaranteed to any public API\n- Pubsub via topics\n- Delay message delivery\n- Message deduplication\n- Scheduling via CRON\n\n\nFormally, QStash is a message queue and task scheduler designed for serverless runtimes. Informally, QStash is a glue for your serverless functions.\n\nThere was a perception serverless was only good for simple tasks. Not anymore. People build powerful systems with serverless stack. Powerful systems are composed of multiple components. Communication among those components is a big engineering problem. There are already great solutions for this problem. But we think existing solutions do not fit in serverless space. Either they are too complex or not designed to work with stateless runtimes. So we want a solution which (is):\n\n- Works anywhere including serverless and edge.\n- Messaging as a service with no backend for users to run.\n- Lightweight, easy to understand, requires nothing to learn.\n- Price scales to zero.\n\nLet's talk about a real world example. We have an e-commerce app and we want to send an informational email after each purchase. We have a service (an API route) for new purchases (newPurchase) and a second service for sending emails and notifications (sendEmail). We can call the sendEmail service from the newPurchase service. But what if the call fails? Should we wait for the response and retry? What if too many calls congest the sendEmail service and the service does not respond on time? You need to handle all these cases in your newPurchase service. Moreover, when you change the contract of sendEmail service; you have to update your newPurchase service too.\n\nIf you use QStash in the above example, you simply send a request to QStash from the newPurchase service. QStash will queue the request and call the sendEmail service. If the service does not respond, QStash will retry with a backoff strategy. The latency of sendEmail service will not affect the newPurchase service, because it will not wait for a response from the sendEmail service. QStash decouples the newPurchase and sendEmail services. You can update both services independently as long as you keep the message format compatible.\n\nWith QStash, you can add delays to the requests. Send an email 3 days after the shipment to remind the customer to add a review. You can also schedule tasks. You can send the requests with a CRON expression, so it will be run repetitively.\n\n\nTo learn more about QStash, visit [upstash.com/qstash](upstash.com/qstash).", - "code": "var Component=(()=>{var ur=Object.create;var F=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var lr=Object.getOwnPropertyNames;var fr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var B=(l,t)=>()=>(t||l((t={exports:{}}).exports,t),t.exports),hr=(l,t)=>{for(var v in t)F(l,v,{get:t[v],enumerable:!0})},Ee=(l,t,v,y)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let g of lr(t))!dr.call(l,g)&&g!==v&&F(l,g,{get:()=>t[g],enumerable:!(y=cr(t,g))||y.enumerable});return l};var mr=(l,t,v)=>(v=l!=null?ur(fr(l)):{},Ee(t||!l||!l.__esModule?F(v,\"default\",{value:l,enumerable:!0}):v,l)),br=l=>Ee(F({},\"__esModule\",{value:!0}),l);var we=B((Er,ke)=>{ke.exports=React});var xe=B(z=>{\"use strict\";(function(){\"use strict\";var l=we(),t=Symbol.for(\"react.element\"),v=Symbol.for(\"react.portal\"),y=Symbol.for(\"react.fragment\"),g=Symbol.for(\"react.strict_mode\"),G=Symbol.for(\"react.profiler\"),X=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),T=Symbol.for(\"react.forward_ref\"),U=Symbol.for(\"react.suspense\"),A=Symbol.for(\"react.suspense_list\"),j=Symbol.for(\"react.memo\"),I=Symbol.for(\"react.lazy\"),je=Symbol.for(\"react.offscreen\"),K=Symbol.iterator,Pe=\"@@iterator\";function Se(e){if(e===null||typeof e!=\"object\")return null;var r=K&&e[K]||e[Pe];return typeof r==\"function\"?r:null}var k=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function h(e){{for(var r=arguments.length,n=new Array(r>1?r-1:0),a=1;a=1&&d>=0&&o[f]!==m[d];)d--;for(;f>=1&&d>=0;f--,d--)if(o[f]!==m[d]){if(f!==1||d!==1)do if(f--,d--,d<0||o[f]!==m[d]){var b=`\n`+o[f].replace(\" at new \",\" at \");return e.displayName&&b.includes(\"\")&&(b=b.replace(\"\",e.displayName)),typeof e==\"function\"&&S.set(e,b),b}while(f>=1&&d>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=s}var x=e?e.displayName||e.name:\"\",ye=x?P(x):\"\";return typeof e==\"function\"&&S.set(e,ye),ye}function Ve(e,r,n){return ue(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function C(e,r,n){if(e==null)return\"\";if(typeof e==\"function\")return ue(e,Le(e));if(typeof e==\"string\")return P(e);switch(e){case U:return P(\"Suspense\");case A:return P(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case T:return Ve(e.render);case j:return C(e.type,r,n);case I:{var a=e,s=a._payload,u=a._init;try{return C(u(s),r,n)}catch{}}}return\"\"}var O=Object.prototype.hasOwnProperty,ce={},le=k.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,n=C(e.type,e._source,r?r.type:null);le.setExtraStackFrame(n)}else le.setExtraStackFrame(null)}function qe(e,r,n,a,s){{var u=Function.call.bind(O);for(var i in e)if(u(e,i)){var o=void 0;try{if(typeof e[i]!=\"function\"){var m=Error((a||\"React class\")+\": \"+n+\" type `\"+i+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[i]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw m.name=\"Invariant Violation\",m}o=e[i](r,i,a,n,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){o=f}o&&!(o instanceof Error)&&(D(s),h(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",a||\"React class\",n,i,typeof o),D(null)),o instanceof Error&&!(o.message in ce)&&(ce[o.message]=!0,D(s),h(\"Failed %s type: %s\",n,o.message),D(null))}}}var Qe=Array.isArray;function $(e){return Qe(e)}function Be(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,n=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return n}}function ze(e){try{return fe(e),!1}catch{return!0}}function fe(e){return\"\"+e}function de(e){if(ze(e))return h(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Be(e)),fe(e)}var N=k.ReactCurrentOwner,Ge={key:!0,ref:!0,__self:!0,__source:!0},he,me,V;V={};function Xe(e){if(O.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(O.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Ke(e,r){if(typeof e.ref==\"string\"&&N.current&&r&&N.current.stateNode!==r){var n=p(N.current.type);V[n]||(h('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(N.current.type),e.ref),V[n]=!0)}}function Je(e,r){{var n=function(){he||(he=!0,h(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};n.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:n,configurable:!0})}}function Ze(e,r){{var n=function(){me||(me=!0,h(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};n.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:n,configurable:!0})}}var er=function(e,r,n,a,s,u,i){var o={$$typeof:t,type:e,key:r,ref:n,props:i,_owner:u};return o._store={},Object.defineProperty(o._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(o,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:a}),Object.defineProperty(o,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:s}),Object.freeze&&(Object.freeze(o.props),Object.freeze(o)),o};function rr(e,r,n,a,s){{var u,i={},o=null,m=null;n!==void 0&&(de(n),o=\"\"+n),He(r)&&(de(r.key),o=\"\"+r.key),Xe(r)&&(m=r.ref,Ke(r,s));for(u in r)O.call(r,u)&&!Ge.hasOwnProperty(u)&&(i[u]=r[u]);if(e&&e.defaultProps){var f=e.defaultProps;for(u in f)i[u]===void 0&&(i[u]=f[u])}if(o||m){var d=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;o&&Je(i,d),m&&Ze(i,d)}return er(e,o,m,s,a,N.current,i)}}var L=k.ReactCurrentOwner,be=k.ReactDebugCurrentFrame;function w(e){if(e){var r=e._owner,n=C(e.type,e._source,r?r.type:null);be.setExtraStackFrame(n)}else be.setExtraStackFrame(null)}var q;q=!1;function Q(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===t}function ve(){{if(L.current){var e=p(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function nr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),n=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+n+\".\"}return\"\"}}var pe={};function ar(e){{var r=ve();if(!r){var n=typeof e==\"string\"?e:e.displayName||e.name;n&&(r=`\n\nCheck the top-level render call using <`+n+\">.\")}return r}}function _e(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var n=ar(r);if(pe[n])return;pe[n]=!0;var a=\"\";e&&e._owner&&e._owner!==L.current&&(a=\" It was passed a child from \"+p(e._owner.type)+\".\"),w(e),h('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',n,a),w(null)}}function ge(e,r){{if(typeof e!=\"object\")return;if($(e))for(var n=0;n\",o=\" Did you accidentally export a JSX literal instead of a component?\"):f=typeof e,h(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",f,o)}var d=rr(e,r,n,s,u);if(d==null)return d;if(i){var b=r.children;if(b!==void 0)if(a)if($(b)){for(var x=0;x{\"use strict\";Re.exports=xe()});var gr={};hr(gr,{default:()=>_r,frontmatter:()=>vr});var c=mr(Ne()),vr={title:\"QStash\",description:\"QStash is a fully managed serverless queue and messaging service designed for the serverless era.\",date:\"2022-07-18\",url:\"https://upstash.com/qstash\",published:!0};function Te(l){let t=Object.assign({p:\"p\",ul:\"ul\",li:\"li\",a:\"a\"},l.components);return(0,c.jsxDEV)(c.Fragment,{children:[(0,c.jsxDEV)(t.p,{children:\"QStash is an HTTP based messaging and scheduling solution for the serverless and edge runtimes.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.ul,{children:[`\n`,(0,c.jsxDEV)(t.li,{children:\"100% serverless, no stateful connections required. Messages are pushed to your API.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"At-least-once delivery guaranteed to any public API\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Pubsub via topics\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Delay message delivery\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Message deduplication\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Scheduling via CRON\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:17,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.p,{children:\"Formally, QStash is a message queue and task scheduler designed for serverless runtimes. Informally, QStash is a glue for your serverless functions.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.p,{children:\"There was a perception serverless was only good for simple tasks. Not anymore. People build powerful systems with serverless stack. Powerful systems are composed of multiple components. Communication among those components is a big engineering problem. There are already great solutions for this problem. But we think existing solutions do not fit in serverless space. Either they are too complex or not designed to work with stateless runtimes. So we want a solution which (is):\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:22,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.ul,{children:[`\n`,(0,c.jsxDEV)(t.li,{children:\"Works anywhere including serverless and edge.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:24,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Messaging as a service with no backend for users to run.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:25,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Lightweight, easy to understand, requires nothing to learn.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:26,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Price scales to zero.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:27,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:24,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.p,{children:\"Let's talk about a real world example. We have an e-commerce app and we want to send an informational email after each purchase. We have a service (an API route) for new purchases (newPurchase) and a second service for sending emails and notifications (sendEmail). We can call the sendEmail service from the newPurchase service. But what if the call fails? Should we wait for the response and retry? What if too many calls congest the sendEmail service and the service does not respond on time? You need to handle all these cases in your newPurchase service. Moreover, when you change the contract of sendEmail service; you have to update your newPurchase service too.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:29,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.p,{children:\"If you use QStash in the above example, you simply send a request to QStash from the newPurchase service. QStash will queue the request and call the sendEmail service. If the service does not respond, QStash will retry with a backoff strategy. The latency of sendEmail service will not affect the newPurchase service, because it will not wait for a response from the sendEmail service. QStash decouples the newPurchase and sendEmail services. You can update both services independently as long as you keep the message format compatible.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.p,{children:\"With QStash, you can add delays to the requests. Send an email 3 days after the shipment to remind the customer to add a review. You can also schedule tasks. You can send the requests with a CRON expression, so it will be run repetitively.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:33,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.p,{children:[\"To learn more about QStash, visit \",(0,c.jsxDEV)(t.a,{href:\"upstash.com/qstash\",children:\"upstash.com/qstash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:36,columnNumber:35},this),\".\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:36,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:1,columnNumber:1},this)}function pr(l={}){let{wrapper:t}=l.components||{};return t?(0,c.jsxDEV)(t,Object.assign({},l,{children:(0,c.jsxDEV)(Te,l,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\"},this):Te(l)}var _r=pr;return br(gr);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/qstash.mdx", - "_raw": { - "sourceFilePath": "projects/qstash.mdx", - "sourceFileName": "qstash.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/qstash" - }, - "type": "Project", - "path": "/projects/qstash", - "slug": "qstash" - }, - { - "published": true, - "title": "Vercel Terraform Provider", - "description": "A Terraform provider for Vercel. It has been deprecated it when Vercel rolled out their official provider.", - "date": "2021-03-16T00:00:00.000Z", - "url": "https://registry.terraform.io/providers/chronark/vercel/latest", - "repository": "chronark/terraform-provider-vercel", - "body": { - "raw": "\n\n\nBack in the day when Vercel didn't have an official Terraform provider, I wrote one. \nI needed to manage my Vercel projects and especially sync environment variables from different cloud providers.\nTerraform was great to provision some postgres databases on digital ocean, but there was no way to sync the credentials with Vercel.\n\n```hcl\nterraform {\n required_providers {\n vercel = {\n source = \"registry.terraform.io/chronark/vercel\"\n version = \">=0.10.3\"\n }\n }\n}\n\nprovider \"vercel\" {\n token = \"\"\n}\n\nresource \"vercel_project\" \"my_project\" {\n name = \"project-via-terraform\"\n git_repository {\n type = \"github\"\n repo = \"chronark/terraform-provider-vercel\"\n }\n}\n```\n\nIt was a fun project and I learned a lot about Terraform and Vercel's API. \nIt gave me the opportunity to contribute to the Terraform ecosystem and my appreciation for the work that the Terraform team does is immense.\n\nThere have been quite a few individuals and teams that have used this provider and I am happy that it has been useful to you.\n\nNow that Vercel have stepped in, I have decided to [deprecate](https://twitter.com/chronark_/status/1517759708983177218) this one on April 23rd 2022. \n\nPlease use the [official provider](https://registry.terraform.io/providers/vercel/vercel/latest) instead.", - "code": "var Component=(()=>{var ir=Object.create;var S=Object.defineProperty;var lr=Object.getOwnPropertyDescriptor;var ur=Object.getOwnPropertyNames;var dr=Object.getPrototypeOf,mr=Object.prototype.hasOwnProperty;var G=(u,r)=>()=>(r||u((r={exports:{}}).exports,r),r.exports),hr=(u,r)=>{for(var _ in r)S(u,_,{get:r[_],enumerable:!0})},ve=(u,r,_,k)=>{if(r&&typeof r==\"object\"||typeof r==\"function\")for(let y of ur(r))!mr.call(u,y)&&y!==_&&S(u,y,{get:()=>r[y],enumerable:!(k=lr(r,y))||k.enumerable});return u};var fr=(u,r,_)=>(_=u!=null?ir(dr(u)):{},ve(r||!u||!u.__esModule?S(_,\"default\",{value:u,enumerable:!0}):_,u)),br=u=>ve(S({},\"__esModule\",{value:!0}),u);var ge=G((vr,xe)=>{xe.exports=React});var Ee=G(z=>{\"use strict\";(function(){\"use strict\";var u=ge(),r=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),k=Symbol.for(\"react.fragment\"),y=Symbol.for(\"react.strict_mode\"),K=Symbol.for(\"react.profiler\"),X=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),R=Symbol.for(\"react.forward_ref\"),A=Symbol.for(\"react.suspense\"),D=Symbol.for(\"react.suspense_list\"),F=Symbol.for(\"react.memo\"),B=Symbol.for(\"react.lazy\"),Fe=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Te=\"@@iterator\";function we(e){if(e===null||typeof e!=\"object\")return null;var a=J&&e[J]||e[Te];return typeof a==\"function\"?a:null}var x=u.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function h(e){{for(var a=arguments.length,t=new Array(a>1?a-1:0),c=1;c=1&&m>=0&&o[d]!==f[m];)m--;for(;d>=1&&m>=0;d--,m--)if(o[d]!==f[m]){if(d!==1||m!==1)do if(d--,m--,m<0||o[d]!==f[m]){var b=`\n`+o[d].replace(\" at new \",\" at \");return e.displayName&&b.includes(\"\")&&(b=b.replace(\"\",e.displayName)),typeof e==\"function\"&&w.set(e,b),b}while(d>=1&&m>=0);break}}}finally{Y=!1,I.current=l,Ye(),Error.prepareStackTrace=i}var E=e?e.displayName||e.name:\"\",ke=E?T(E):\"\";return typeof e==\"function\"&&w.set(e,ke),ke}function We(e,a,t){return ie(e,!1)}function Me(e){var a=e.prototype;return!!(a&&a.isReactComponent)}function C(e,a,t){if(e==null)return\"\";if(typeof e==\"function\")return ie(e,Me(e));if(typeof e==\"string\")return T(e);switch(e){case A:return T(\"Suspense\");case D:return T(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case R:return We(e.render);case F:return C(e.type,a,t);case B:{var c=e,i=c._payload,l=c._init;try{return C(l(i),a,t)}catch{}}}return\"\"}var O=Object.prototype.hasOwnProperty,le={},ue=x.ReactDebugCurrentFrame;function P(e){if(e){var a=e._owner,t=C(e.type,e._source,a?a.type:null);ue.setExtraStackFrame(t)}else ue.setExtraStackFrame(null)}function Le(e,a,t,c,i){{var l=Function.call.bind(O);for(var s in e)if(l(e,s)){var o=void 0;try{if(typeof e[s]!=\"function\"){var f=Error((c||\"React class\")+\": \"+t+\" type `\"+s+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[s]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw f.name=\"Invariant Violation\",f}o=e[s](a,s,c,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(d){o=d}o&&!(o instanceof Error)&&(P(i),h(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",c||\"React class\",t,s,typeof o),P(null)),o instanceof Error&&!(o.message in le)&&(le[o.message]=!0,P(i),h(\"Failed %s type: %s\",t,o.message),P(null))}}}var qe=Array.isArray;function $(e){return qe(e)}function Ge(e){{var a=typeof Symbol==\"function\"&&Symbol.toStringTag,t=a&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return de(e),!1}catch{return!0}}function de(e){return\"\"+e}function me(e){if(ze(e))return h(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Ge(e)),de(e)}var U=x.ReactCurrentOwner,Ke={key:!0,ref:!0,__self:!0,__source:!0},he,fe,W;W={};function Xe(e){if(O.call(e,\"ref\")){var a=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(a&&a.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(O.call(e,\"key\")){var a=Object.getOwnPropertyDescriptor(e,\"key\").get;if(a&&a.isReactWarning)return!1}return e.key!==void 0}function Je(e,a){if(typeof e.ref==\"string\"&&U.current&&a&&U.current.stateNode!==a){var t=p(U.current.type);W[t]||(h('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(U.current.type),e.ref),W[t]=!0)}}function Ze(e,a){{var t=function(){he||(he=!0,h(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,a){{var t=function(){fe||(fe=!0,h(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,a,t,c,i,l,s){var o={$$typeof:r,type:e,key:a,ref:t,props:s,_owner:l};return o._store={},Object.defineProperty(o._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(o,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:c}),Object.defineProperty(o,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(o.props),Object.freeze(o)),o};function rr(e,a,t,c,i){{var l,s={},o=null,f=null;t!==void 0&&(me(t),o=\"\"+t),He(a)&&(me(a.key),o=\"\"+a.key),Xe(a)&&(f=a.ref,Je(a,i));for(l in a)O.call(a,l)&&!Ke.hasOwnProperty(l)&&(s[l]=a[l]);if(e&&e.defaultProps){var d=e.defaultProps;for(l in d)s[l]===void 0&&(s[l]=d[l])}if(o||f){var m=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;o&&Ze(s,m),f&&Qe(s,m)}return er(e,o,f,i,c,U.current,s)}}var M=x.ReactCurrentOwner,be=x.ReactDebugCurrentFrame;function g(e){if(e){var a=e._owner,t=C(e.type,e._source,a?a.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var L;L=!1;function q(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===r}function _e(){{if(M.current){var e=p(M.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function nr(e){{if(e!==void 0){var a=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+a+\":\"+t+\".\"}return\"\"}}var pe={};function ar(e){{var a=_e();if(!a){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(a=`\n\nCheck the top-level render call using <`+t+\">.\")}return a}}function Ne(e,a){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=ar(a);if(pe[t])return;pe[t]=!0;var c=\"\";e&&e._owner&&e._owner!==M.current&&(c=\" It was passed a child from \"+p(e._owner.type)+\".\"),g(e),h('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,c),g(null)}}function ye(e,a){{if(typeof e!=\"object\")return;if($(e))for(var t=0;t\",o=\" Did you accidentally export a JSX literal instead of a component?\"):d=typeof e,h(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",d,o)}var m=rr(e,a,t,i,l);if(m==null)return m;if(s){var b=a.children;if(b!==void 0)if(c)if($(b)){for(var E=0;E{\"use strict\";je.exports=Ee()});var yr={};hr(yr,{default:()=>Nr,frontmatter:()=>_r});var n=fr(Ue()),_r={title:\"Vercel Terraform Provider\",description:\"A Terraform provider for Vercel. It has been deprecated it when Vercel rolled out their official provider.\",date:\"2021-03-16\",repository:\"chronark/terraform-provider-vercel\",url:\"https://registry.terraform.io/providers/chronark/vercel/latest\",published:!0};function Re(u){let r=Object.assign({p:\"p\",div:\"div\",pre:\"pre\",code:\"code\",span:\"span\",a:\"a\"},u.components);return(0,n.jsxDEV)(n.Fragment,{children:[(0,n.jsxDEV)(r.p,{children:`Back in the day when Vercel didn't have an official Terraform provider, I wrote one.\nI needed to manage my Vercel projects and especially sync environment variables from different cloud providers.\nTerraform was great to provision some postgres databases on digital ocean, but there was no way to sync the credentials with Vercel.`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(r.pre,{\"data-language\":\"hcl\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(r.code,{\"data-language\":\"hcl\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"terraform\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:1,columnNumber:149},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"required_providers\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:2,columnNumber:58},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:2,columnNumber:112},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:3,columnNumber:66},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:3,columnNumber:103},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:3,columnNumber:140},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:3,columnNumber:177},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" source \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:4,columnNumber:70},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:4,columnNumber:107},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"registry.terraform.io/chronark/vercel\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:4,columnNumber:144},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" version \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:5,columnNumber:70},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:5,columnNumber:107},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\">=0.10.3\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:5,columnNumber:144},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"provider\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:10,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:10,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:'\"vercel\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:10,columnNumber:101},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:10,columnNumber:155},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" token\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:11,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:11,columnNumber:63},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:11,columnNumber:100},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:11,columnNumber:137},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:11,columnNumber:174},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:12,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"resource\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:'\"vercel_project\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:101},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:163},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:'\"my_project\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:200},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:258},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" name\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:15,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:15,columnNumber:62},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:15,columnNumber:99},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:15,columnNumber:136},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"project-via-terraform\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:15,columnNumber:173},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:16,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"git_repository\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:16,columnNumber:58},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:16,columnNumber:108},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" type\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:17,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:17,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:17,columnNumber:101},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:17,columnNumber:138},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"github\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:17,columnNumber:175},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" repo\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:18,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:18,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:18,columnNumber:101},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:18,columnNumber:138},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"chronark/terraform-provider-vercel\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:18,columnNumber:175},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:19,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:20,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:20,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:`It was a fun project and I learned a lot about Terraform and Vercel's API.\nIt gave me the opportunity to contribute to the Terraform ecosystem and my appreciation for the work that the Terraform team does is immense.`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:39,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:\"There have been quite a few individuals and teams that have used this provider and I am happy that it has been useful to you.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:42,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[\"Now that Vercel have stepped in, I have decided to \",(0,n.jsxDEV)(r.a,{href:\"https://twitter.com/chronark_/status/1517759708983177218\",children:\"deprecate\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:44,columnNumber:52},this),\" this one on April 23rd 2022.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:44,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[\"Please use the \",(0,n.jsxDEV)(r.a,{href:\"https://registry.terraform.io/providers/vercel/vercel/latest\",children:\"official provider\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:46,columnNumber:16},this),\" instead.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:46,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:1,columnNumber:1},this)}function pr(u={}){let{wrapper:r}=u.components||{};return r?(0,n.jsxDEV)(r,Object.assign({},u,{children:(0,n.jsxDEV)(Re,u,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\"},this):Re(u)}var Nr=pr;return br(yr);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/terraform-provider-vercel.mdx", - "_raw": { - "sourceFilePath": "projects/terraform-provider-vercel.mdx", - "sourceFileName": "terraform-provider-vercel.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/terraform-provider-vercel" - }, - "type": "Project", - "path": "/projects/terraform-provider-vercel", - "slug": "terraform-provider-vercel" - }, - { - "title": "Upstash Auth Analytics", - "description": "A library to record and analyse Auth.js user behaviour", - "url": "https://console.upstash.com/ratelimit", - "repository": "upstash/auth-analytics", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var A=Object.defineProperty;var fr=Object.getOwnPropertyDescriptor;var cr=Object.getOwnPropertyNames;var lr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,f)=>()=>(f||s((f={exports:{}}).exports,f),f.exports),vr=(s,f)=>{for(var h in f)A(s,h,{get:f[h],enumerable:!0})},_e=(s,f,h,E)=>{if(f&&typeof f==\"object\"||typeof f==\"function\")for(let m of cr(f))!dr.call(s,m)&&m!==h&&A(s,m,{get:()=>f[m],enumerable:!(E=fr(f,m))||E.enumerable});return s};var pr=(s,f,h)=>(h=s!=null?sr(lr(s)):{},_e(f||!s||!s.__esModule?A(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(A({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),f=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&l>=0&&a[c]!==v[l];)l--;for(;c>=1&&l>=0;c--,l--)if(a[c]!==v[l]){if(c!==1||l!==1)do if(c--,l--,l<0||a[c]!==v[l]){var p=`\n`+a[c].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(c>=1&&l>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,fe={},ce=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);ce.setExtraStackFrame(t)}else ce.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(c){a=c}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in fe)&&(fe[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return le(e),!1}catch{return!0}}function le(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),le(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=b(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',b(O.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:f,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var c=e.defaultProps;for(u in c)o[u]===void 0&&(o[u]=c[u])}if(a||v){var l=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,l),v&&Qe(o,l)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===f}function be(){{if(L.current){var e=b(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=be();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+b(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):c=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",c,a)}var l=rr(e,r,t,i,u);if(l==null)return l;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>br});var F=pr(we()),br={title:\"Upstash Auth Analytics\",description:\"A library to record and analyse Auth.js user behaviour\",url:\"https://console.upstash.com/ratelimit\",repository:\"upstash/auth-analytics\"};function Pe(s){let f=Object.assign({p:\"p\"},s.components);return(0,F.jsxDEV)(f.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e491d153-3318-4404-b9cc-ddf66fe9f45f.mdx\",lineNumber:8,columnNumber:1},this)}function gr(s={}){let{wrapper:f}=s.components||{};return f?(0,F.jsxDEV)(f,Object.assign({},s,{children:(0,F.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e491d153-3318-4404-b9cc-ddf66fe9f45f.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e491d153-3318-4404-b9cc-ddf66fe9f45f.mdx\"},this):Pe(s)}var mr=gr;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-auth-analytics.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-auth-analytics.mdx", - "sourceFileName": "upstash-auth-analytics.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-auth-analytics" - }, - "type": "Project", - "path": "/projects/upstash-auth-analytics", - "slug": "upstash-auth-analytics" - }, - { - "published": true, - "title": "@upstash/cli", - "description": "A CLI to provision and manage Upstash resources, including Redis and Kafka databases.", - "date": "2022-05-16T00:00:00.000Z", - "url": "https://upstash.com/cli", - "repository": "upstash/cli", - "body": { - "raw": "\n\nManage Upstash resources in your terminal or CI.\n\n![](https://raw.githubusercontent.com/upstash/cli/main/img/banner.svg)\n\n![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/upstash/cli)\n[![Downloads/week](https://img.shields.io/npm/dw/lstr.svg)](https://npmjs.org/package/@upstash/cli)\n\n# Installation\n\n## npm\n\nYou can install upstash's cli directly from npm\n\n```bash\nnpm i -g @upstash/cli\n```\n\nIt will be added as `upstash` to your system's path.\n\n## Compiled binaries:\n\n`upstash` is also available from the\n[releases page](https://github.com/upstash/upstash-cli/releases/latest) compiled\nfor windows, linux and mac (both intel and m1).\n\n# Usage\n\n```bash\n> upstash\n\n Usage: upstash \n Version: development\n\n Description:\n\n Official cli for Upstash products\n\n Options:\n\n -h, --help - Show this help. \n -V, --version - Show the version number for this program. \n -c, --config - Path to .upstash.json file\n\n Commands:\n\n auth - Login and logout \n redis - Manage redis database instances \n kafka - Manage kafka clusters and topics \n team - Manage your teams and their members\n\n Environment variables:\n\n UPSTASH_EMAIL - The email you use on upstash\n UPSTASH_API_KEY - The api key from upstash\n```\n\n## Authentication\n\nWhen running `upstash` for the first time, you should log in using\n`upstash auth login`. Provide your email and an api key.\n[See here for how to get a key.](https://docs.upstash.com/redis/howto/developerapi#api-development)\n\nAs an alternative to logging in, you can provide `UPSTASH_EMAIL` and\n`UPSTASH_API_KEY` as environment variables.\n\n## Usage\n\nLet's create a new redis database:\n\n```\n> upstash redis create --name=my-db --region=eu-west-1\n Database has been created\n\n database_id a3e25299-132a-45b9-b026-c73f5a807859\n database_name my-db\n database_type Pay as You Go\n region eu-west-1\n type paid\n port 37090\n creation_time 1652687630\n state active\n password 88ae6392a1084d1186a3da37fb5f5a30\n user_email andreas@upstash.com\n endpoint eu1-magnetic-lacewing-37090.upstash.io\n edge false\n multizone false\n rest_token AZDiASQgYTNlMjUyOTktMTMyYS00NWI5LWIwMjYtYzczZjVhODA3ODU5ODhhZTYzOTJhMTA4NGQxMTg2YTNkYTM3ZmI1ZjVhMzA=\n read_only_rest_token ApDiASQgYTNlMjUyOTktMTMyYS00NWI5LWIwMjYtYzczZjVhODA3ODU5O_InFjRVX1XHsaSjq1wSerFCugZ8t8O1aTfbF6Jhq1I=\n\n\n You can visit your database details page: https://console.upstash.com/redis/a3e25299-132a-45b9-b026-c73f5a807859\n\n Connect to your database with redis-cli: redis-cli -u redis://88ae6392a1084d1186a3da37fb5f5a30@eu1-magnetic-lacewing-37090.upstash.io:37090\n```\n\n## Output\n\nMost commands support the `--json` flag to return the raw api response as json,\nwhich you can parse and automate your system.\n\n```bash\n> upstash redis create --name=test2113 --region=us-central1 --json | jq '.endpoint'\n\n \"gusc1-clean-gelding-30208.upstash.io\"\n```\n", - "code": "var Component=(()=>{var d=Object.create;var c=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,F=Object.prototype.hasOwnProperty;var m=(n,l)=>()=>(l||n((l={exports:{}}).exports,l),l.exports),u=(n,l)=>{for(var s in l)c(n,s,{get:l[s],enumerable:!0})},o=(n,l,s,r)=>{if(l&&typeof l==\"object\"||typeof l==\"function\")for(let a of p(l))!F.call(n,a)&&a!==s&&c(n,a,{get:()=>l[a],enumerable:!(r=E(l,a))||r.enumerable});return n};var B=(n,l,s)=>(s=n!=null?d(y(n)):{},o(l||!n||!n.__esModule?c(s,\"default\",{value:n,enumerable:!0}):s,n)),g=n=>o(c({},\"__esModule\",{value:!0}),n);var t=m((v,i)=>{i.exports=_jsx_runtime});var N={};u(N,{default:()=>f,frontmatter:()=>C});var e=B(t()),C={title:\"@upstash/cli\",description:\"A CLI to provision and manage Upstash resources, including Redis and Kafka databases.\",date:\"2022-05-16\",url:\"https://upstash.com/cli\",repository:\"upstash/cli\",published:!0};function h(n){let l=Object.assign({p:\"p\",img:\"img\",a:\"a\",h1:\"h1\",span:\"span\",h2:\"h2\",div:\"div\",pre:\"pre\",code:\"code\"},n.components);return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(l.p,{children:\"Manage Upstash resources in your terminal or CI.\"}),`\n`,(0,e.jsx)(l.p,{children:(0,e.jsx)(l.img,{src:\"https://raw.githubusercontent.com/upstash/cli/main/img/banner.svg\",alt:\"\"})}),`\n`,(0,e.jsxs)(l.p,{children:[(0,e.jsx)(l.img,{src:\"https://img.shields.io/github/v/release/upstash/cli\",alt:\"GitHub release (latest SemVer)\"}),`\n`,(0,e.jsx)(l.a,{href:\"https://npmjs.org/package/@upstash/cli\",children:(0,e.jsx)(l.img,{src:\"https://img.shields.io/npm/dw/lstr.svg\",alt:\"Downloads/week\"})})]}),`\n`,(0,e.jsxs)(l.h1,{id:\"installation\",children:[(0,e.jsx)(l.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#installation\",children:(0,e.jsx)(l.span,{className:\"icon icon-link\"})}),\"Installation\"]}),`\n`,(0,e.jsxs)(l.h2,{id:\"npm\",children:[(0,e.jsx)(l.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#npm\",children:(0,e.jsx)(l.span,{className:\"icon icon-link\"})}),\"npm\"]}),`\n`,(0,e.jsx)(l.p,{children:\"You can install upstash's cli directly from npm\"}),`\n`,(0,e.jsx)(l.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,e.jsx)(l.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,e.jsx)(l.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"npm\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"i\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#79B8FF\"},children:\"-g\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"@upstash/cli\"})]})})})}),`\n`,(0,e.jsxs)(l.p,{children:[\"It will be added as \",(0,e.jsx)(l.code,{children:\"upstash\"}),\" to your system's path.\"]}),`\n`,(0,e.jsxs)(l.h2,{id:\"compiled-binaries\",children:[(0,e.jsx)(l.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#compiled-binaries\",children:(0,e.jsx)(l.span,{className:\"icon icon-link\"})}),\"Compiled binaries:\"]}),`\n`,(0,e.jsxs)(l.p,{children:[(0,e.jsx)(l.code,{children:\"upstash\"}),` is also available from the\n`,(0,e.jsx)(l.a,{href:\"https://github.com/upstash/upstash-cli/releases/latest\",children:\"releases page\"}),` compiled\nfor windows, linux and mac (both intel and m1).`]}),`\n`,(0,e.jsxs)(l.h1,{id:\"usage\",children:[(0,e.jsx)(l.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#usage\",children:(0,e.jsx)(l.span,{className:\"icon icon-link\"})}),\"Usage\"]}),`\n`,(0,e.jsx)(l.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,e.jsx)(l.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,e.jsxs)(l.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:[(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\">\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" upstash\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"Usage:\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"upstash\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"})]}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"Version:\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"development\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"Description:\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"Official\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"cli\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"for\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"Upstash\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"products\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"Options:\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"-h,\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#79B8FF\"},children:\"--help\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"-\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"Show\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"this\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"help.\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"})]}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"-V,\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#79B8FF\"},children:\"--version\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"-\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"Show\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"the\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"version\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"number\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"for\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"this\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"program.\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"})]}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"-c,\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#79B8FF\"},children:\"--config\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\"<\"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"strin\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\"g\"}),(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\">\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"-\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"Path\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"to\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\".upstash.json\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"file\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"Commands:\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"auth\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"-\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"Login\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"and\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"logout\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"})]}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"redis\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"-\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"Manage\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"redis\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"database\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"instances\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"})]}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"kafka\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"-\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"Manage\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"kafka\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"clusters\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"and\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"topics\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"})]}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"team\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"-\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"Manage\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"your\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"teams\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"and\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"their\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"members\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"Environment\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"variables:\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"UPSTASH_EMAIL\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\"<\"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"strin\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\"g\"}),(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\">\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"-\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"The\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"email\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"you\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"use\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"on\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"upstash\"})]}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"UPSTASH_API_KEY\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\"<\"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"strin\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\"g\"}),(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\">\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"-\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"The\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"api\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"key\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"from\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"upstash\"})]})]})})}),`\n`,(0,e.jsxs)(l.h2,{id:\"authentication\",children:[(0,e.jsx)(l.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#authentication\",children:(0,e.jsx)(l.span,{className:\"icon icon-link\"})}),\"Authentication\"]}),`\n`,(0,e.jsxs)(l.p,{children:[\"When running \",(0,e.jsx)(l.code,{children:\"upstash\"}),` for the first time, you should log in using\n`,(0,e.jsx)(l.code,{children:\"upstash auth login\"}),`. Provide your email and an api key.\n`,(0,e.jsx)(l.a,{href:\"https://docs.upstash.com/redis/howto/developerapi#api-development\",children:\"See here for how to get a key.\"})]}),`\n`,(0,e.jsxs)(l.p,{children:[\"As an alternative to logging in, you can provide \",(0,e.jsx)(l.code,{children:\"UPSTASH_EMAIL\"}),` and\n`,(0,e.jsx)(l.code,{children:\"UPSTASH_API_KEY\"}),\" as environment variables.\"]}),`\n`,(0,e.jsxs)(l.h2,{id:\"usage-1\",children:[(0,e.jsx)(l.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#usage-1\",children:(0,e.jsx)(l.span,{className:\"icon icon-link\"})}),\"Usage\"]}),`\n`,(0,e.jsx)(l.p,{children:\"Let's create a new redis database:\"}),`\n`,(0,e.jsx)(l.pre,{children:(0,e.jsx)(l.code,{children:`> upstash redis create --name=my-db --region=eu-west-1\n Database has been created\n\n database_id a3e25299-132a-45b9-b026-c73f5a807859\n database_name my-db\n database_type Pay as You Go\n region eu-west-1\n type paid\n port 37090\n creation_time 1652687630\n state active\n password 88ae6392a1084d1186a3da37fb5f5a30\n user_email andreas@upstash.com\n endpoint eu1-magnetic-lacewing-37090.upstash.io\n edge false\n multizone false\n rest_token AZDiASQgYTNlMjUyOTktMTMyYS00NWI5LWIwMjYtYzczZjVhODA3ODU5ODhhZTYzOTJhMTA4NGQxMTg2YTNkYTM3ZmI1ZjVhMzA=\n read_only_rest_token ApDiASQgYTNlMjUyOTktMTMyYS00NWI5LWIwMjYtYzczZjVhODA3ODU5O_InFjRVX1XHsaSjq1wSerFCugZ8t8O1aTfbF6Jhq1I=\n\n\n You can visit your database details page: https://console.upstash.com/redis/a3e25299-132a-45b9-b026-c73f5a807859\n\n Connect to your database with redis-cli: redis-cli -u redis://88ae6392a1084d1186a3da37fb5f5a30@eu1-magnetic-lacewing-37090.upstash.io:37090\n`})}),`\n`,(0,e.jsxs)(l.h2,{id:\"output\",children:[(0,e.jsx)(l.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#output\",children:(0,e.jsx)(l.span,{className:\"icon icon-link\"})}),\"Output\"]}),`\n`,(0,e.jsxs)(l.p,{children:[\"Most commands support the \",(0,e.jsx)(l.code,{children:\"--json\"}),` flag to return the raw api response as json,\nwhich you can parse and automate your system.`]}),`\n`,(0,e.jsx)(l.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,e.jsx)(l.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,e.jsxs)(l.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:[(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\">\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" upstash redis create --name\"}),(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"test2113\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" --region\"}),(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"us-central1\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" --json \"}),(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\"|\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"jq\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"'.endpoint'\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:' \"gusc1-clean-gelding-30208.upstash.io\"'})})]})})})]})}function b(n={}){let{wrapper:l}=n.components||{};return l?(0,e.jsx)(l,Object.assign({},n,{children:(0,e.jsx)(h,n)})):h(n)}var f=b;return g(N);})();\n;return Component;" - }, - "_id": "projects/upstash-cli.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-cli.mdx", - "sourceFileName": "upstash-cli.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-cli" - }, - "type": "Project", - "path": "/projects/upstash-cli", - "slug": "upstash-cli" - }, - { - "published": true, - "title": "Upstash Core Analytics", - "description": "Low level utilities to build analytics tools on top of Redis.", - "date": "2023-02-13T00:00:00.000Z", - "url": "https://console.upstash.com/ratelimit", - "repository": "upstash/core-analytics", - "body": { - "raw": "\n\nThis library offers some low level building blocks to record and analyze custom events in Redis.\nIt's main purpose is to provide a simple way to record and query events in Redis without having to worry about the underlying data structure so we can build more advanced analytics features on top of it.\n\n## Quickstart\n\n\n1. Create a redis database\n\nGo to [console.upstash.com/redis](https://console.upstash.com/redis) and create\na new global database.\n\nAfter creating the db, copy the `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN` to your `.env` file.\n\n3. Install `@upstash/analytics` in your project\n\n```bash\nnpm install @upstash/analytics @upstash/redis\n```\n\n4. Create an analytics client\n\n```ts\nimport { Analytyics } from \"@upstash/analytics\";\nimport { Redis } from \"@upstash/redis\";\n\nconst analytics = new Analytics({\n redis: Redis.fromEnv(),\n window: \"1d\",\n});\n```\n\n\n5. Ingest some events\n\nAn event consists of a `time` field and any additional key-value pairs that you can use to record any information you want.\n\n```ts\nconst event = {\n time: Date.now() // optional (default: Date.now())\n userId: \"chronark\",\n page: \"/auth/login\",\n country: \"DE\",\n}\n\nawait analytics.ingest(\"pageviews\", event);\n```\n\n4. Query your events\n\n```ts\n\nconst result = await analytics.query(\"pageviews\");\n\n```\n\n## Development\n\nThis project uses `pnpm` for dependency management.\n\n#### Install dependencies\n\n```bash\npnpm install\n```\n\n#### Build\n\n```bash\npnpm build\n```\n\n\n## Database Schema\n\nAll metrics are stored in Redis `Hash` data types and sharded into buckets based on the `window` option.\n```\n@upstash/analytics:{TABLE}:{TIMESTAMP}\n```\n- `TABLE` is a namespace to group events together. ie for managing multiple projects int a single database\n- `TIMESTAMP` is the starting timestamp of each window\n\nThe field of each hash is a serialized JSON object with the user's event data and the value is the number of times this event has been recorded.\n\n```json\n{\n '{\"page\": \"/auth/login\",\"country\": \"DE\"}': 5,\n '{\"page\": \"/auth/login\",\"country\": \"US\"}': 2\n}\n```\n", - "code": "var Component=(()=>{var cn=Object.create;var P=Object.defineProperty;var ln=Object.getOwnPropertyDescriptor;var mn=Object.getOwnPropertyNames;var un=Object.getPrototypeOf,hn=Object.prototype.hasOwnProperty;var z=(l,e)=>()=>(e||l((e={exports:{}}).exports,e),e.exports),fn=(l,e)=>{for(var _ in e)P(l,_,{get:e[_],enumerable:!0})},xe=(l,e,_,y)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let k of mn(e))!hn.call(l,k)&&k!==_&&P(l,k,{get:()=>e[k],enumerable:!(y=ln(e,k))||y.enumerable});return l};var bn=(l,e,_)=>(_=l!=null?cn(un(l)):{},xe(e||!l||!l.__esModule?P(_,\"default\",{value:l,enumerable:!0}):_,l)),_n=l=>xe(P({},\"__esModule\",{value:!0}),l);var Ee=z((gn,ge)=>{ge.exports=React});var je=z(G=>{\"use strict\";(function(){\"use strict\";var l=Ee(),e=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),y=Symbol.for(\"react.fragment\"),k=Symbol.for(\"react.strict_mode\"),H=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),X=Symbol.for(\"react.context\"),F=Symbol.for(\"react.forward_ref\"),D=Symbol.for(\"react.suspense\"),A=Symbol.for(\"react.suspense_list\"),R=Symbol.for(\"react.memo\"),B=Symbol.for(\"react.lazy\"),Re=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Te=\"@@iterator\";function Ce(n){if(n===null||typeof n!=\"object\")return null;var a=J&&n[J]||n[Te];return typeof a==\"function\"?a:null}var g=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function h(n){{for(var a=arguments.length,t=new Array(a>1?a-1:0),o=1;o=1&&u>=0&&s[m]!==f[u];)u--;for(;m>=1&&u>=0;m--,u--)if(s[m]!==f[u]){if(m!==1||u!==1)do if(m--,u--,u<0||s[m]!==f[u]){var b=`\n`+s[m].replace(\" at new \",\" at \");return n.displayName&&b.includes(\"\")&&(b=b.replace(\"\",n.displayName)),typeof n==\"function\"&&C.set(n,b),b}while(m>=1&&u>=0);break}}}finally{M=!1,I.current=c,Me(),Error.prepareStackTrace=i}var j=n?n.displayName||n.name:\"\",ye=j?T(j):\"\";return typeof n==\"function\"&&C.set(n,ye),ye}function $e(n,a,t){return ie(n,!1)}function We(n){var a=n.prototype;return!!(a&&a.isReactComponent)}function w(n,a,t){if(n==null)return\"\";if(typeof n==\"function\")return ie(n,We(n));if(typeof n==\"string\")return T(n);switch(n){case D:return T(\"Suspense\");case A:return T(\"SuspenseList\")}if(typeof n==\"object\")switch(n.$$typeof){case F:return $e(n.render);case R:return w(n.type,a,t);case B:{var o=n,i=o._payload,c=o._init;try{return w(c(i),a,t)}catch{}}}return\"\"}var S=Object.prototype.hasOwnProperty,ce={},le=g.ReactDebugCurrentFrame;function O(n){if(n){var a=n._owner,t=w(n.type,n._source,a?a.type:null);le.setExtraStackFrame(t)}else le.setExtraStackFrame(null)}function Ve(n,a,t,o,i){{var c=Function.call.bind(S);for(var d in n)if(c(n,d)){var s=void 0;try{if(typeof n[d]!=\"function\"){var f=Error((o||\"React class\")+\": \"+t+\" type `\"+d+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof n[d]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw f.name=\"Invariant Violation\",f}s=n[d](a,d,o,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(m){s=m}s&&!(s instanceof Error)&&(O(i),h(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",o||\"React class\",t,d,typeof s),O(null)),s instanceof Error&&!(s.message in ce)&&(ce[s.message]=!0,O(i),h(\"Failed %s type: %s\",t,s.message),O(null))}}}var qe=Array.isArray;function Y(n){return qe(n)}function ze(n){{var a=typeof Symbol==\"function\"&&Symbol.toStringTag,t=a&&n[Symbol.toStringTag]||n.constructor.name||\"Object\";return t}}function Ge(n){try{return me(n),!1}catch{return!0}}function me(n){return\"\"+n}function ue(n){if(Ge(n))return h(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",ze(n)),me(n)}var v=g.ReactCurrentOwner,He={key:!0,ref:!0,__self:!0,__source:!0},he,fe,$;$={};function Ke(n){if(S.call(n,\"ref\")){var a=Object.getOwnPropertyDescriptor(n,\"ref\").get;if(a&&a.isReactWarning)return!1}return n.ref!==void 0}function Xe(n){if(S.call(n,\"key\")){var a=Object.getOwnPropertyDescriptor(n,\"key\").get;if(a&&a.isReactWarning)return!1}return n.key!==void 0}function Je(n,a){if(typeof n.ref==\"string\"&&v.current&&a&&v.current.stateNode!==a){var t=p(v.current.type);$[t]||(h('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(v.current.type),n.ref),$[t]=!0)}}function Qe(n,a){{var t=function(){he||(he=!0,h(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(n,\"key\",{get:t,configurable:!0})}}function Ze(n,a){{var t=function(){fe||(fe=!0,h(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(n,\"ref\",{get:t,configurable:!0})}}var en=function(n,a,t,o,i,c,d){var s={$$typeof:e,type:n,key:a,ref:t,props:d,_owner:c};return s._store={},Object.defineProperty(s._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(s,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(s,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(s.props),Object.freeze(s)),s};function nn(n,a,t,o,i){{var c,d={},s=null,f=null;t!==void 0&&(ue(t),s=\"\"+t),Xe(a)&&(ue(a.key),s=\"\"+a.key),Ke(a)&&(f=a.ref,Je(a,i));for(c in a)S.call(a,c)&&!He.hasOwnProperty(c)&&(d[c]=a[c]);if(n&&n.defaultProps){var m=n.defaultProps;for(c in m)d[c]===void 0&&(d[c]=m[c])}if(s||f){var u=typeof n==\"function\"?n.displayName||n.name||\"Unknown\":n;s&&Qe(d,u),f&&Ze(d,u)}return en(n,s,f,i,o,v.current,d)}}var W=g.ReactCurrentOwner,be=g.ReactDebugCurrentFrame;function E(n){if(n){var a=n._owner,t=w(n.type,n._source,a?a.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var V;V=!1;function q(n){return typeof n==\"object\"&&n!==null&&n.$$typeof===e}function _e(){{if(W.current){var n=p(W.current.type);if(n)return`\n\nCheck the render method of \\``+n+\"`.\"}return\"\"}}function rn(n){{if(n!==void 0){var a=n.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=n.lineNumber;return`\n\nCheck your code at `+a+\":\"+t+\".\"}return\"\"}}var pe={};function an(n){{var a=_e();if(!a){var t=typeof n==\"string\"?n:n.displayName||n.name;t&&(a=`\n\nCheck the top-level render call using <`+t+\">.\")}return a}}function Ne(n,a){{if(!n._store||n._store.validated||n.key!=null)return;n._store.validated=!0;var t=an(a);if(pe[t])return;pe[t]=!0;var o=\"\";n&&n._owner&&n._owner!==W.current&&(o=\" It was passed a child from \"+p(n._owner.type)+\".\"),E(n),h('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,o),E(null)}}function ke(n,a){{if(typeof n!=\"object\")return;if(Y(n))for(var t=0;t\",s=\" Did you accidentally export a JSX literal instead of a component?\"):m=typeof n,h(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",m,s)}var u=nn(n,a,t,i,c);if(u==null)return u;if(d){var b=a.children;if(b!==void 0)if(o)if(Y(b)){for(var j=0;j{\"use strict\";Ue.exports=je()});var yn={};fn(yn,{default:()=>kn,frontmatter:()=>pn});var r=bn(ve()),pn={title:\"Upstash Core Analytics\",description:\"Low level utilities to build analytics tools on top of Redis.\",date:\"2023-02-13\",url:\"https://console.upstash.com/ratelimit\",repository:\"upstash/core-analytics\",published:!0};function Fe(l){let e=Object.assign({p:\"p\",h2:\"h2\",a:\"a\",span:\"span\",ol:\"ol\",li:\"li\",code:\"code\",div:\"div\",pre:\"pre\",h4:\"h4\",ul:\"ul\"},l.components);return(0,r.jsxDEV)(r.Fragment,{children:[(0,r.jsxDEV)(e.p,{children:`This library offers some low level building blocks to record and analyze custom events in Redis.\nIt's main purpose is to provide a simple way to record and query events in Redis without having to worry about the underlying data structure so we can build more advanced analytics features on top of it.`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h2,{id:\"quickstart\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#quickstart\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this),\"Quickstart\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ol,{children:[`\n`,(0,r.jsxDEV)(e.li,{children:\"Create a redis database\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:18,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:[\"Go to \",(0,r.jsxDEV)(e.a,{href:\"https://console.upstash.com/redis\",children:\"console.upstash.com/redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:20,columnNumber:7},this),` and create\na new global database.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:[\"After creating the db, copy the \",(0,r.jsxDEV)(e.code,{children:\"UPSTASH_REDIS_REST_URL\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:23,columnNumber:33},this),\" and \",(0,r.jsxDEV)(e.code,{children:\"UPSTASH_REDIS_REST_TOKEN\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:23,columnNumber:62},this),\" to your \",(0,r.jsxDEV)(e.code,{children:\".env\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:23,columnNumber:97},this),\" file.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:23,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ol,{start:\"3\",children:[`\n`,(0,r.jsxDEV)(e.li,{children:[\"Install \",(0,r.jsxDEV)(e.code,{children:\"@upstash/analytics\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:25,columnNumber:12},this),\" in your project\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:25,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:25,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"npm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:104},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:143},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"install\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:180},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:223},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"@upstash/analytics\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:260},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:314},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"@upstash/redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:351},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:27,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ol,{start:\"4\",children:[`\n`,(0,r.jsxDEV)(e.li,{children:\"Create an analytics client\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:31,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:104},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" { Analytyics } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:146},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:198},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:238},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"@upstash/analytics\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:275},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\";\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:341},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" { Redis } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:62},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:109},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:149},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"@upstash/redis\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:186},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\";\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:248},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"analytics\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:143},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:180},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:217},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"new\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:254},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:293},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"Analytics\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:330},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:375},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis: Redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:5,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"fromEnv\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:5,columnNumber:71},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(),\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:5,columnNumber:114},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" window: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:6,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"1d\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:6,columnNumber:66},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:6,columnNumber:116},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"});\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:7,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:33,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ol,{start:\"5\",children:[`\n`,(0,r.jsxDEV)(e.li,{children:\"Ingest some events\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:44,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:44,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:[\"An event consists of a \",(0,r.jsxDEV)(e.code,{children:\"time\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:46,columnNumber:24},this),\" field and any additional key-value pairs that you can use to record any information you want.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:46,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:104},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:145},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"event\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:182},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:223},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:260},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:297},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" time: Date.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"now\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:69},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"() \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:108},this),(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// optional (default: Date.now())\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:147},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" userId: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"chronark\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:66},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:122},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" page: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"/auth/login\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:64},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:123},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" country: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:5,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"DE\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:5,columnNumber:67},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:5,columnNumber:117},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:8,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" analytics.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:8,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"ingest\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:8,columnNumber:108},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:8,columnNumber:150},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"pageviews\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:8,columnNumber:187},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", event);\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:8,columnNumber:244},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:8,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:48,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ol,{start:\"4\",children:[`\n`,(0,r.jsxDEV)(e.li,{children:\"Query your events\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:59,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:59,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"result\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:140},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:177},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:214},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:251},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" analytics.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:292},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"query\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:339},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:380},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"pageviews\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:417},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\");\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:474},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:61,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h2,{id:\"development\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#development\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this),\"Development\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:67,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:[\"This project uses \",(0,r.jsxDEV)(e.code,{children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:69,columnNumber:19},this),\" for dependency management.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:69,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h4,{id:\"install-dependencies\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#install-dependencies\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this),\"Install dependencies\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:71,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:104},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:144},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"install\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:181},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:73,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h4,{id:\"build\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#build\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this),\"Build\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:77,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:104},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:144},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"build\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:181},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:79,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h2,{id:\"database-schema\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#database-schema\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this),\"Database Schema\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:84,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:[\"All metrics are stored in Redis \",(0,r.jsxDEV)(e.code,{children:\"Hash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:86,columnNumber:33},this),\" data types and sharded into buckets based on the \",(0,r.jsxDEV)(e.code,{children:\"window\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:86,columnNumber:89},this),\" option.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:86,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.pre,{children:(0,r.jsxDEV)(e.code,{children:`@upstash/analytics:{TABLE}:{TIMESTAMP}\n`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:87,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:87,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ul,{children:[`\n`,(0,r.jsxDEV)(e.li,{children:[(0,r.jsxDEV)(e.code,{children:\"TABLE\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:90,columnNumber:3},this),\" is a namespace to group events together. ie for managing multiple projects int a single database\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:90,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:[(0,r.jsxDEV)(e.code,{children:\"TIMESTAMP\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:91,columnNumber:3},this),\" is the starting timestamp of each window\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:91,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:90,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:\"The field of each hash is a serialized JSON object with the user's event data and the value is the number of times this event has been recorded.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:93,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"json\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"json\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FDAEB7\",fontStyle:\"italic\"},children:\"'{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:'\"page\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:120},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:172},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"/auth/login\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:210},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:269},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:'\"country\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:306},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:361},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"DE\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:399},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"}': \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:449},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"5\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:493},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:530},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" '{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:'\"page\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:64},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:116},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"/auth/login\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:154},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:213},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:'\"country\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:250},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:305},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"US\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:343},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"}': \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:393},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"2\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:437},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:95,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:1},this)}function Nn(l={}){let{wrapper:e}=l.components||{};return e?(0,r.jsxDEV)(e,Object.assign({},l,{children:(0,r.jsxDEV)(Fe,l,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this):Fe(l)}var kn=Nn;return _n(yn);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-core-analytics.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-core-analytics.mdx", - "sourceFileName": "upstash-core-analytics.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-core-analytics" - }, - "type": "Project", - "path": "/projects/upstash-core-analytics", - "slug": "upstash-core-analytics" - }, - { - "published": true, - "title": "@upstash/edge-flags", - "description": "Featues flags for your edge functions.", - "date": "2022-12-12T00:00:00.000Z", - "url": "https://upstash.com/edge-flags", - "repository": "upstash/edge-flags", - "body": { - "raw": "\n\nWhether you want to ship without breaking things, run A/B tests or just want to test in production,\nfeature flags are a great way to dynamically change the behaviour of your app without redeploying. We're excited to announce the public\nbeta release of our new feature flagging library: [@upstash/edge-flags](https://github.com/upstash/edge-flags).\n\n*Edge Flags*, as the name implies, is a feature flag solution built to run at the edge. It is using [Upstash Redis](https://upstash.com/), a globally replicated serverless Redis service, to store configuration and is \ndesigned to work with [Next.js](https://nextjs.org) and [Vercel](https://vercel.com). We want to support other frameworks in the future, so if you have a suggestion, please let us know!\n\nWith the ability to toggle features on and off at the edge, you can quickly respond\nto user feedback and optimize the user experience. Whether you are looking to\nperform A/B testing, gradually roll out a new feature, or simply have the\nability to turn things off in case of an issue, our feature flagging library has\nyou covered.\n\n\n\n## Reference\n\nCheck out the full announcement on [upstash.com](https://upstash.com/blog/edge-flags-beta) for more details.", - "code": "var Component=(()=>{var c=Object.create;var r=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty;var m=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),y=(t,e)=>{for(var a in e)r(t,a,{get:e[a],enumerable:!0})},i=(t,e,a,o)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let s of d(e))!p.call(t,s)&&s!==a&&r(t,s,{get:()=>e[s],enumerable:!(o=g(e,s))||o.enumerable});return t};var b=(t,e,a)=>(a=t!=null?c(f(t)):{},i(e||!t||!t.__esModule?r(a,\"default\",{value:t,enumerable:!0}):a,t)),w=t=>i(r({},\"__esModule\",{value:!0}),t);var l=m((W,h)=>{h.exports=_jsx_runtime});var v={};y(v,{default:()=>k,frontmatter:()=>x});var n=b(l()),x={title:\"@upstash/edge-flags\",description:\"Featues flags for your edge functions.\",date:\"2022-12-12\",url:\"https://upstash.com/edge-flags\",repository:\"upstash/edge-flags\",published:!0};function u(t){let e=Object.assign({p:\"p\",a:\"a\",em:\"em\",h2:\"h2\",span:\"span\"},t.components);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(e.p,{children:[`Whether you want to ship without breaking things, run A/B tests or just want to test in production,\nfeature flags are a great way to dynamically change the behaviour of your app without redeploying. We're excited to announce the public\nbeta release of our new feature flagging library: `,(0,n.jsx)(e.a,{href:\"https://github.com/upstash/edge-flags\",children:\"@upstash/edge-flags\"}),\".\"]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.em,{children:\"Edge Flags\"}),\", as the name implies, is a feature flag solution built to run at the edge. It is using \",(0,n.jsx)(e.a,{href:\"https://upstash.com/\",children:\"Upstash Redis\"}),`, a globally replicated serverless Redis service, to store configuration and is\ndesigned to work with `,(0,n.jsx)(e.a,{href:\"https://nextjs.org\",children:\"Next.js\"}),\" and \",(0,n.jsx)(e.a,{href:\"https://vercel.com\",children:\"Vercel\"}),\". We want to support other frameworks in the future, so if you have a suggestion, please let us know!\"]}),`\n`,(0,n.jsx)(e.p,{children:`With the ability to toggle features on and off at the edge, you can quickly respond\nto user feedback and optimize the user experience. Whether you are looking to\nperform A/B testing, gradually roll out a new feature, or simply have the\nability to turn things off in case of an issue, our feature flagging library has\nyou covered.`}),`\n`,(0,n.jsxs)(e.h2,{id:\"reference\",children:[(0,n.jsx)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#reference\",children:(0,n.jsx)(e.span,{className:\"icon icon-link\"})}),\"Reference\"]}),`\n`,(0,n.jsxs)(e.p,{children:[\"Check out the full announcement on \",(0,n.jsx)(e.a,{href:\"https://upstash.com/blog/edge-flags-beta\",children:\"upstash.com\"}),\" for more details.\"]})]})}function j(t={}){let{wrapper:e}=t.components||{};return e?(0,n.jsx)(e,Object.assign({},t,{children:(0,n.jsx)(u,t)})):u(t)}var k=j;return w(v);})();\n;return Component;" - }, - "_id": "projects/upstash-edge-flags.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-edge-flags.mdx", - "sourceFileName": "upstash-edge-flags.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-edge-flags" - }, - "type": "Project", - "path": "/projects/upstash-edge-flags", - "slug": "upstash-edge-flags" - }, - { - "published": true, - "title": "@upstash/kafka", - "description": "A fully typed Kafka client built for Upstash Kafka and HTTP, perfect for serverless and edge runtimes", - "date": "2022-01-08T00:00:00.000Z", - "url": "https://upstash.com/kafka", - "repository": "upstash/upstash-kafka", - "body": { - "raw": "\n\nAn HTTP/REST based Kafka client built on top of\n[Upstash REST API](https://docs.upstash.com/kafka/rest).\n\nIt is the only connectionless (HTTP based) Kafka client and designed for:\n\n- Serverless functions (AWS Lambda ...)\n- Cloudflare Workers (see the example)\n- Fastly Compute@Edge\n- Next.js Edge, Remix ...\n- Client side web/mobile applications\n- WebAssembly and other environments where HTTP is preferred over TCP\n connections.\n\n# Installation\n\n```bash\nnpm install @upstash/kafka\n```\n\n# Quickstart\n\n## Auth\n\n1. Go to [upstash](https://console.upstash.com/kafka) and select your database.\n2. Copy the `REST API` secrets at the bottom of the page\n\n```typescript\nimport { Kafka } from \"@upstash/kafka\"\n\nconst kafka = new Kafka({\n url: \"\",\n username: \"\",\n password: \"\",\n})\n```\n\n## Produce a single message\n\n```typescript\nconst p = kafka.producer()\nconst message = { hello: \"world\" } // Objects will get serialized using `JSON.stringify`\nconst res = await p.produce(\"\", message)\nconst res = await p.produce(\"\", message, {\n partition: 1,\n timestamp: 12345,\n key: \"\",\n headers: [{ key: \"traceId\", value: \"85a9f12\" }],\n})\n```\n\n## Produce multiple messages.\n\nThe same options from the example above can be set for every message.\n\n```typescript\nconst p = kafka.producer()\nconst res = await p.produceMany([\n {\n topic: \"my.topic\",\n value: { hello: \"world\" },\n // ...options\n },\n {\n topic: \"another.topic\",\n value: \"another message\",\n // ...options\n },\n])\n```\n\n## Consume\n\nThe first time a consumer is created, it needs to figure out the group\ncoordinator by asking the Kafka brokers and joins the consumer group. This\nprocess takes some time to complete. That's why when a consumer instance is\ncreated first time, it may return empty messages until consumer group\ncoordination is completed.\n\n```typescript\nconst c = kafka.consumer()\nconst messages = await c.consume({\n consumerGroupId: \"group_1\",\n instanceId: \"instance_1\",\n topics: [\"test.topic\"],\n autoOffsetReset: \"earliest\",\n})\n```\n\nMore examples can be found in the\n[docstring](https://github.com/upstash/upstash-kafka/blob/main/pkg/consumer.ts#L265)\n\n## Commit manually\n\nWhile `consume` can handle committing automatically, you can also use\n`Consumer.commit` to manually commit.\n\n```typescript\nconst consumerGroupId = \"mygroup\"\nconst instanceId = \"myinstance\"\nconst topic = \"my.topic\"\n\nconst c = kafka.consumer()\nconst messages = await c.consume({\n consumerGroupId,\n instanceId,\n topics: [topic],\n autoCommit: false,\n})\n\nfor (const message of messages) {\n // message handling logic\n\n await c.commit({\n consumerGroupId,\n instanceId,\n offset: {\n topic: message.topic,\n partition: message.partition,\n offset: message.offset,\n },\n })\n}\n```\n\n## Fetch\n\nYou can also manage offsets manually by using `Consumer.fetch`\n\n```typescript\nconst c = kafka.consumer()\nconst messages = await c.fetch({\n topic: \"greeting\",\n partition: 3,\n offset: 42,\n timeout: 1000,\n})\n```\n\n## Examples\n\nSee [/examples](https://github.com/upstash/upstash-kafka/tree/main/examples) as\nwell as various examples in the docstrings of each method.\n\n# Contributing\n\n## Requirements\n\n- [nodejs](https://nodejs.org) v14.x or higher\n- [pnpm](https://pnpm.io/installation)\n\n## Setup\n\n0. Install dependencies using `pnpm install`\n1. Create a kafka instance on upstash.\n [docs](https://docs.upstash.com/kafka#create-a-kafka-cluster)\n2. Create the following topics: `blue`, `red`, `green`.\n [docs](https://docs.upstash.com/kafka#create-a-topic)\n\n The partitions or retention settings don't matter at this time.\n\n3. Create `.env` file with your kafka secrets `cp .env.example .env`\n\n## Running tests\n\n```bash\npnpm test\n```\n", - "code": "var Component=(()=>{var dn=Object.create;var P=Object.defineProperty;var mn=Object.getOwnPropertyDescriptor;var ln=Object.getOwnPropertyNames;var bn=Object.getPrototypeOf,un=Object.prototype.hasOwnProperty;var G=(m,e)=>()=>(e||m((e={exports:{}}).exports,e),e.exports),hn=(m,e)=>{for(var _ in e)P(m,_,{get:e[_],enumerable:!0})},ye=(m,e,_,x)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let k of ln(e))!un.call(m,k)&&k!==_&&P(m,k,{get:()=>e[k],enumerable:!(x=mn(e,k))||x.enumerable});return m};var fn=(m,e,_)=>(_=m!=null?dn(bn(m)):{},ye(e||!m||!m.__esModule?P(_,\"default\",{value:m,enumerable:!0}):_,m)),_n=m=>ye(P({},\"__esModule\",{value:!0}),m);var Ee=G((gn,ge)=>{ge.exports=React});var je=G(q=>{\"use strict\";(function(){\"use strict\";var m=Ee(),e=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),x=Symbol.for(\"react.fragment\"),k=Symbol.for(\"react.strict_mode\"),H=Symbol.for(\"react.profiler\"),z=Symbol.for(\"react.provider\"),X=Symbol.for(\"react.context\"),F=Symbol.for(\"react.forward_ref\"),O=Symbol.for(\"react.suspense\"),A=Symbol.for(\"react.suspense_list\"),C=Symbol.for(\"react.memo\"),D=Symbol.for(\"react.lazy\"),Ce=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Re=\"@@iterator\";function Te(r){if(r===null||typeof r!=\"object\")return null;var a=J&&r[J]||r[Re];return typeof a==\"function\"?a:null}var g=m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function u(r){{for(var a=arguments.length,t=new Array(a>1?a-1:0),o=1;o=1&&b>=0&&s[l]!==h[b];)b--;for(;l>=1&&b>=0;l--,b--)if(s[l]!==h[b]){if(l!==1||b!==1)do if(l--,b--,b<0||s[l]!==h[b]){var f=`\n`+s[l].replace(\" at new \",\" at \");return r.displayName&&f.includes(\"\")&&(f=f.replace(\"\",r.displayName)),typeof r==\"function\"&&T.set(r,f),f}while(l>=1&&b>=0);break}}}finally{W=!1,I.current=i,We(),Error.prepareStackTrace=d}var j=r?r.displayName||r.name:\"\",xe=j?R(j):\"\";return typeof r==\"function\"&&T.set(r,xe),xe}function Me(r,a,t){return de(r,!1)}function $e(r){var a=r.prototype;return!!(a&&a.isReactComponent)}function w(r,a,t){if(r==null)return\"\";if(typeof r==\"function\")return de(r,$e(r));if(typeof r==\"string\")return R(r);switch(r){case O:return R(\"Suspense\");case A:return R(\"SuspenseList\")}if(typeof r==\"object\")switch(r.$$typeof){case F:return Me(r.render);case C:return w(r.type,a,t);case D:{var o=r,d=o._payload,i=o._init;try{return w(i(d),a,t)}catch{}}}return\"\"}var S=Object.prototype.hasOwnProperty,ie={},me=g.ReactDebugCurrentFrame;function B(r){if(r){var a=r._owner,t=w(r.type,r._source,a?a.type:null);me.setExtraStackFrame(t)}else me.setExtraStackFrame(null)}function Ve(r,a,t,o,d){{var i=Function.call.bind(S);for(var c in r)if(i(r,c)){var s=void 0;try{if(typeof r[c]!=\"function\"){var h=Error((o||\"React class\")+\": \"+t+\" type `\"+c+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof r[c]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw h.name=\"Invariant Violation\",h}s=r[c](a,c,o,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(l){s=l}s&&!(s instanceof Error)&&(B(d),u(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",o||\"React class\",t,c,typeof s),B(null)),s instanceof Error&&!(s.message in ie)&&(ie[s.message]=!0,B(d),u(\"Failed %s type: %s\",t,s.message),B(null))}}}var Ke=Array.isArray;function Y(r){return Ke(r)}function Ge(r){{var a=typeof Symbol==\"function\"&&Symbol.toStringTag,t=a&&r[Symbol.toStringTag]||r.constructor.name||\"Object\";return t}}function qe(r){try{return le(r),!1}catch{return!0}}function le(r){return\"\"+r}function be(r){if(qe(r))return u(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Ge(r)),le(r)}var v=g.ReactCurrentOwner,He={key:!0,ref:!0,__self:!0,__source:!0},ue,he,M;M={};function ze(r){if(S.call(r,\"ref\")){var a=Object.getOwnPropertyDescriptor(r,\"ref\").get;if(a&&a.isReactWarning)return!1}return r.ref!==void 0}function Xe(r){if(S.call(r,\"key\")){var a=Object.getOwnPropertyDescriptor(r,\"key\").get;if(a&&a.isReactWarning)return!1}return r.key!==void 0}function Je(r,a){if(typeof r.ref==\"string\"&&v.current&&a&&v.current.stateNode!==a){var t=p(v.current.type);M[t]||(u('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(v.current.type),r.ref),M[t]=!0)}}function Qe(r,a){{var t=function(){ue||(ue=!0,u(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(r,\"key\",{get:t,configurable:!0})}}function Ze(r,a){{var t=function(){he||(he=!0,u(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(r,\"ref\",{get:t,configurable:!0})}}var en=function(r,a,t,o,d,i,c){var s={$$typeof:e,type:r,key:a,ref:t,props:c,_owner:i};return s._store={},Object.defineProperty(s._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(s,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(s,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:d}),Object.freeze&&(Object.freeze(s.props),Object.freeze(s)),s};function nn(r,a,t,o,d){{var i,c={},s=null,h=null;t!==void 0&&(be(t),s=\"\"+t),Xe(a)&&(be(a.key),s=\"\"+a.key),ze(a)&&(h=a.ref,Je(a,d));for(i in a)S.call(a,i)&&!He.hasOwnProperty(i)&&(c[i]=a[i]);if(r&&r.defaultProps){var l=r.defaultProps;for(i in l)c[i]===void 0&&(c[i]=l[i])}if(s||h){var b=typeof r==\"function\"?r.displayName||r.name||\"Unknown\":r;s&&Qe(c,b),h&&Ze(c,b)}return en(r,s,h,d,o,v.current,c)}}var $=g.ReactCurrentOwner,fe=g.ReactDebugCurrentFrame;function E(r){if(r){var a=r._owner,t=w(r.type,r._source,a?a.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}var V;V=!1;function K(r){return typeof r==\"object\"&&r!==null&&r.$$typeof===e}function _e(){{if($.current){var r=p($.current.type);if(r)return`\n\nCheck the render method of \\``+r+\"`.\"}return\"\"}}function rn(r){{if(r!==void 0){var a=r.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=r.lineNumber;return`\n\nCheck your code at `+a+\":\"+t+\".\"}return\"\"}}var pe={};function an(r){{var a=_e();if(!a){var t=typeof r==\"string\"?r:r.displayName||r.name;t&&(a=`\n\nCheck the top-level render call using <`+t+\">.\")}return a}}function Ne(r,a){{if(!r._store||r._store.validated||r.key!=null)return;r._store.validated=!0;var t=an(a);if(pe[t])return;pe[t]=!0;var o=\"\";r&&r._owner&&r._owner!==$.current&&(o=\" It was passed a child from \"+p(r._owner.type)+\".\"),E(r),u('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,o),E(null)}}function ke(r,a){{if(typeof r!=\"object\")return;if(Y(r))for(var t=0;t\",s=\" Did you accidentally export a JSX literal instead of a component?\"):l=typeof r,u(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",l,s)}var b=nn(r,a,t,d,i);if(b==null)return b;if(c){var f=a.children;if(f!==void 0)if(o)if(Y(f)){for(var j=0;j{\"use strict\";Ue.exports=je()});var xn={};hn(xn,{default:()=>kn,frontmatter:()=>pn});var n=fn(ve()),pn={title:\"@upstash/kafka\",description:\"A fully typed Kafka client built for Upstash Kafka and HTTP, perfect for serverless and edge runtimes\",date:\"2022-01-08\",url:\"https://upstash.com/kafka\",repository:\"upstash/upstash-kafka\",published:!0};function Fe(m){let e=Object.assign({p:\"p\",a:\"a\",ul:\"ul\",li:\"li\",h1:\"h1\",span:\"span\",div:\"div\",pre:\"pre\",code:\"code\",h2:\"h2\",ol:\"ol\"},m.components);return(0,n.jsxDEV)(n.Fragment,{children:[(0,n.jsxDEV)(e.p,{children:[`An HTTP/REST based Kafka client built on top of\n`,(0,n.jsxDEV)(e.a,{href:\"https://docs.upstash.com/kafka/rest\",children:\"Upstash REST API\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:1},this),\".\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:\"It is the only connectionless (HTTP based) Kafka client and designed for:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.ul,{children:[`\n`,(0,n.jsxDEV)(e.li,{children:\"Serverless functions (AWS Lambda ...)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"Cloudflare Workers (see the example)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"Fastly Compute@Edge\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"Next.js Edge, Remix ...\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"Client side web/mobile applications\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:21,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:`WebAssembly and other environments where HTTP is preferred over TCP\nconnections.`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:22,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h1,{id:\"installation\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#installation\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Installation\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:25,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"npm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:143},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"install\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:180},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:223},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"@upstash/kafka\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:260},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:27,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h1,{id:\"quickstart\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#quickstart\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Quickstart\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"auth\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#auth\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Auth\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:33,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.ol,{children:[`\n`,(0,n.jsxDEV)(e.li,{children:[\"Go to \",(0,n.jsxDEV)(e.a,{href:\"https://console.upstash.com/kafka\",children:\"upstash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:35,columnNumber:10},this),\" and select your database.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:[\"Copy the \",(0,n.jsxDEV)(e.code,{children:\"REST API\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:36,columnNumber:13},this),\" secrets at the bottom of the page\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:36,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" { Kafka } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:146},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:193},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:233},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"@upstash/kafka\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:270},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"kafka\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:139},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:176},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:213},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"new\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:250},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:289},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"Kafka\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:326},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:367},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" url: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:63},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:141},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" username: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:68},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:151},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" password: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:68},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:151},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:38,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"produce-a-single-message\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#produce-a-single-message\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Produce a single message\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:48,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:145},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"p\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:182},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:219},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:256},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:293},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"producer\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:336},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:380},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"message\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:141},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:178},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" { hello: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:215},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"world\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:261},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:314},this),(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// Objects will get serialized using `JSON.stringify`\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:353},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"res\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:137},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:174},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:211},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:248},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" p.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:289},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"produce\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:328},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:371},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:408},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", message)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:472},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"res\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:137},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:174},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:211},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:248},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" p.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:289},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"produce\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:328},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:371},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:408},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", message, {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:472},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" partition: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:69},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:106},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" timestamp: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"12345\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:69},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" key: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:63},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:129},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" headers: [{ key: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"traceId\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:75},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", value: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:130},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"85a9f12\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:175},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" }],\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:230},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:50,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"produce-multiple-messages\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#produce-multiple-messages\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Produce multiple messages.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:62,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:\"The same options from the example above can be set for every message.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:64,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:145},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"p\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:182},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:219},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:256},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:293},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"producer\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:336},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:380},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"res\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:137},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:174},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:211},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:248},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" p.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:289},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"produceMany\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:328},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"([\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:375},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topic: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"my.topic\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:67},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:123},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" value: { hello: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"world\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:76},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" },\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:129},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// ...options\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:60},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" },\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topic: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"another.topic\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:67},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:128},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" value: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"another message\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:67},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:130},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:11,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// ...options\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:11,columnNumber:60},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" },\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:12,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"])\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:66,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"consume\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#consume\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Consume\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:`The first time a consumer is created, it needs to figure out the group\ncoordinator by asking the Kafka brokers and joins the consumer group. This\nprocess takes some time to complete. That's why when a consumer instance is\ncreated first time, it may return empty messages until consumer group\ncoordination is completed.`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:84,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:145},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"c\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:182},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:219},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:256},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:293},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"consumer\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:336},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:380},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"messages\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:142},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:179},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:216},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:253},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" c.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:294},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"consume\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:333},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:376},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" consumerGroupId: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"group_1\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:75},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:130},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" instanceId: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"instance_1\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:70},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:128},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topics: [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"test.topic\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:67},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"],\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:125},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" autoOffsetReset: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"earliest\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:75},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:131},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:90,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:[`More examples can be found in the\n`,(0,n.jsxDEV)(e.a,{href:\"https://github.com/upstash/upstash-kafka/blob/main/pkg/consumer.ts#L265\",children:\"docstring\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:101,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:100,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"commit-manually\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#commit-manually\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Commit manually\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:103,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:[\"While \",(0,n.jsxDEV)(e.code,{children:\"consume\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:105,columnNumber:7},this),` can handle committing automatically, you can also use\n`,(0,n.jsxDEV)(e.code,{children:\"Consumer.commit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:106,columnNumber:1},this),\" to manually commit.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:105,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:145},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"consumerGroupId\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:182},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:233},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:270},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:307},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"mygroup\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:344},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"instanceId\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:144},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:181},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:218},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"myinstance\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:255},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"topic\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:139},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:176},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:213},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"my.topic\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:250},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"c\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:135},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:172},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:209},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"consumer\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:252},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:296},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"messages\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:142},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:179},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:216},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:253},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" c.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:294},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"consume\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:333},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:376},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" consumerGroupId,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" instanceId,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topics: [topic],\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" autoCommit: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"false\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:70},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:111},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:11,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"for\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" (\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:59},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:97},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:138},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"message\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:175},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:218},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"of\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:255},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" messages) {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:293},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:14,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// message handling logic\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:14,columnNumber:58},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:16,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:16,columnNumber:58},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" c.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:16,columnNumber:99},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"commit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:16,columnNumber:138},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:16,columnNumber:180},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" consumerGroupId,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:17,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" instanceId,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:18,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" offset: {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:19,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topic: message.topic,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:20,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" partition: message.partition,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:21,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:21,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" offset: message.offset,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:22,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:22,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" },\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:23,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:23,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" })\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:24,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:24,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:25,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:25,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:108,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"fetch\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#fetch\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Fetch\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:136,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:[\"You can also manage offsets manually by using \",(0,n.jsxDEV)(e.code,{children:\"Consumer.fetch\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:138,columnNumber:47},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:138,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:145},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"c\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:182},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:219},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:256},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:293},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"consumer\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:336},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:380},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"messages\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:142},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:179},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:216},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:253},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" c.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:294},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"fetch\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:333},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:374},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topic: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"greeting\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:65},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:121},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" partition: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"3\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:69},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:106},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" offset: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"42\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:66},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:104},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" timeout: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"1000\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:67},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:107},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:140,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"examples\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#examples\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Examples\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:150,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:[\"See \",(0,n.jsxDEV)(e.a,{href:\"https://github.com/upstash/upstash-kafka/tree/main/examples\",children:\"/examples\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:152,columnNumber:5},this),` as\nwell as various examples in the docstrings of each method.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:152,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h1,{id:\"contributing\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#contributing\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Contributing\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:155,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"requirements\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#requirements\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Requirements\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:157,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.ul,{children:[`\n`,(0,n.jsxDEV)(e.li,{children:[(0,n.jsxDEV)(e.a,{href:\"https://nodejs.org\",children:\"nodejs\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:159,columnNumber:3},this),\" v14.x or higher\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:159,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:(0,n.jsxDEV)(e.a,{href:\"https://pnpm.io/installation\",children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:160,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:160,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:159,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"setup\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#setup\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Setup\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:162,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.ol,{start:\"0\",children:[`\n`,(0,n.jsxDEV)(e.li,{children:[`\n`,(0,n.jsxDEV)(e.p,{children:[\"Install dependencies using \",(0,n.jsxDEV)(e.code,{children:\"pnpm install\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:164,columnNumber:31},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:164,columnNumber:4},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:164,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:[`\n`,(0,n.jsxDEV)(e.p,{children:[`Create a kafka instance on upstash.\n`,(0,n.jsxDEV)(e.a,{href:\"https://docs.upstash.com/kafka#create-a-kafka-cluster\",children:\"docs\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:166,columnNumber:4},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:165,columnNumber:4},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:165,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:[`\n`,(0,n.jsxDEV)(e.p,{children:[\"Create the following topics: \",(0,n.jsxDEV)(e.code,{children:\"blue\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:167,columnNumber:33},this),\", \",(0,n.jsxDEV)(e.code,{children:\"red\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:167,columnNumber:41},this),\", \",(0,n.jsxDEV)(e.code,{children:\"green\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:167,columnNumber:48},this),`.\n`,(0,n.jsxDEV)(e.a,{href:\"https://docs.upstash.com/kafka#create-a-topic\",children:\"docs\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:168,columnNumber:4},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:167,columnNumber:4},this),`\n`,(0,n.jsxDEV)(e.p,{children:\"The partitions or retention settings don't matter at this time.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:170,columnNumber:4},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:167,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:[`\n`,(0,n.jsxDEV)(e.p,{children:[\"Create \",(0,n.jsxDEV)(e.code,{children:\".env\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:172,columnNumber:11},this),\" file with your kafka secrets \",(0,n.jsxDEV)(e.code,{children:\"cp .env.example .env\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:172,columnNumber:47},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:172,columnNumber:4},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:172,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:164,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"running-tests\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#running-tests\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Running tests\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:174,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:144},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"test\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:181},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:176,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)}function Nn(m={}){let{wrapper:e}=m.components||{};return e?(0,n.jsxDEV)(e,Object.assign({},m,{children:(0,n.jsxDEV)(Fe,m,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this):Fe(m)}var kn=Nn;return _n(xn);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-kafka.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-kafka.mdx", - "sourceFileName": "upstash-kafka.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-kafka" - }, - "type": "Project", - "path": "/projects/upstash-kafka", - "slug": "upstash-kafka" - }, - { - "published": true, - "title": "@upstash/qstash", - "description": "A typescript client and consumer for QStash.", - "date": "2022-07-18T00:00:00.000Z", - "url": "https://upstash.com/qstash", - "repository": "upstash/sdk-qstash-ts", - "body": { - "raw": "\n\n@upstash/qstash is the official client and consumer for [QStash](https://chronark.com/projects/qstash).\n\nQStash is the message broker between your serverless apps. You send an HTTP\nrequest to QStash, that includes a destination, a payload and optional settings.\nWe durably store your message and will deliver it to the destination API via\nHTTP. In case the destination is not ready to receive the message, we will retry\nthe message later, to guarentee at-least-once delivery.\n\n```bash\nnpm install @upstash/qstash\n```\n", - "code": "var Component=(()=>{var h=Object.create;var r=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var m=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var g=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),f=(t,e)=>{for(var a in e)r(t,a,{get:e[a],enumerable:!0})},i=(t,e,a,o)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let n of u(e))!y.call(t,n)&&n!==a&&r(t,n,{get:()=>e[n],enumerable:!(o=p(e,n))||o.enumerable});return t};var x=(t,e,a)=>(a=t!=null?h(m(t)):{},i(e||!t||!t.__esModule?r(a,\"default\",{value:t,enumerable:!0}):a,t)),b=t=>i(r({},\"__esModule\",{value:!0}),t);var c=g((_,l)=>{l.exports=_jsx_runtime});var q={};f(q,{default:()=>E,frontmatter:()=>j});var s=x(c()),j={title:\"@upstash/qstash\",description:\"A typescript client and consumer for QStash.\",date:\"2022-07-18\",url:\"https://upstash.com/qstash\",repository:\"upstash/sdk-qstash-ts\",published:!0};function d(t){let e=Object.assign({p:\"p\",a:\"a\",div:\"div\",pre:\"pre\",code:\"code\",span:\"span\"},t.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(e.p,{children:[\"@upstash/qstash is the official client and consumer for \",(0,s.jsx)(e.a,{href:\"https://chronark.com/projects/qstash\",children:\"QStash\"}),\".\"]}),`\n`,(0,s.jsx)(e.p,{children:`QStash is the message broker between your serverless apps. You send an HTTP\nrequest to QStash, that includes a destination, a payload and optional settings.\nWe durably store your message and will deliver it to the destination API via\nHTTP. In case the destination is not ready to receive the message, we will retry\nthe message later, to guarentee at-least-once delivery.`}),`\n`,(0,s.jsx)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,s.jsx)(e.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,s.jsx)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,s.jsxs)(e.span,{className:\"line\",children:[(0,s.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"npm\"}),(0,s.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,s.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"install\"}),(0,s.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,s.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"@upstash/qstash\"})]})})})})]})}function v(t={}){let{wrapper:e}=t.components||{};return e?(0,s.jsx)(e,Object.assign({},t,{children:(0,s.jsx)(d,t)})):d(t)}var E=v;return b(q);})();\n;return Component;" - }, - "_id": "projects/upstash-qstash-sdk.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-qstash-sdk.mdx", - "sourceFileName": "upstash-qstash-sdk.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-qstash-sdk" - }, - "type": "Project", - "path": "/projects/upstash-qstash-sdk", - "slug": "upstash-qstash-sdk" - }, - { - "published": true, - "title": "@upstash/ratelimit", - "description": "Ratelimiting library for serverless and edge runtimes. Built on top of Upstash Redis.", - "date": "2022-06-06T00:00:00.000Z", - "url": "https://upstash.com/ratelimit", - "repository": "upstash/ratelimit", - "body": { - "raw": "\nIn today's digital age, serverless computing has become increasingly popular due to its scalability and cost-efficiency. One of the challenges of serverless computing is to manage resources efficiently, and one critical aspect of this is rate limiting. Rate limiting is a technique that limits the number of requests a client can make to a server over a given period. This technique can prevent abuse, improve performance, and reduce costs. One npm package that helps implement rate limiting for serverless applications is @upstash/ratelimit, built on top of Upstash Redis.\n\nUpstash is a managed Redis-compatible database service designed for serverless applications.\n\n`@upstash/ratelimit` is an npm package that provides serverless rate limiting using Upstash Redis. The package offers a simple API that can be used to limit the number of requests a client can make within a given time frame. The following algorithms are supported:\n\n- Fixed window\n- Sliding window\n- Leaky bucket\n\n\nUsing `@upstash/ratelimit` is straightforward. First, you need to install the package using npm:\n\n```bash\nnpm install @upstash/ratelimit @upstash/redis\n```\nThen, you can use it in your application:\n\n```ts\nimport { Ratelimit } from \"@upstash/ratelimit\"\nimport { Redis } from \"@upstash/redis\"\n\nconst ratelimit = new Ratelimit({\n redis: new Redis({\n url: \"\",\n token: \"\"\n }),\n limiter: Ratelimit.slidingWindow(10, \"10s\"),\n analytics: true\n})\n\n\n// Check if the client has exceeded the rate limit\nconst { success } = await ratelimit.limit(\"identifier\")\n```\n\nIn the code above, we initialize Upstash with our Upstash Redis credentials and define our rate limiting rules. We then call the `limit` function, passing the identifier. The function returns a Promise that resolves with `success` and some other useful data.\n\n`@upstash/ratelimit` is a useful npm package for serverless rate limiting that simplifies the process of implementing rate limiting for serverless applications. The package is built on top of Upstash Redis, which provides a complete solution for serverless applications. With `@upstash/ratelimit`, serverless developers can easily implement rate limiting, which can help prevent abuse, improve performance, and reduce costs.", - "code": "var Component=(()=>{var ir=Object.create;var S=Object.defineProperty;var lr=Object.getOwnPropertyDescriptor;var ur=Object.getOwnPropertyNames;var dr=Object.getPrototypeOf,mr=Object.prototype.hasOwnProperty;var z=(u,r)=>()=>(r||u((r={exports:{}}).exports,r),r.exports),hr=(u,r)=>{for(var p in r)S(u,p,{get:r[p],enumerable:!0})},ke=(u,r,p,g)=>{if(r&&typeof r==\"object\"||typeof r==\"function\")for(let y of ur(r))!mr.call(u,y)&&y!==p&&S(u,y,{get:()=>r[y],enumerable:!(g=lr(r,y))||g.enumerable});return u};var fr=(u,r,p)=>(p=u!=null?ir(dr(u)):{},ke(r||!u||!u.__esModule?S(p,\"default\",{value:u,enumerable:!0}):p,u)),br=u=>ke(S({},\"__esModule\",{value:!0}),u);var ve=z((kr,xe)=>{xe.exports=React});var Ee=z(G=>{\"use strict\";(function(){\"use strict\";var u=ve(),r=Symbol.for(\"react.element\"),p=Symbol.for(\"react.portal\"),g=Symbol.for(\"react.fragment\"),y=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),R=Symbol.for(\"react.forward_ref\"),D=Symbol.for(\"react.suspense\"),A=Symbol.for(\"react.suspense_list\"),F=Symbol.for(\"react.memo\"),B=Symbol.for(\"react.lazy\"),Fe=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Te=\"@@iterator\";function we(e){if(e===null||typeof e!=\"object\")return null;var a=J&&e[J]||e[Te];return typeof a==\"function\"?a:null}var x=u.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function h(e){{for(var a=arguments.length,t=new Array(a>1?a-1:0),c=1;c=1&&m>=0&&o[d]!==f[m];)m--;for(;d>=1&&m>=0;d--,m--)if(o[d]!==f[m]){if(d!==1||m!==1)do if(d--,m--,m<0||o[d]!==f[m]){var b=`\n`+o[d].replace(\" at new \",\" at \");return e.displayName&&b.includes(\"\")&&(b=b.replace(\"\",e.displayName)),typeof e==\"function\"&&w.set(e,b),b}while(d>=1&&m>=0);break}}}finally{Y=!1,I.current=l,Ye(),Error.prepareStackTrace=i}var E=e?e.displayName||e.name:\"\",ge=E?T(E):\"\";return typeof e==\"function\"&&w.set(e,ge),ge}function Me(e,a,t){return ie(e,!1)}function Ve(e){var a=e.prototype;return!!(a&&a.isReactComponent)}function C(e,a,t){if(e==null)return\"\";if(typeof e==\"function\")return ie(e,Ve(e));if(typeof e==\"string\")return T(e);switch(e){case D:return T(\"Suspense\");case A:return T(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case R:return Me(e.render);case F:return C(e.type,a,t);case B:{var c=e,i=c._payload,l=c._init;try{return C(l(i),a,t)}catch{}}}return\"\"}var O=Object.prototype.hasOwnProperty,le={},ue=x.ReactDebugCurrentFrame;function P(e){if(e){var a=e._owner,t=C(e.type,e._source,a?a.type:null);ue.setExtraStackFrame(t)}else ue.setExtraStackFrame(null)}function Le(e,a,t,c,i){{var l=Function.call.bind(O);for(var s in e)if(l(e,s)){var o=void 0;try{if(typeof e[s]!=\"function\"){var f=Error((c||\"React class\")+\": \"+t+\" type `\"+s+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[s]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw f.name=\"Invariant Violation\",f}o=e[s](a,s,c,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(d){o=d}o&&!(o instanceof Error)&&(P(i),h(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",c||\"React class\",t,s,typeof o),P(null)),o instanceof Error&&!(o.message in le)&&(le[o.message]=!0,P(i),h(\"Failed %s type: %s\",t,o.message),P(null))}}}var qe=Array.isArray;function $(e){return qe(e)}function ze(e){{var a=typeof Symbol==\"function\"&&Symbol.toStringTag,t=a&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function Ge(e){try{return de(e),!1}catch{return!0}}function de(e){return\"\"+e}function me(e){if(Ge(e))return h(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",ze(e)),de(e)}var U=x.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},he,fe,M;M={};function Ke(e){if(O.call(e,\"ref\")){var a=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(a&&a.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(O.call(e,\"key\")){var a=Object.getOwnPropertyDescriptor(e,\"key\").get;if(a&&a.isReactWarning)return!1}return e.key!==void 0}function Je(e,a){if(typeof e.ref==\"string\"&&U.current&&a&&U.current.stateNode!==a){var t=_(U.current.type);M[t]||(h('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',_(U.current.type),e.ref),M[t]=!0)}}function Ze(e,a){{var t=function(){he||(he=!0,h(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,a){{var t=function(){fe||(fe=!0,h(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,a,t,c,i,l,s){var o={$$typeof:r,type:e,key:a,ref:t,props:s,_owner:l};return o._store={},Object.defineProperty(o._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(o,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:c}),Object.defineProperty(o,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(o.props),Object.freeze(o)),o};function rr(e,a,t,c,i){{var l,s={},o=null,f=null;t!==void 0&&(me(t),o=\"\"+t),He(a)&&(me(a.key),o=\"\"+a.key),Ke(a)&&(f=a.ref,Je(a,i));for(l in a)O.call(a,l)&&!Xe.hasOwnProperty(l)&&(s[l]=a[l]);if(e&&e.defaultProps){var d=e.defaultProps;for(l in d)s[l]===void 0&&(s[l]=d[l])}if(o||f){var m=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;o&&Ze(s,m),f&&Qe(s,m)}return er(e,o,f,i,c,U.current,s)}}var V=x.ReactCurrentOwner,be=x.ReactDebugCurrentFrame;function v(e){if(e){var a=e._owner,t=C(e.type,e._source,a?a.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var L;L=!1;function q(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===r}function pe(){{if(V.current){var e=_(V.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function nr(e){{if(e!==void 0){var a=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+a+\":\"+t+\".\"}return\"\"}}var _e={};function ar(e){{var a=pe();if(!a){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(a=`\n\nCheck the top-level render call using <`+t+\">.\")}return a}}function Ne(e,a){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=ar(a);if(_e[t])return;_e[t]=!0;var c=\"\";e&&e._owner&&e._owner!==V.current&&(c=\" It was passed a child from \"+_(e._owner.type)+\".\"),v(e),h('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,c),v(null)}}function ye(e,a){{if(typeof e!=\"object\")return;if($(e))for(var t=0;t\",o=\" Did you accidentally export a JSX literal instead of a component?\"):d=typeof e,h(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",d,o)}var m=rr(e,a,t,i,l);if(m==null)return m;if(s){var b=a.children;if(b!==void 0)if(c)if($(b)){for(var E=0;E{\"use strict\";je.exports=Ee()});var yr={};hr(yr,{default:()=>Nr,frontmatter:()=>pr});var n=fr(Ue()),pr={title:\"@upstash/ratelimit\",description:\"Ratelimiting library for serverless and edge runtimes. Built on top of Upstash Redis.\",date:\"2022-06-06\",url:\"https://upstash.com/ratelimit\",repository:\"upstash/ratelimit\",published:!0};function Re(u){let r=Object.assign({p:\"p\",code:\"code\",ul:\"ul\",li:\"li\",div:\"div\",pre:\"pre\",span:\"span\"},u.components);return(0,n.jsxDEV)(n.Fragment,{children:[(0,n.jsxDEV)(r.p,{children:\"In today's digital age, serverless computing has become increasingly popular due to its scalability and cost-efficiency. One of the challenges of serverless computing is to manage resources efficiently, and one critical aspect of this is rate limiting. Rate limiting is a technique that limits the number of requests a client can make to a server over a given period. This technique can prevent abuse, improve performance, and reduce costs. One npm package that helps implement rate limiting for serverless applications is @upstash/ratelimit, built on top of Upstash Redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:\"Upstash is a managed Redis-compatible database service designed for serverless applications.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[(0,n.jsxDEV)(r.code,{children:\"@upstash/ratelimit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:1},this),\" is an npm package that provides serverless rate limiting using Upstash Redis. The package offers a simple API that can be used to limit the number of requests a client can make within a given time frame. The following algorithms are supported:\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.ul,{children:[`\n`,(0,n.jsxDEV)(r.li,{children:\"Fixed window\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.li,{children:\"Sliding window\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.li,{children:\"Leaky bucket\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:19,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[\"Using \",(0,n.jsxDEV)(r.code,{children:\"@upstash/ratelimit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:22,columnNumber:7},this),\" is straightforward. First, you need to install the package using npm:\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:22,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(r.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(r.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"npm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:143},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"install\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:180},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:223},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"@upstash/ratelimit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:260},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:314},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"@upstash/redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:351},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:24,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:\"Then, you can use it in your application:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:27,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(r.pre,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(r.code,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" { Ratelimit } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:146},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:197},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:237},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"@upstash/ratelimit\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:274},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" { Redis } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:2,columnNumber:62},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:2,columnNumber:109},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:2,columnNumber:149},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"@upstash/redis\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:2,columnNumber:186},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:61},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"ratelimit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:98},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:143},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:180},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:217},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"new\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:254},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:293},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"Ratelimit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:330},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:375},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" redis: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"new\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:5,columnNumber:67},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:5,columnNumber:106},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"Redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:5,columnNumber:143},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:5,columnNumber:184},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" url: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:6,columnNumber:69},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:6,columnNumber:117},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" token: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:7,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:7,columnNumber:71},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" }),\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" limiter: Ratelimit.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:9,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"slidingWindow\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:9,columnNumber:79},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:9,columnNumber:128},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"10\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:9,columnNumber:165},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:9,columnNumber:203},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"10s\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:9,columnNumber:241},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"),\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:9,columnNumber:292},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" analytics: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:10,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"true\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:10,columnNumber:71},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:11,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#6A737D\"},children:\"// Check if the client has exceeded the rate limit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:14,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" { \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:61},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"success\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:100},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:143},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:182},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:219},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:256},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" ratelimit.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:297},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"limit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:344},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:385},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"identifier\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:422},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\")\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:480},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:29,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[\"In the code above, we initialize Upstash with our Upstash Redis credentials and define our rate limiting rules. We then call the \",(0,n.jsxDEV)(r.code,{children:\"limit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:47,columnNumber:130},this),\" function, passing the identifier. The function returns a Promise that resolves with \",(0,n.jsxDEV)(r.code,{children:\"success\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:47,columnNumber:222},this),\" and some other useful data.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:47,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[(0,n.jsxDEV)(r.code,{children:\"@upstash/ratelimit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:49,columnNumber:1},this),\" is a useful npm package for serverless rate limiting that simplifies the process of implementing rate limiting for serverless applications. The package is built on top of Upstash Redis, which provides a complete solution for serverless applications. With \",(0,n.jsxDEV)(r.code,{children:\"@upstash/ratelimit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:49,columnNumber:277},this),\", serverless developers can easily implement rate limiting, which can help prevent abuse, improve performance, and reduce costs.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:49,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:1},this)}function _r(u={}){let{wrapper:r}=u.components||{};return r?(0,n.jsxDEV)(r,Object.assign({},u,{children:(0,n.jsxDEV)(Re,u,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\"},this):Re(u)}var Nr=_r;return br(yr);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-ratelimit.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-ratelimit.mdx", - "sourceFileName": "upstash-ratelimit.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-ratelimit" - }, - "type": "Project", - "path": "/projects/upstash-ratelimit", - "slug": "upstash-ratelimit" - }, - { - "published": true, - "title": "React.js CLI", - "description": "A CLI React component to interact with Upstash Redis databases.", - "date": "2023-02-05T00:00:00.000Z", - "url": "https://upstash.com", - "repository": "upstash/react-ui", - "body": { - "raw": "\n\n`@upstash/react-ui` is powering the CLI in your browser on [console.upstash.com](https://comsole.upstash.com). It allows you to interact with your Upstash Redis database in a simple and intuitive way.", - "code": "var Component=(()=>{var sr=Object.create;var A=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var lr=Object.getOwnPropertyNames;var fr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(c,u)=>()=>(u||c((u={exports:{}}).exports,u),u.exports),vr=(c,u)=>{for(var b in u)A(c,b,{get:u[b],enumerable:!0})},_e=(c,u,b,E)=>{if(u&&typeof u==\"object\"||typeof u==\"function\")for(let g of lr(u))!dr.call(c,g)&&g!==b&&A(c,g,{get:()=>u[g],enumerable:!(E=cr(u,g))||E.enumerable});return c};var pr=(c,u,b)=>(b=c!=null?sr(fr(c)):{},_e(u||!c||!c.__esModule?A(b,\"default\",{value:c,enumerable:!0}):b,c)),br=c=>_e(A({},\"__esModule\",{value:!0}),c);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var c=Te(),u=Symbol.for(\"react.element\"),b=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),g=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),P=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),N=Symbol.for(\"react.suspense_list\"),j=Symbol.for(\"react.memo\"),Y=Symbol.for(\"react.lazy\"),je=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Se=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[Se];return typeof r==\"function\"?r:null}var _=c.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&f>=0&&a[l]!==v[f];)f--;for(;l>=1&&f>=0;l--,f--)if(a[l]!==v[f]){if(l!==1||f!==1)do if(l--,f--,f<0||a[l]!==v[f]){var p=`\n`+a[l].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&x.set(e,p),p}while(l>=1&&f>=0);break}}}finally{W=!1,$.current=s,We(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&x.set(e,ye),ye}function Me(e,r,t){return se(e,!1)}function Ve(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function k(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Ve(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case N:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case P:return Me(e.render);case j:return k(e.type,r,t);case Y:{var n=e,i=n._payload,s=n._init;try{return k(s(i),r,t)}catch{}}}return\"\"}var D=Object.prototype.hasOwnProperty,ce={},le=_.ReactDebugCurrentFrame;function F(e){if(e){var r=e._owner,t=k(e.type,e._source,r?r.type:null);le.setExtraStackFrame(t)}else le.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var s=Function.call.bind(D);for(var o in e)if(s(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(l){a=l}a&&!(a instanceof Error)&&(F(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),F(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,F(i),d(\"Failed %s type: %s\",t,a.message),F(null))}}}var Ge=Array.isArray;function L(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return fe(e),!1}catch{return!0}}function fe(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),fe(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,M;M={};function Ke(e){if(D.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(D.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=h(O.current.type);M[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',h(O.current.type),e.ref),M[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,s,o){var a={$$typeof:u,type:e,key:r,ref:t,props:o,_owner:s};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var s,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(s in r)D.call(r,s)&&!Xe.hasOwnProperty(s)&&(o[s]=r[s]);if(e&&e.defaultProps){var l=e.defaultProps;for(s in l)o[s]===void 0&&(o[s]=l[s])}if(a||v){var f=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,f),v&&Qe(o,f)}return er(e,a,v,i,n,O.current,o)}}var V=_.ReactCurrentOwner,be=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=k(e.type,e._source,r?r.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===u}function he(){{if(V.current){var e=h(V.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var me={};function nr(e){{var r=he();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function ge(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(me[t])return;me[t]=!0;var n=\"\";e&&e._owner&&e._owner!==V.current&&(n=\" It was passed a child from \"+h(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(L(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):l=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",l,a)}var f=rr(e,r,t,i,s);if(f==null)return f;if(o){var p=r.children;if(p!==void 0)if(n)if(L(p)){for(var T=0;T{\"use strict\";we.exports=Ce()});var Er={};vr(Er,{default:()=>gr,frontmatter:()=>hr});var C=pr(Oe()),hr={title:\"React.js CLI\",description:\"A CLI React component to interact with Upstash Redis databases.\",date:\"2023-02-05\",url:\"https://upstash.com\",repository:\"upstash/react-ui\",published:!0};function Pe(c){let u=Object.assign({p:\"p\",code:\"code\",a:\"a\"},c.components);return(0,C.jsxDEV)(u.p,{children:[(0,C.jsxDEV)(u.code,{children:\"@upstash/react-ui\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d18f6cb-fd44-423b-9018-b550a3b2d423.mdx\",lineNumber:12,columnNumber:1},this),\" is powering the CLI in your browser on \",(0,C.jsxDEV)(u.a,{href:\"https://comsole.upstash.com\",children:\"console.upstash.com\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d18f6cb-fd44-423b-9018-b550a3b2d423.mdx\",lineNumber:12,columnNumber:60},this),\". It allows you to interact with your Upstash Redis database in a simple and intuitive way.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d18f6cb-fd44-423b-9018-b550a3b2d423.mdx\",lineNumber:12,columnNumber:1},this)}function mr(c={}){let{wrapper:u}=c.components||{};return u?(0,C.jsxDEV)(u,Object.assign({},c,{children:(0,C.jsxDEV)(Pe,c,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d18f6cb-fd44-423b-9018-b550a3b2d423.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d18f6cb-fd44-423b-9018-b550a3b2d423.mdx\"},this):Pe(c)}var gr=mr;return br(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-react-ui.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-react-ui.mdx", - "sourceFileName": "upstash-react-ui.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-react-ui" - }, - "type": "Project", - "path": "/projects/upstash-react-ui", - "slug": "upstash-react-ui" - }, - { - "published": true, - "title": "@upstash/redis", - "description": "A fully typed Redis client built for Upstash Redis and HTTP, perfect for serverless and edge runtimes.", - "date": "2022-03-14T00:00:00.000Z", - "url": "https://upstash.com/redis", - "repository": "upstash/upstash-redis", - "body": { - "raw": "\nUpstash is a cloud-based service provider that offers a Redis-compatible service. In addition to that, we have also created an npm package called `@upstash/redis`. This package provides a strongly typed Redis client that uses HTTP instead of TCP to communicate with the database, making it perfect for serverless and edge runtimes.\n\nRedis is a popular open-source, in-memory data structure store that can be used as a database, cache, and message broker. It is commonly used for web applications that require fast data access and manipulation. Redis clients communicate with Redis servers using the Redis protocol over TCP/IP.\n\nHowever, in some cases, TCP is not available. For example, edge functions run on cloud platforms, which often block TCP connections for various reasons. This is where `@upstash/redis` comes in handy. Instead of using TCP, it uses HTTP to communicate with the servers.\n\nThe package is designed to be easy to use and provides a simple API for Redis commands. It also includes support for Redis transactions and Lua scripting. It is written in TypeScript, which provides static typing and better code completion in modern editors.\n\nOne of the main benefits of using `@upstash/redis` is that it is strongly typed. This means that you get better type checking and error handling in your code. Additionally, the package is designed to be lightweight and optimized for performance. This makes it an excellent choice for applications that require fast data access and manipulation.\n\n```ts\nimport { Redis } from \"@upstash/redis\"\n\nconst redis = new Redis({\n url: ,\n token: ,\n})\n\n// string\nawait redis.set('key', 'value');\nlet data = await redis.get('key');\nconsole.log(data)\n\nawait redis.set('key2', 'value2', {ex: 1});\n\n// sorted set\nawait redis.zadd('scores', { score: 1, member: 'team1' })\ndata = await redis.zrange('scores', 0, 100 )\nconsole.log(data)\n\n// list\nawait redis.lpush('elements', 'magnesium')\ndata = await redis.lrange('elements', 0, 100 )\nconsole.log(data)\n```", - "code": "var Component=(()=>{var ir=Object.create;var O=Object.defineProperty;var lr=Object.getOwnPropertyDescriptor;var dr=Object.getOwnPropertyNames;var ur=Object.getPrototypeOf,mr=Object.prototype.hasOwnProperty;var z=(d,r)=>()=>(r||d((r={exports:{}}).exports,r),r.exports),br=(d,r)=>{for(var _ in r)O(d,_,{get:r[_],enumerable:!0})},xe=(d,r,_,k)=>{if(r&&typeof r==\"object\"||typeof r==\"function\")for(let y of dr(r))!mr.call(d,y)&&y!==_&&O(d,y,{get:()=>r[y],enumerable:!(k=lr(r,y))||k.enumerable});return d};var hr=(d,r,_)=>(_=d!=null?ir(ur(d)):{},xe(r||!d||!d.__esModule?O(_,\"default\",{value:d,enumerable:!0}):_,d)),fr=d=>xe(O({},\"__esModule\",{value:!0}),d);var Ee=z((xr,ge)=>{ge.exports=React});var ve=z(q=>{\"use strict\";(function(){\"use strict\";var d=Ee(),r=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),k=Symbol.for(\"react.fragment\"),y=Symbol.for(\"react.strict_mode\"),G=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),X=Symbol.for(\"react.context\"),F=Symbol.for(\"react.forward_ref\"),D=Symbol.for(\"react.suspense\"),A=Symbol.for(\"react.suspense_list\"),R=Symbol.for(\"react.memo\"),B=Symbol.for(\"react.lazy\"),Re=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Te=\"@@iterator\";function Ce(e){if(e===null||typeof e!=\"object\")return null;var t=J&&e[J]||e[Te];return typeof t==\"function\"?t:null}var g=d.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function b(e){{for(var t=arguments.length,a=new Array(t>1?t-1:0),o=1;o=1&&m>=0&&c[u]!==h[m];)m--;for(;u>=1&&m>=0;u--,m--)if(c[u]!==h[m]){if(u!==1||m!==1)do if(u--,m--,m<0||c[u]!==h[m]){var f=`\n`+c[u].replace(\" at new \",\" at \");return e.displayName&&f.includes(\"\")&&(f=f.replace(\"\",e.displayName)),typeof e==\"function\"&&C.set(e,f),f}while(u>=1&&m>=0);break}}}finally{$=!1,I.current=l,$e(),Error.prepareStackTrace=i}var v=e?e.displayName||e.name:\"\",ke=v?T(v):\"\";return typeof e==\"function\"&&C.set(e,ke),ke}function Me(e,t,a){return ie(e,!1)}function Ve(e){var t=e.prototype;return!!(t&&t.isReactComponent)}function w(e,t,a){if(e==null)return\"\";if(typeof e==\"function\")return ie(e,Ve(e));if(typeof e==\"string\")return T(e);switch(e){case D:return T(\"Suspense\");case A:return T(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case F:return Me(e.render);case R:return w(e.type,t,a);case B:{var o=e,i=o._payload,l=o._init;try{return w(l(i),t,a)}catch{}}}return\"\"}var P=Object.prototype.hasOwnProperty,le={},de=g.ReactDebugCurrentFrame;function S(e){if(e){var t=e._owner,a=w(e.type,e._source,t?t.type:null);de.setExtraStackFrame(a)}else de.setExtraStackFrame(null)}function Le(e,t,a,o,i){{var l=Function.call.bind(P);for(var s in e)if(l(e,s)){var c=void 0;try{if(typeof e[s]!=\"function\"){var h=Error((o||\"React class\")+\": \"+a+\" type `\"+s+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[s]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw h.name=\"Invariant Violation\",h}c=e[s](t,s,o,a,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(u){c=u}c&&!(c instanceof Error)&&(S(i),b(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",o||\"React class\",a,s,typeof c),S(null)),c instanceof Error&&!(c.message in le)&&(le[c.message]=!0,S(i),b(\"Failed %s type: %s\",a,c.message),S(null))}}}var He=Array.isArray;function W(e){return He(e)}function ze(e){{var t=typeof Symbol==\"function\"&&Symbol.toStringTag,a=t&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return a}}function qe(e){try{return ue(e),!1}catch{return!0}}function ue(e){return\"\"+e}function me(e){if(qe(e))return b(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",ze(e)),ue(e)}var U=g.ReactCurrentOwner,Ge={key:!0,ref:!0,__self:!0,__source:!0},be,he,M;M={};function Ke(e){if(P.call(e,\"ref\")){var t=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(t&&t.isReactWarning)return!1}return e.ref!==void 0}function Xe(e){if(P.call(e,\"key\")){var t=Object.getOwnPropertyDescriptor(e,\"key\").get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function Je(e,t){if(typeof e.ref==\"string\"&&U.current&&t&&U.current.stateNode!==t){var a=p(U.current.type);M[a]||(b('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(U.current.type),e.ref),M[a]=!0)}}function Ze(e,t){{var a=function(){be||(be=!0,b(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",t))};a.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:a,configurable:!0})}}function Qe(e,t){{var a=function(){he||(he=!0,b(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",t))};a.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:a,configurable:!0})}}var er=function(e,t,a,o,i,l,s){var c={$$typeof:r,type:e,key:t,ref:a,props:s,_owner:l};return c._store={},Object.defineProperty(c._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(c,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(c,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(c.props),Object.freeze(c)),c};function rr(e,t,a,o,i){{var l,s={},c=null,h=null;a!==void 0&&(me(a),c=\"\"+a),Xe(t)&&(me(t.key),c=\"\"+t.key),Ke(t)&&(h=t.ref,Je(t,i));for(l in t)P.call(t,l)&&!Ge.hasOwnProperty(l)&&(s[l]=t[l]);if(e&&e.defaultProps){var u=e.defaultProps;for(l in u)s[l]===void 0&&(s[l]=u[l])}if(c||h){var m=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;c&&Ze(s,m),h&&Qe(s,m)}return er(e,c,h,i,o,U.current,s)}}var V=g.ReactCurrentOwner,fe=g.ReactDebugCurrentFrame;function E(e){if(e){var t=e._owner,a=w(e.type,e._source,t?t.type:null);fe.setExtraStackFrame(a)}else fe.setExtraStackFrame(null)}var L;L=!1;function H(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===r}function _e(){{if(V.current){var e=p(V.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function nr(e){{if(e!==void 0){var t=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),a=e.lineNumber;return`\n\nCheck your code at `+t+\":\"+a+\".\"}return\"\"}}var pe={};function tr(e){{var t=_e();if(!t){var a=typeof e==\"string\"?e:e.displayName||e.name;a&&(t=`\n\nCheck the top-level render call using <`+a+\">.\")}return t}}function Ne(e,t){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var a=tr(t);if(pe[a])return;pe[a]=!0;var o=\"\";e&&e._owner&&e._owner!==V.current&&(o=\" It was passed a child from \"+p(e._owner.type)+\".\"),E(e),b('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',a,o),E(null)}}function ye(e,t){{if(typeof e!=\"object\")return;if(W(e))for(var a=0;a\",c=\" Did you accidentally export a JSX literal instead of a component?\"):u=typeof e,b(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",u,c)}var m=rr(e,t,a,i,l);if(m==null)return m;if(s){var f=t.children;if(f!==void 0)if(o)if(W(f)){for(var v=0;v{\"use strict\";je.exports=ve()});var yr={};br(yr,{default:()=>Nr,frontmatter:()=>_r});var n=hr(Ue()),_r={title:\"@upstash/redis\",description:\"A fully typed Redis client built for Upstash Redis and HTTP, perfect for serverless and edge runtimes.\",date:\"2022-03-14\",url:\"https://upstash.com/redis\",repository:\"upstash/upstash-redis\",published:!0};function Fe(d){let r=Object.assign({p:\"p\",code:\"code\",div:\"div\",pre:\"pre\",span:\"span\"},d.components);return(0,n.jsxDEV)(n.Fragment,{children:[(0,n.jsxDEV)(r.p,{children:[\"Upstash is a cloud-based service provider that offers a Redis-compatible service. In addition to that, we have also created an npm package called \",(0,n.jsxDEV)(r.code,{children:\"@upstash/redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:11,columnNumber:147},this),\". This package provides a strongly typed Redis client that uses HTTP instead of TCP to communicate with the database, making it perfect for serverless and edge runtimes.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:\"Redis is a popular open-source, in-memory data structure store that can be used as a database, cache, and message broker. It is commonly used for web applications that require fast data access and manipulation. Redis clients communicate with Redis servers using the Redis protocol over TCP/IP.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[\"However, in some cases, TCP is not available. For example, edge functions run on cloud platforms, which often block TCP connections for various reasons. This is where \",(0,n.jsxDEV)(r.code,{children:\"@upstash/redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:15,columnNumber:168},this),\" comes in handy. Instead of using TCP, it uses HTTP to communicate with the servers.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:\"The package is designed to be easy to use and provides a simple API for Redis commands. It also includes support for Redis transactions and Lua scripting. It is written in TypeScript, which provides static typing and better code completion in modern editors.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[\"One of the main benefits of using \",(0,n.jsxDEV)(r.code,{children:\"@upstash/redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:19,columnNumber:35},this),\" is that it is strongly typed. This means that you get better type checking and error handling in your code. Additionally, the package is designed to be lightweight and optimized for performance. This makes it an excellent choice for applications that require fast data access and manipulation.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(r.pre,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(r.code,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" { Redis } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:1,columnNumber:146},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:1,columnNumber:193},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:1,columnNumber:233},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"@upstash/redis\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:1,columnNumber:270},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:61},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:98},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:139},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:176},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:213},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"new\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:250},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:289},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"Redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:326},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:367},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" url: <\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"UPSTASH_REDIS_REST_URL\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:4,columnNumber:67},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\">,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:4,columnNumber:125},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" token: <\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"UPSTASH_REDIS_REST_TOKEN\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:5,columnNumber:69},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\">,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:5,columnNumber:129},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#6A737D\"},children:\"// string\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:9,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:9,columnNumber:61},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"set\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:9,columnNumber:104},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:9,columnNumber:143},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'key'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:9,columnNumber:180},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:9,columnNumber:229},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'value'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:9,columnNumber:267},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\");\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:9,columnNumber:318},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"let\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" data \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:59},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:101},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:138},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:175},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:216},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"get\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:259},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:298},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'key'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:335},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\");\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:384},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"console.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:11,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"log\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:11,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(data)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:11,columnNumber:103},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:61},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"set\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:104},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:143},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'key2'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:180},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:230},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'value2'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:268},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", {ex: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:320},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:363},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"});\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:400},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#6A737D\"},children:\"// sorted set\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:15,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:61},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"zadd\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:104},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:144},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'scores'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:181},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", { score: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:233},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:280},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", member: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:317},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'team1'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:363},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" })\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:414},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"data \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:61},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:98},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:135},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:176},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"zrange\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:219},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:261},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'scores'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:298},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:350},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"0\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:388},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:425},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"100\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:463},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" )\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:502},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"console.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:18,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"log\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:18,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(data)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:18,columnNumber:103},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#6A737D\"},children:\"// list\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:20,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:61},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"lpush\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:104},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:145},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'elements'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:182},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:236},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'magnesium'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:274},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\")\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:329},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"data \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:61},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:98},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:135},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:176},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"lrange\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:219},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:261},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'elements'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:298},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:352},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"0\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:390},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:427},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"100\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:465},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" )\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:504},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"console.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:23,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"log\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:23,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(data)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:23,columnNumber:103},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:23,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:1,columnNumber:1},this)}function pr(d={}){let{wrapper:r}=d.components||{};return r?(0,n.jsxDEV)(r,Object.assign({},d,{children:(0,n.jsxDEV)(Fe,d,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\"},this):Fe(d)}var Nr=pr;return fr(yr);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-redis.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-redis.mdx", - "sourceFileName": "upstash-redis.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-redis" - }, - "type": "Project", - "path": "/projects/upstash-redis", - "slug": "upstash-redis" - }, - { - "published": true, - "title": "Upstash Web Analytics", - "description": "A library to record and analyse web page traffic and user behaviour", - "repository": "upstash/web-analytics", - "body": { - "raw": "\nComing soon", - "code": "var Component=(()=>{var sr=Object.create;var A=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var fr=Object.getOwnPropertyNames;var lr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,c)=>()=>(c||s((c={exports:{}}).exports,c),c.exports),vr=(s,c)=>{for(var b in c)A(s,b,{get:c[b],enumerable:!0})},_e=(s,c,b,E)=>{if(c&&typeof c==\"object\"||typeof c==\"function\")for(let m of fr(c))!dr.call(s,m)&&m!==b&&A(s,m,{get:()=>c[m],enumerable:!(E=cr(c,m))||E.enumerable});return s};var pr=(s,c,b)=>(b=s!=null?sr(lr(s)):{},_e(c||!s||!s.__esModule?A(b,\"default\",{value:s,enumerable:!0}):b,s)),br=s=>_e(A({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),c=Symbol.for(\"react.element\"),b=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),O=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),W=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),Y=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&l>=0&&a[f]!==v[l];)l--;for(;f>=1&&l>=0;f--,l--)if(a[f]!==v[l]){if(f!==1||l!==1)do if(f--,l--,l<0||a[f]!==v[l]){var p=`\n`+a[f].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(f>=1&&l>=0);break}}}finally{M=!1,$.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case W:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case O:return Ue(e.render);case P:return x(e.type,r,t);case Y:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,ce={},fe=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){a=f}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return le(e),!1}catch{return!0}}function le(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),le(e)}var w=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&w.current&&r&&w.current.stateNode!==r){var t=h(w.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',h(w.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:c,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var f=e.defaultProps;for(u in f)o[u]===void 0&&(o[u]=f[u])}if(a||v){var l=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,l),v&&Qe(o,l)}return er(e,a,v,i,n,w.current,o)}}var L=_.ReactCurrentOwner,be=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===c}function he(){{if(L.current){var e=h(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=he();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+h(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):f=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",f,a)}var l=rr(e,r,t,i,u);if(l==null)return l;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";we.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>hr});var F=pr(Oe()),hr={title:\"Upstash Web Analytics\",description:\"A library to record and analyse web page traffic and user behaviour\",repository:\"upstash/web-analytics\",published:!0};function Pe(s){let c=Object.assign({p:\"p\"},s.components);return(0,F.jsxDEV)(c.p,{children:\"Coming soon\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-5fa4787f-baae-4c3e-bcce-87c94c71b8e1.mdx\",lineNumber:8,columnNumber:1},this)}function gr(s={}){let{wrapper:c}=s.components||{};return c?(0,F.jsxDEV)(c,Object.assign({},s,{children:(0,F.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-5fa4787f-baae-4c3e-bcce-87c94c71b8e1.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-5fa4787f-baae-4c3e-bcce-87c94c71b8e1.mdx\"},this):Pe(s)}var mr=gr;return br(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-web-analytics.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-web-analytics.mdx", - "sourceFileName": "upstash-web-analytics.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-web-analytics" - }, - "type": "Project", - "path": "/projects/upstash-web-analytics", - "slug": "upstash-web-analytics" - } -] \ No newline at end of file diff --git a/.contentlayer/generated/Project/_index.mjs b/.contentlayer/generated/Project/_index.mjs deleted file mode 100644 index 6ffbf81..0000000 --- a/.contentlayer/generated/Project/_index.mjs +++ /dev/null @@ -1,65 +0,0 @@ -// NOTE This file is auto-generated by Contentlayer - -import projects__accessMdx from "./projects__access.mdx.json" assert { - type: "json", -}; -import projects__envshareMdx from "./projects__envshare.mdx.json" assert { - type: "json", -}; -import projects__planetfallMdx from "./projects__planetfall.mdx.json" assert { - type: "json", -}; -import projects__qstashMdx from "./projects__qstash.mdx.json" assert { - type: "json", -}; -import projects__terraformProviderVercelMdx from "./projects__terraform-provider-vercel.mdx.json" assert { - type: "json", -}; -import projects__upstashAuthAnalyticsMdx from "./projects__upstash-auth-analytics.mdx.json" assert { - type: "json", -}; -import projects__upstashCliMdx from "./projects__upstash-cli.mdx.json" assert { - type: "json", -}; -import projects__upstashCoreAnalyticsMdx from "./projects__upstash-core-analytics.mdx.json" assert { - type: "json", -}; -import projects__upstashEdgeFlagsMdx from "./projects__upstash-edge-flags.mdx.json" assert { - type: "json", -}; -import projects__upstashKafkaMdx from "./projects__upstash-kafka.mdx.json" assert { - type: "json", -}; -import projects__upstashQstashSdkMdx from "./projects__upstash-qstash-sdk.mdx.json" assert { - type: "json", -}; -import projects__upstashRatelimitMdx from "./projects__upstash-ratelimit.mdx.json" assert { - type: "json", -}; -import projects__upstashReactUiMdx from "./projects__upstash-react-ui.mdx.json" assert { - type: "json", -}; -import projects__upstashRedisMdx from "./projects__upstash-redis.mdx.json" assert { - type: "json", -}; -import projects__upstashWebAnalyticsMdx from "./projects__upstash-web-analytics.mdx.json" assert { - type: "json", -}; - -export const allProjects = [ - projects__accessMdx, - projects__envshareMdx, - projects__planetfallMdx, - projects__qstashMdx, - projects__terraformProviderVercelMdx, - projects__upstashAuthAnalyticsMdx, - projects__upstashCliMdx, - projects__upstashCoreAnalyticsMdx, - projects__upstashEdgeFlagsMdx, - projects__upstashKafkaMdx, - projects__upstashQstashSdkMdx, - projects__upstashRatelimitMdx, - projects__upstashReactUiMdx, - projects__upstashRedisMdx, - projects__upstashWebAnalyticsMdx, -]; diff --git a/.contentlayer/generated/Project/projects__access.mdx.json b/.contentlayer/generated/Project/projects__access.mdx.json deleted file mode 100644 index 9352ccc..0000000 --- a/.contentlayer/generated/Project/projects__access.mdx.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "published": true, - "title": "@chronark/access", - "description": "A minimal library for access control. It is designed to be used together with opaque access tokens by providing a simple interface to define roles with different access permissions and verifying requests to resources.", - "date": "2022-11-13T00:00:00.000Z", - "repository": "chronark/access", - "body": { - "raw": "A minimal library for access control. It is designed to be used together with opaque access tokens by providing a simple interface to define roles with different access permissions and verifying requests to resources.\n\n- Fully typed\n- Zero dependencies\n- Serializable to store in a database\n\n## Install\n\n```sh-session\nnpm i @chronark/access\n```\n\n## Usage\n\n```ts\nimport { AccessControl, Role } from \"@chronark/access\";\n\n/**\n * Define all your resources and their access patterns\n *\n * key => resource\n * value => array of access types\n */\ntype Statements = {\n user: [\"read\", \"write\", \"dance\"];\n team: [\"read\", \"write\"];\n};\n\n/**\n * Create an access control instance and pass the Statements type to enjoy full\n * type safety\n */\nconst ac = new AccessControl();\n\n/**\n * Now you can define one or more roles by specifying the access permissions\n *\n * This is already fully typed and typescript will let you know if you try to\n * use anything, that is not defined in the Statements type.\n */\nconst role = ac.newRole({\n user: [\"read\", \"write\"],\n team: [\"read\"],\n});\n\n/**\n * Simulate storing and retrieving the role in a database\n *\n * The idea here is, that you can store permissions alongside an API token.\n * Now, when you verify the token, you can also verify the access permissions.\n */\nconst serialized = role.toString();\n\n/**\n * Note how you can pass in the Statements type again, to get full type safety\n */\nconst recovered = Role.fromString(serialized);\n\n/**\n * Validate the role by specifying the resource and the required access\n *\n * everything is fully typed\n */\nconst res = recovered.authorize({\"team\", [\"read\"]});\n\n// res.success => boolean\n// res.error => string | undefined provides a reason for failure\n```", - "code": "var Component=(()=>{var sn=Object.create;var S=Object.defineProperty;var ln=Object.getOwnPropertyDescriptor;var mn=Object.getOwnPropertyNames;var un=Object.getPrototypeOf,fn=Object.prototype.hasOwnProperty;var z=(l,e)=>()=>(e||l((e={exports:{}}).exports,e),e.exports),hn=(l,e)=>{for(var _ in e)S(l,_,{get:e[_],enumerable:!0})},xe=(l,e,_,k)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let y of mn(e))!fn.call(l,y)&&y!==_&&S(l,y,{get:()=>e[y],enumerable:!(k=ln(e,y))||k.enumerable});return l};var bn=(l,e,_)=>(_=l!=null?sn(un(l)):{},xe(e||!l||!l.__esModule?S(_,\"default\",{value:l,enumerable:!0}):_,l)),_n=l=>xe(S({},\"__esModule\",{value:!0}),l);var Ee=z((gn,ge)=>{ge.exports=React});var je=z(G=>{\"use strict\";(function(){\"use strict\";var l=Ee(),e=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),k=Symbol.for(\"react.fragment\"),y=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),F=Symbol.for(\"react.forward_ref\"),O=Symbol.for(\"react.suspense\"),P=Symbol.for(\"react.suspense_list\"),R=Symbol.for(\"react.memo\"),B=Symbol.for(\"react.lazy\"),Re=Symbol.for(\"react.offscreen\"),Z=Symbol.iterator,Ce=\"@@iterator\";function De(n){if(n===null||typeof n!=\"object\")return null;var a=Z&&n[Z]||n[Ce];return typeof a==\"function\"?a:null}var g=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function f(n){{for(var a=arguments.length,d=new Array(a>1?a-1:0),c=1;c=1&&u>=0&&t[m]!==h[u];)u--;for(;m>=1&&u>=0;m--,u--)if(t[m]!==h[u]){if(m!==1||u!==1)do if(m--,u--,u<0||t[m]!==h[u]){var b=`\n`+t[m].replace(\" at new \",\" at \");return n.displayName&&b.includes(\"\")&&(b=b.replace(\"\",n.displayName)),typeof n==\"function\"&&D.set(n,b),b}while(m>=1&&u>=0);break}}}finally{$=!1,I.current=i,$e(),Error.prepareStackTrace=s}var j=n?n.displayName||n.name:\"\",ke=j?C(j):\"\";return typeof n==\"function\"&&D.set(n,ke),ke}function Ve(n,a,d){return se(n,!1)}function Me(n){var a=n.prototype;return!!(a&&a.isReactComponent)}function w(n,a,d){if(n==null)return\"\";if(typeof n==\"function\")return se(n,Me(n));if(typeof n==\"string\")return C(n);switch(n){case O:return C(\"Suspense\");case P:return C(\"SuspenseList\")}if(typeof n==\"object\")switch(n.$$typeof){case F:return Ve(n.render);case R:return w(n.type,a,d);case B:{var c=n,s=c._payload,i=c._init;try{return w(i(s),a,d)}catch{}}}return\"\"}var T=Object.prototype.hasOwnProperty,ie={},le=g.ReactDebugCurrentFrame;function A(n){if(n){var a=n._owner,d=w(n.type,n._source,a?a.type:null);le.setExtraStackFrame(d)}else le.setExtraStackFrame(null)}function Le(n,a,d,c,s){{var i=Function.call.bind(T);for(var o in n)if(i(n,o)){var t=void 0;try{if(typeof n[o]!=\"function\"){var h=Error((c||\"React class\")+\": \"+d+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof n[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw h.name=\"Invariant Violation\",h}t=n[o](a,o,c,d,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(m){t=m}t&&!(t instanceof Error)&&(A(s),f(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",c||\"React class\",d,o,typeof t),A(null)),t instanceof Error&&!(t.message in ie)&&(ie[t.message]=!0,A(s),f(\"Failed %s type: %s\",d,t.message),A(null))}}}var qe=Array.isArray;function W(n){return qe(n)}function ze(n){{var a=typeof Symbol==\"function\"&&Symbol.toStringTag,d=a&&n[Symbol.toStringTag]||n.constructor.name||\"Object\";return d}}function Ge(n){try{return me(n),!1}catch{return!0}}function me(n){return\"\"+n}function ue(n){if(Ge(n))return f(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",ze(n)),me(n)}var v=g.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},fe,he,V;V={};function Ke(n){if(T.call(n,\"ref\")){var a=Object.getOwnPropertyDescriptor(n,\"ref\").get;if(a&&a.isReactWarning)return!1}return n.ref!==void 0}function He(n){if(T.call(n,\"key\")){var a=Object.getOwnPropertyDescriptor(n,\"key\").get;if(a&&a.isReactWarning)return!1}return n.key!==void 0}function Ze(n,a){if(typeof n.ref==\"string\"&&v.current&&a&&v.current.stateNode!==a){var d=p(v.current.type);V[d]||(f('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(v.current.type),n.ref),V[d]=!0)}}function Je(n,a){{var d=function(){fe||(fe=!0,f(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};d.isReactWarning=!0,Object.defineProperty(n,\"key\",{get:d,configurable:!0})}}function Qe(n,a){{var d=function(){he||(he=!0,f(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};d.isReactWarning=!0,Object.defineProperty(n,\"ref\",{get:d,configurable:!0})}}var en=function(n,a,d,c,s,i,o){var t={$$typeof:e,type:n,key:a,ref:d,props:o,_owner:i};return t._store={},Object.defineProperty(t._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(t,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:c}),Object.defineProperty(t,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:s}),Object.freeze&&(Object.freeze(t.props),Object.freeze(t)),t};function nn(n,a,d,c,s){{var i,o={},t=null,h=null;d!==void 0&&(ue(d),t=\"\"+d),He(a)&&(ue(a.key),t=\"\"+a.key),Ke(a)&&(h=a.ref,Ze(a,s));for(i in a)T.call(a,i)&&!Xe.hasOwnProperty(i)&&(o[i]=a[i]);if(n&&n.defaultProps){var m=n.defaultProps;for(i in m)o[i]===void 0&&(o[i]=m[i])}if(t||h){var u=typeof n==\"function\"?n.displayName||n.name||\"Unknown\":n;t&&Je(o,u),h&&Qe(o,u)}return en(n,t,h,s,c,v.current,o)}}var M=g.ReactCurrentOwner,be=g.ReactDebugCurrentFrame;function E(n){if(n){var a=n._owner,d=w(n.type,n._source,a?a.type:null);be.setExtraStackFrame(d)}else be.setExtraStackFrame(null)}var L;L=!1;function q(n){return typeof n==\"object\"&&n!==null&&n.$$typeof===e}function _e(){{if(M.current){var n=p(M.current.type);if(n)return`\n\nCheck the render method of \\``+n+\"`.\"}return\"\"}}function rn(n){{if(n!==void 0){var a=n.fileName.replace(/^.*[\\\\\\/]/,\"\"),d=n.lineNumber;return`\n\nCheck your code at `+a+\":\"+d+\".\"}return\"\"}}var pe={};function an(n){{var a=_e();if(!a){var d=typeof n==\"string\"?n:n.displayName||n.name;d&&(a=`\n\nCheck the top-level render call using <`+d+\">.\")}return a}}function Ne(n,a){{if(!n._store||n._store.validated||n.key!=null)return;n._store.validated=!0;var d=an(a);if(pe[d])return;pe[d]=!0;var c=\"\";n&&n._owner&&n._owner!==M.current&&(c=\" It was passed a child from \"+p(n._owner.type)+\".\"),E(n),f('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',d,c),E(null)}}function ye(n,a){{if(typeof n!=\"object\")return;if(W(n))for(var d=0;d\",t=\" Did you accidentally export a JSX literal instead of a component?\"):m=typeof n,f(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",m,t)}var u=nn(n,a,d,s,i);if(u==null)return u;if(o){var b=a.children;if(b!==void 0)if(c)if(W(b)){for(var j=0;j{\"use strict\";Ue.exports=je()});var kn={};hn(kn,{default:()=>yn,frontmatter:()=>pn});var r=bn(ve()),pn={title:\"@chronark/access\",description:\"A minimal library for access control. It is designed to be used together with opaque access tokens by providing a simple interface to define roles with different access permissions and verifying requests to resources.\",repository:\"chronark/access\",date:\"2022-11-13\",published:!0};function Fe(l){let e=Object.assign({p:\"p\",ul:\"ul\",li:\"li\",h2:\"h2\",a:\"a\",span:\"span\",div:\"div\",pre:\"pre\",code:\"code\"},l.components);return(0,r.jsxDEV)(r.Fragment,{children:[(0,r.jsxDEV)(e.p,{children:\"A minimal library for access control. It is designed to be used together with opaque access tokens by providing a simple interface to define roles with different access permissions and verifying requests to resources.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ul,{children:[`\n`,(0,r.jsxDEV)(e.li,{children:\"Fully typed\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:\"Zero dependencies\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:\"Serializable to store in a database\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:13,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h2,{id:\"install\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#install\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\"},this),\"Install\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\"npm i @chronark/access\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h2,{id:\"usage\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#usage\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\"},this),\"Usage\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:21,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:104},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" { AccessControl, Role } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:146},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:207},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:247},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"@chronark/access\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:284},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\";\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:348},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:3,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Define all your resources and their access patterns\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:4,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" *\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:5,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * key => resource\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * value => array of access types\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"type\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:60},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"Statements\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:97},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:143},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:180},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:217},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\"user\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:58},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\":\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:135},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:173},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:225},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"write\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:263},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:316},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"dance\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:354},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"];\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:407},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\"team\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:58},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\":\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:135},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:173},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:225},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"write\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:263},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"];\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:316},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"};\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:12,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:14,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Create an access control instance and pass the Statements type to enjoy full\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:15,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * type safety\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:16,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:17,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"ac\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:136},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:173},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:210},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"new\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:247},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:286},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"AccessControl\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:323},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"<\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:372},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"Statements\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:412},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\">();\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:458},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:20,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Now you can define one or more roles by specifying the access permissions\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:21,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:21,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" *\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:22,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:22,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * This is already fully typed and typescript will let you know if you try to\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:23,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:23,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * use anything, that is not defined in the Statements type.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:24,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:24,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:25,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:25,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"role\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:138},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:175},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" ac.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:212},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"newRole\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:252},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:295},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" user: [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:27,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:27,columnNumber:65},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:27,columnNumber:117},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"write\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:27,columnNumber:155},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"],\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:27,columnNumber:208},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:27,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" team: [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:28,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:28,columnNumber:65},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"],\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:28,columnNumber:117},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:28,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"});\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:29,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:29,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:31,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Simulate storing and retrieving the role in a database\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:32,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:32,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" *\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:33,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:33,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * The idea here is, that you can store permissions alongside an API token.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:34,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:34,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Now, when you verify the token, you can also verify the access permissions.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:35,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:36,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:36,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"serialized\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:144},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:181},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" role.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:218},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"toString\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:260},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"();\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:304},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:38,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:39,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:39,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Note how you can pass in the Statements type again, to get full type safety\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:40,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:40,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:41,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:41,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"recovered\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:143},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:180},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" Role.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:217},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"fromString\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:259},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"<\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:305},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"Statements\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:345},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\">(serialized);\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:391},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:43,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:44,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:44,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Validate the role by specifying the resource and the required access\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:45,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:45,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" *\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:46,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:46,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * everything is fully typed\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:47,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:47,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:48,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:48,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"res\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:137},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:174},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" recovered.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:211},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"authorize\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:258},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:303},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"team\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:341},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:393},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:432},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"]});\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:484},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:50,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// res.success => boolean\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:51,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:51,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// res.error => string | undefined provides a reason for failure\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:52,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:52,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:23,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:1},this)}function Nn(l={}){let{wrapper:e}=l.components||{};return e?(0,r.jsxDEV)(e,Object.assign({},l,{children:(0,r.jsxDEV)(Fe,l,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\"},this):Fe(l)}var yn=Nn;return _n(kn);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/access.mdx", - "_raw": { - "sourceFilePath": "projects/access.mdx", - "sourceFileName": "access.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/access" - }, - "type": "Project", - "path": "/projects/access", - "slug": "access" -} \ No newline at end of file diff --git a/.contentlayer/generated/Project/projects__envshare copy.mdx.json b/.contentlayer/generated/Project/projects__envshare copy.mdx.json deleted file mode 100644 index 91adc7d..0000000 --- a/.contentlayer/generated/Project/projects__envshare copy.mdx.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "title": "envshare.dev", - "description": "EnvShare is a simple tool to share environment variables securely. It uses AES-GCM to encrypt your data before sending it to the server. The encryption key never leaves your browser.", - "date": "2023-01-16T00:00:00.000Z", - "url": "https://envshare.dev", - "repository": "chronark/envshare", - "body": { - "raw": "\nEnvShare is a simple tool to share environment variables securely. It uses\n**AES-GCM** to encrypt your data before sending it to the server. The encryption\nkey never leaves your browser.\n\n## Features\n\n- **Shareable Links:** Share your environment variables securely by sending a\n link\n- **End-to-End Encryption:** AES-GCM encryption is used to encrypt your data\n before sending it to the server\n- **Limit number of reads:** Limit the number of times a link can be read\n- **Auto Expire:** Automatically expire links and delete data after a certain\n time\n\n\n\n![](img/envshare.png)\n\n## Built with\n\n- [Next.js](https://nextjs.org)\n- [tailwindcss](https://tailwindcss.com)\n- Deployed on [Vercel](https://vercel.com?utm_source=envshare)\n- Data stored on [Upstash](https://upstash.com?utm_source=envshare)\n\n## Deploy your own\n\nDetailed instructions can be found [here](https://envshare.dev/deploy)\n\nAll you need is a Redis database on Upstash and a Vercel account. Click the\nbutton below to clone and deploy:\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?demo-title=EnvShare&demo-description=Simple%20Next.js%20%2B%20Upstash%20app%20to%20share%20environment%20variables%20securely%20using%20AES-GCM%20encryption.&demo-url=https%3A%2F%2Fenvshare.dev%2F&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5SaFBHXp5FBFJbsTzVqIJ3%2Ff0f8382369b7642fd8103debb9025c11%2Fenvshare.png&project-name=EnvShare&repository-name=envshare&repository-url=https%3A%2F%2Fgithub.com%2Fchronark%2Fenvshare&from=templates&integration-ids=oac_V3R1GIpkoJorr6fqyiwdhl17)\n\n\n\n## Configuration\n\n### Environment Variables\n\n`ENABLE_VERCEL_ANALYTICS` Any truthy value will enable Vercel Analytics. This is turned off by default\n\n## Contributing\n\nThis repository uses `pnpm` to manage dependencies. Install it using\n`npm install -g pnpm`\n\nPlease run `pnpm fmt` before committing to format the code.\n\n## Docs\n\nDocs in the README are temporary and will be moved to the website soon.\n\n### API\n\n#### Store a secret\n\n**PLEASE NEVER EVER UPLOAD UNENCRYPTED SECRETS.**\n\nThis endpoint is only meant to store **already encrypted** secrets. The\nencrypted secrets are stored in plain text.\n\n```sh-session\n$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\"\n```\n\nYou can add optional headers to configure the ttl and number of reads.\n\n```sh-session\n$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\" -H \"envshare-ttl: 3600\" -H \"envshare-reads: 10\"\n```\n\n- Omitting the `envshare-ttl` header will set a default of 30 days. Disable the\n ttl by setting it to 0. (`envshare-ttl: 0`)\n- Omitting the `envshare-reads` header will simply disable it and allow reading\n for an unlimited number of times.\n\nThis endpoint returns a JSON response with the secret id:\n\n```json\n{\n \"data\": {\n \"id\": \"HdPbXgpvUvNk43oxSdK97u\",\n \"ttl\": 86400,\n \"reads\": 2,\n \"expiresAt\": \"2023-01-19T20:47:28.383Z\",\n \"url\": \"http://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"\n }\n}\n```\n\n#### Retrieve a secret\n\nYou need an id to retrieve a secret. The id is returned when you store a secret.\n\n```sh-session\n$ curl -s https://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\n```\n\n```json\n{\n \"data\": {\n \"secret\": \"Hello\",\n \"remainingReads\": 1\n }\n}\n```", - "code": "var Component=(()=>{var dn=Object.create;var O=Object.defineProperty;var ln=Object.getOwnPropertyDescriptor;var un=Object.getOwnPropertyNames;var mn=Object.getPrototypeOf,hn=Object.prototype.hasOwnProperty;var X=(l,n)=>()=>(n||l((n={exports:{}}).exports,n),n.exports),bn=(l,n)=>{for(var _ in n)O(l,_,{get:n[_],enumerable:!0})},ye=(l,n,_,x)=>{if(n&&typeof n==\"object\"||typeof n==\"function\")for(let k of un(n))!hn.call(l,k)&&k!==_&&O(l,k,{get:()=>n[k],enumerable:!(x=ln(n,k))||x.enumerable});return l};var fn=(l,n,_)=>(_=l!=null?dn(mn(l)):{},ye(n||!l||!l.__esModule?O(_,\"default\",{value:l,enumerable:!0}):_,l)),_n=l=>ye(O({},\"__esModule\",{value:!0}),l);var ve=X((gn,ge)=>{ge.exports=React});var Ee=X(H=>{\"use strict\";(function(){\"use strict\";var l=ve(),n=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),x=Symbol.for(\"react.fragment\"),k=Symbol.for(\"react.strict_mode\"),q=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),z=Symbol.for(\"react.context\"),R=Symbol.for(\"react.forward_ref\"),A=Symbol.for(\"react.suspense\"),D=Symbol.for(\"react.suspense_list\"),F=Symbol.for(\"react.memo\"),L=Symbol.for(\"react.lazy\"),Fe=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Te=\"@@iterator\";function we(e){if(e===null||typeof e!=\"object\")return null;var a=J&&e[J]||e[Te];return typeof a==\"function\"?a:null}var g=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function h(e){{for(var a=arguments.length,t=new Array(a>1?a-1:0),c=1;c=1&&m>=0&&o[u]!==b[m];)m--;for(;u>=1&&m>=0;u--,m--)if(o[u]!==b[m]){if(u!==1||m!==1)do if(u--,m--,m<0||o[u]!==b[m]){var f=`\n`+o[u].replace(\" at new \",\" at \");return e.displayName&&f.includes(\"\")&&(f=f.replace(\"\",e.displayName)),typeof e==\"function\"&&w.set(e,f),f}while(u>=1&&m>=0);break}}}finally{V=!1,I.current=d,Ve(),Error.prepareStackTrace=i}var E=e?e.displayName||e.name:\"\",xe=E?T(E):\"\";return typeof e==\"function\"&&w.set(e,xe),xe}function $e(e,a,t){return ie(e,!1)}function Me(e){var a=e.prototype;return!!(a&&a.isReactComponent)}function S(e,a,t){if(e==null)return\"\";if(typeof e==\"function\")return ie(e,Me(e));if(typeof e==\"string\")return T(e);switch(e){case A:return T(\"Suspense\");case D:return T(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case R:return $e(e.render);case F:return S(e.type,a,t);case L:{var c=e,i=c._payload,d=c._init;try{return S(d(i),a,t)}catch{}}}return\"\"}var C=Object.prototype.hasOwnProperty,de={},le=g.ReactDebugCurrentFrame;function P(e){if(e){var a=e._owner,t=S(e.type,e._source,a?a.type:null);le.setExtraStackFrame(t)}else le.setExtraStackFrame(null)}function We(e,a,t,c,i){{var d=Function.call.bind(C);for(var s in e)if(d(e,s)){var o=void 0;try{if(typeof e[s]!=\"function\"){var b=Error((c||\"React class\")+\": \"+t+\" type `\"+s+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[s]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw b.name=\"Invariant Violation\",b}o=e[s](a,s,c,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(u){o=u}o&&!(o instanceof Error)&&(P(i),h(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",c||\"React class\",t,s,typeof o),P(null)),o instanceof Error&&!(o.message in de)&&(de[o.message]=!0,P(i),h(\"Failed %s type: %s\",t,o.message),P(null))}}}var Ge=Array.isArray;function Y(e){return Ge(e)}function Xe(e){{var a=typeof Symbol==\"function\"&&Symbol.toStringTag,t=a&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function He(e){try{return ue(e),!1}catch{return!0}}function ue(e){return\"\"+e}function me(e){if(He(e))return h(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Xe(e)),ue(e)}var U=g.ReactCurrentOwner,qe={key:!0,ref:!0,__self:!0,__source:!0},he,be,$;$={};function Ke(e){if(C.call(e,\"ref\")){var a=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(a&&a.isReactWarning)return!1}return e.ref!==void 0}function ze(e){if(C.call(e,\"key\")){var a=Object.getOwnPropertyDescriptor(e,\"key\").get;if(a&&a.isReactWarning)return!1}return e.key!==void 0}function Je(e,a){if(typeof e.ref==\"string\"&&U.current&&a&&U.current.stateNode!==a){var t=p(U.current.type);$[t]||(h('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(U.current.type),e.ref),$[t]=!0)}}function Ze(e,a){{var t=function(){he||(he=!0,h(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,a){{var t=function(){be||(be=!0,h(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var en=function(e,a,t,c,i,d,s){var o={$$typeof:n,type:e,key:a,ref:t,props:s,_owner:d};return o._store={},Object.defineProperty(o._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(o,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:c}),Object.defineProperty(o,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(o.props),Object.freeze(o)),o};function nn(e,a,t,c,i){{var d,s={},o=null,b=null;t!==void 0&&(me(t),o=\"\"+t),ze(a)&&(me(a.key),o=\"\"+a.key),Ke(a)&&(b=a.ref,Je(a,i));for(d in a)C.call(a,d)&&!qe.hasOwnProperty(d)&&(s[d]=a[d]);if(e&&e.defaultProps){var u=e.defaultProps;for(d in u)s[d]===void 0&&(s[d]=u[d])}if(o||b){var m=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;o&&Ze(s,m),b&&Qe(s,m)}return en(e,o,b,i,c,U.current,s)}}var M=g.ReactCurrentOwner,fe=g.ReactDebugCurrentFrame;function v(e){if(e){var a=e._owner,t=S(e.type,e._source,a?a.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}var W;W=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===n}function _e(){{if(M.current){var e=p(M.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function rn(e){{if(e!==void 0){var a=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+a+\":\"+t+\".\"}return\"\"}}var pe={};function an(e){{var a=_e();if(!a){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(a=`\n\nCheck the top-level render call using <`+t+\">.\")}return a}}function Ne(e,a){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=an(a);if(pe[t])return;pe[t]=!0;var c=\"\";e&&e._owner&&e._owner!==M.current&&(c=\" It was passed a child from \"+p(e._owner.type)+\".\"),v(e),h('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,c),v(null)}}function ke(e,a){{if(typeof e!=\"object\")return;if(Y(e))for(var t=0;t\",o=\" Did you accidentally export a JSX literal instead of a component?\"):u=typeof e,h(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",u,o)}var m=nn(e,a,t,i,d);if(m==null)return m;if(s){var f=a.children;if(f!==void 0)if(c)if(Y(f)){for(var E=0;E{\"use strict\";je.exports=Ee()});var xn={};bn(xn,{default:()=>kn,frontmatter:()=>pn});var r=fn(Ue()),pn={title:\"envshare.dev\",description:\"EnvShare is a simple tool to share environment variables securely. It uses AES-GCM to encrypt your data before sending it to the server. The encryption key never leaves your browser.\",date:\"2023-01-16\",url:\"https://envshare.dev\",repository:\"chronark/envshare\"};function Re(l){let n=Object.assign({p:\"p\",strong:\"strong\",h2:\"h2\",a:\"a\",span:\"span\",ul:\"ul\",li:\"li\",img:\"img\",h3:\"h3\",code:\"code\",h4:\"h4\",div:\"div\",pre:\"pre\"},l.components);return(0,r.jsxDEV)(r.Fragment,{children:[(0,r.jsxDEV)(n.p,{children:[`EnvShare is a simple tool to share environment variables securely. It uses\n`,(0,r.jsxDEV)(n.strong,{children:\"AES-GCM\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:11,columnNumber:1},this),` to encrypt your data before sending it to the server. The encryption\nkey never leaves your browser.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"features\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#features\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\"},this),\"Features\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Shareable Links:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:16,columnNumber:3},this),` Share your environment variables securely by sending a\nlink`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"End-to-End Encryption:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:18,columnNumber:3},this),` AES-GCM encryption is used to encrypt your data\nbefore sending it to the server`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Limit number of reads:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:20,columnNumber:3},this),\" Limit the number of times a link can be read\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Auto Expire:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:21,columnNumber:3},this),` Automatically expire links and delete data after a certain\ntime`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:21,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.img,{src:\"img/envshare.png\",alt:\"\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:26,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:26,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"built-with\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#built-with\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\"},this),\"Built with\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:28,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:(0,r.jsxDEV)(n.a,{href:\"https://nextjs.org\",children:\"Next.js\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:30,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:(0,r.jsxDEV)(n.a,{href:\"https://tailwindcss.com\",children:\"tailwindcss\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:31,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Deployed on \",(0,r.jsxDEV)(n.a,{href:\"https://vercel.com?utm_source=envshare\",children:\"Vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:32,columnNumber:15},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:32,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Data stored on \",(0,r.jsxDEV)(n.a,{href:\"https://upstash.com?utm_source=envshare\",children:\"Upstash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:33,columnNumber:18},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:33,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"deploy-your-own\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#deploy-your-own\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\"},this),\"Deploy your own\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"Detailed instructions can be found \",(0,r.jsxDEV)(n.a,{href:\"https://envshare.dev/deploy\",children:\"here\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:37,columnNumber:36},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:37,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:`All you need is a Redis database on Upstash and a Vercel account. Click the\nbutton below to clone and deploy:`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:39,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.a,{href:\"https://vercel.com/new/clone?demo-title=EnvShare&demo-description=Simple%20Next.js%20%2B%20Upstash%20app%20to%20share%20environment%20variables%20securely%20using%20AES-GCM%20encryption.&demo-url=https%3A%2F%2Fenvshare.dev%2F&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5SaFBHXp5FBFJbsTzVqIJ3%2Ff0f8382369b7642fd8103debb9025c11%2Fenvshare.png&project-name=EnvShare&repository-name=envshare&repository-url=https%3A%2F%2Fgithub.com%2Fchronark%2Fenvshare&from=templates&integration-ids=oac_V3R1GIpkoJorr6fqyiwdhl17\",children:(0,r.jsxDEV)(n.img,{src:\"https://vercel.com/button\",alt:\"Deploy with Vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:42,columnNumber:2},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:42,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:42,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"configuration\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#configuration\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\"},this),\"Configuration\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:46,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h3,{id:\"environment-variables\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#environment-variables\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\"},this),\"Environment Variables\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:48,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[(0,r.jsxDEV)(n.code,{children:\"ENABLE_VERCEL_ANALYTICS\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:50,columnNumber:1},this),\" Any truthy value will enable Vercel Analytics. This is turned off by default\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:50,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"contributing\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#contributing\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\"},this),\"Contributing\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:52,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"This repository uses \",(0,r.jsxDEV)(n.code,{children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:54,columnNumber:22},this),` to manage dependencies. Install it using\n`,(0,r.jsxDEV)(n.code,{children:\"npm install -g pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:55,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:54,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"Please run \",(0,r.jsxDEV)(n.code,{children:\"pnpm fmt\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:57,columnNumber:12},this),\" before committing to format the code.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:57,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"docs\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#docs\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\"},this),\"Docs\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:59,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"Docs in the README are temporary and will be moved to the website soon.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:61,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h3,{id:\"api\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#api\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\"},this),\"API\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:63,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h4,{id:\"store-a-secret\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#store-a-secret\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\"},this),\"Store a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:65,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.strong,{children:\"PLEASE NEVER EVER UPLOAD UNENCRYPTED SECRETS.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:67,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:67,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"This endpoint is only meant to store \",(0,r.jsxDEV)(n.strong,{children:\"already encrypted\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:69,columnNumber:38},this),` secrets. The\nencrypted secrets are stored in plain text.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:69,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:'$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:72,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"You can add optional headers to configure the ttl and number of reads.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:76,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:'$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\" -H \"envshare-ttl: 3600\" -H \"envshare-reads: 10\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:78,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:[\"Omitting the \",(0,r.jsxDEV)(n.code,{children:\"envshare-ttl\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:82,columnNumber:16},this),` header will set a default of 30 days. Disable the\nttl by setting it to 0. (`,(0,r.jsxDEV)(n.code,{children:\"envshare-ttl: 0\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:83,columnNumber:28},this),\")\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Omitting the \",(0,r.jsxDEV)(n.code,{children:\"envshare-reads\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:84,columnNumber:16},this),` header will simply disable it and allow reading\nfor an unlimited number of times.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:84,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"This endpoint returns a JSON response with the secret id:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:87,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"json\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"json\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"data\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"id\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:3,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:3,columnNumber:110},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"HdPbXgpvUvNk43oxSdK97u\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:3,columnNumber:148},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:3,columnNumber:218},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"ttl\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:4,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:4,columnNumber:111},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"86400\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:4,columnNumber:149},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:4,columnNumber:190},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:5,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"reads\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:5,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:5,columnNumber:113},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"2\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:5,columnNumber:151},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:5,columnNumber:188},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:6,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"expiresAt\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:6,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:6,columnNumber:117},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"2023-01-19T20:47:28.383Z\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:6,columnNumber:155},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:6,columnNumber:227},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:7,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"url\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:7,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:7,columnNumber:111},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"http://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:7,columnNumber:149},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:9,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:89,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h4,{id:\"retrieve-a-secret\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#retrieve-a-secret\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\"},this),\"Retrieve a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:101,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"You need an id to retrieve a secret. The id is returned when you store a secret.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:103,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:\"$ curl -s https://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:105,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"json\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"json\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"data\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"secret\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:3,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:3,columnNumber:114},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"Hello\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:3,columnNumber:152},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:3,columnNumber:205},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"remainingReads\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:4,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:4,columnNumber:122},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:4,columnNumber:160},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:5,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:6,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:109,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\",lineNumber:1,columnNumber:1},this)}function Nn(l={}){let{wrapper:n}=l.components||{};return n?(0,r.jsxDEV)(n,Object.assign({},l,{children:(0,r.jsxDEV)(Re,l,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-536cdef8-a121-4345-bdca-237c92b66397.mdx\"},this):Re(l)}var kn=Nn;return _n(xn);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/envshare copy.mdx", - "_raw": { - "sourceFilePath": "projects/envshare copy.mdx", - "sourceFileName": "envshare copy.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/envshare copy" - }, - "type": "Project", - "path": "/projects/envshare copy", - "slug": "envshare copy" -} \ No newline at end of file diff --git a/.contentlayer/generated/Project/projects__envshare.mdx.json b/.contentlayer/generated/Project/projects__envshare.mdx.json deleted file mode 100644 index 9950c9e..0000000 --- a/.contentlayer/generated/Project/projects__envshare.mdx.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "published": true, - "title": "envshare.dev", - "description": "EnvShare is a simple tool to share environment variables securely. It uses AES-GCM to encrypt your data before sending it to the server. The encryption key never leaves your browser.", - "date": "2023-01-16T00:00:00.000Z", - "url": "https://envshare.dev", - "repository": "chronark/envshare", - "body": { - "raw": "\nEnvShare is a simple tool to share environment variables securely. It uses\n**AES-GCM** to encrypt your data before sending it to the server. The encryption\nkey never leaves your browser.\n\n## Features\n\n- **Shareable Links:** Share your environment variables securely by sending a\n link\n- **End-to-End Encryption:** AES-GCM encryption is used to encrypt your data\n before sending it to the server\n- **Limit number of reads:** Limit the number of times a link can be read\n- **Auto Expire:** Automatically expire links and delete data after a certain\n time\n\n\n\n![](https://github.com/chronark/envshare/raw/main/img/envshare.png)\n\n## Built with\n\n- [Next.js](https://nextjs.org)\n- [tailwindcss](https://tailwindcss.com)\n- Deployed on [Vercel](https://vercel.com?utm_source=envshare)\n- Data stored on [Upstash](https://upstash.com?utm_source=envshare)\n\n## Deploy your own\n\nDetailed instructions can be found [here](https://envshare.dev/deploy)\n\nAll you need is a Redis database on Upstash and a Vercel account. Click the\nbutton below to clone and deploy:\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?demo-title=EnvShare&demo-description=Simple%20Next.js%20%2B%20Upstash%20app%20to%20share%20environment%20variables%20securely%20using%20AES-GCM%20encryption.&demo-url=https%3A%2F%2Fenvshare.dev%2F&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5SaFBHXp5FBFJbsTzVqIJ3%2Ff0f8382369b7642fd8103debb9025c11%2Fenvshare.png&project-name=EnvShare&repository-name=envshare&repository-url=https%3A%2F%2Fgithub.com%2Fchronark%2Fenvshare&from=templates&integration-ids=oac_V3R1GIpkoJorr6fqyiwdhl17)\n\n\n\n## Configuration\n\n### Environment Variables\n\n`ENABLE_VERCEL_ANALYTICS` Any truthy value will enable Vercel Analytics. This is turned off by default\n\n## Contributing\n\nThis repository uses `pnpm` to manage dependencies. Install it using\n`npm install -g pnpm`\n\nPlease run `pnpm fmt` before committing to format the code.\n\n## Docs\n\nDocs in the README are temporary and will be moved to the website soon.\n\n### API\n\n#### Store a secret\n\n**PLEASE NEVER EVER UPLOAD UNENCRYPTED SECRETS.**\n\nThis endpoint is only meant to store **already encrypted** secrets. The\nencrypted secrets are stored in plain text.\n\n```sh-session\n$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\"\n```\n\nYou can add optional headers to configure the ttl and number of reads.\n\n```sh-session\n$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\" -H \"envshare-ttl: 3600\" -H \"envshare-reads: 10\"\n```\n\n- Omitting the `envshare-ttl` header will set a default of 30 days. Disable the\n ttl by setting it to 0. (`envshare-ttl: 0`)\n- Omitting the `envshare-reads` header will simply disable it and allow reading\n for an unlimited number of times.\n\nThis endpoint returns a JSON response with the secret id:\n\n```json\n{\n \"data\": {\n \"id\": \"HdPbXgpvUvNk43oxSdK97u\",\n \"ttl\": 86400,\n \"reads\": 2,\n \"expiresAt\": \"2023-01-19T20:47:28.383Z\",\n \"url\": \"http://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"\n }\n}\n```\n\n#### Retrieve a secret\n\nYou need an id to retrieve a secret. The id is returned when you store a secret.\n\n```sh-session\n$ curl -s https://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\n```\n\n```json\n{\n \"data\": {\n \"secret\": \"Hello\",\n \"remainingReads\": 1\n }\n}\n```", - "code": "var Component=(()=>{var ln=Object.create;var O=Object.defineProperty;var dn=Object.getOwnPropertyDescriptor;var un=Object.getOwnPropertyNames;var mn=Object.getPrototypeOf,bn=Object.prototype.hasOwnProperty;var X=(d,n)=>()=>(n||d((n={exports:{}}).exports,n),n.exports),hn=(d,n)=>{for(var _ in n)O(d,_,{get:n[_],enumerable:!0})},ye=(d,n,_,x)=>{if(n&&typeof n==\"object\"||typeof n==\"function\")for(let k of un(n))!bn.call(d,k)&&k!==_&&O(d,k,{get:()=>n[k],enumerable:!(x=dn(n,k))||x.enumerable});return d};var fn=(d,n,_)=>(_=d!=null?ln(mn(d)):{},ye(n||!d||!d.__esModule?O(_,\"default\",{value:d,enumerable:!0}):_,d)),_n=d=>ye(O({},\"__esModule\",{value:!0}),d);var ve=X((gn,ge)=>{ge.exports=React});var Ee=X(H=>{\"use strict\";(function(){\"use strict\";var d=ve(),n=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),x=Symbol.for(\"react.fragment\"),k=Symbol.for(\"react.strict_mode\"),q=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),z=Symbol.for(\"react.context\"),R=Symbol.for(\"react.forward_ref\"),A=Symbol.for(\"react.suspense\"),D=Symbol.for(\"react.suspense_list\"),F=Symbol.for(\"react.memo\"),L=Symbol.for(\"react.lazy\"),Fe=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Te=\"@@iterator\";function we(e){if(e===null||typeof e!=\"object\")return null;var t=J&&e[J]||e[Te];return typeof t==\"function\"?t:null}var g=d.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function b(e){{for(var t=arguments.length,a=new Array(t>1?t-1:0),o=1;o=1&&m>=0&&s[u]!==h[m];)m--;for(;u>=1&&m>=0;u--,m--)if(s[u]!==h[m]){if(u!==1||m!==1)do if(u--,m--,m<0||s[u]!==h[m]){var f=`\n`+s[u].replace(\" at new \",\" at \");return e.displayName&&f.includes(\"\")&&(f=f.replace(\"\",e.displayName)),typeof e==\"function\"&&w.set(e,f),f}while(u>=1&&m>=0);break}}}finally{V=!1,I.current=l,Ve(),Error.prepareStackTrace=c}var E=e?e.displayName||e.name:\"\",xe=E?T(E):\"\";return typeof e==\"function\"&&w.set(e,xe),xe}function $e(e,t,a){return ce(e,!1)}function Me(e){var t=e.prototype;return!!(t&&t.isReactComponent)}function S(e,t,a){if(e==null)return\"\";if(typeof e==\"function\")return ce(e,Me(e));if(typeof e==\"string\")return T(e);switch(e){case A:return T(\"Suspense\");case D:return T(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case R:return $e(e.render);case F:return S(e.type,t,a);case L:{var o=e,c=o._payload,l=o._init;try{return S(l(c),t,a)}catch{}}}return\"\"}var C=Object.prototype.hasOwnProperty,le={},de=g.ReactDebugCurrentFrame;function P(e){if(e){var t=e._owner,a=S(e.type,e._source,t?t.type:null);de.setExtraStackFrame(a)}else de.setExtraStackFrame(null)}function We(e,t,a,o,c){{var l=Function.call.bind(C);for(var i in e)if(l(e,i)){var s=void 0;try{if(typeof e[i]!=\"function\"){var h=Error((o||\"React class\")+\": \"+a+\" type `\"+i+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[i]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw h.name=\"Invariant Violation\",h}s=e[i](t,i,o,a,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(u){s=u}s&&!(s instanceof Error)&&(P(c),b(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",o||\"React class\",a,i,typeof s),P(null)),s instanceof Error&&!(s.message in le)&&(le[s.message]=!0,P(c),b(\"Failed %s type: %s\",a,s.message),P(null))}}}var Ge=Array.isArray;function Y(e){return Ge(e)}function Xe(e){{var t=typeof Symbol==\"function\"&&Symbol.toStringTag,a=t&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return a}}function He(e){try{return ue(e),!1}catch{return!0}}function ue(e){return\"\"+e}function me(e){if(He(e))return b(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Xe(e)),ue(e)}var U=g.ReactCurrentOwner,qe={key:!0,ref:!0,__self:!0,__source:!0},be,he,$;$={};function Ke(e){if(C.call(e,\"ref\")){var t=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(t&&t.isReactWarning)return!1}return e.ref!==void 0}function ze(e){if(C.call(e,\"key\")){var t=Object.getOwnPropertyDescriptor(e,\"key\").get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function Je(e,t){if(typeof e.ref==\"string\"&&U.current&&t&&U.current.stateNode!==t){var a=p(U.current.type);$[a]||(b('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(U.current.type),e.ref),$[a]=!0)}}function Ze(e,t){{var a=function(){be||(be=!0,b(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",t))};a.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:a,configurable:!0})}}function Qe(e,t){{var a=function(){he||(he=!0,b(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",t))};a.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:a,configurable:!0})}}var en=function(e,t,a,o,c,l,i){var s={$$typeof:n,type:e,key:t,ref:a,props:i,_owner:l};return s._store={},Object.defineProperty(s._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(s,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(s,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:c}),Object.freeze&&(Object.freeze(s.props),Object.freeze(s)),s};function nn(e,t,a,o,c){{var l,i={},s=null,h=null;a!==void 0&&(me(a),s=\"\"+a),ze(t)&&(me(t.key),s=\"\"+t.key),Ke(t)&&(h=t.ref,Je(t,c));for(l in t)C.call(t,l)&&!qe.hasOwnProperty(l)&&(i[l]=t[l]);if(e&&e.defaultProps){var u=e.defaultProps;for(l in u)i[l]===void 0&&(i[l]=u[l])}if(s||h){var m=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;s&&Ze(i,m),h&&Qe(i,m)}return en(e,s,h,c,o,U.current,i)}}var M=g.ReactCurrentOwner,fe=g.ReactDebugCurrentFrame;function v(e){if(e){var t=e._owner,a=S(e.type,e._source,t?t.type:null);fe.setExtraStackFrame(a)}else fe.setExtraStackFrame(null)}var W;W=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===n}function _e(){{if(M.current){var e=p(M.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function rn(e){{if(e!==void 0){var t=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),a=e.lineNumber;return`\n\nCheck your code at `+t+\":\"+a+\".\"}return\"\"}}var pe={};function tn(e){{var t=_e();if(!t){var a=typeof e==\"string\"?e:e.displayName||e.name;a&&(t=`\n\nCheck the top-level render call using <`+a+\">.\")}return t}}function Ne(e,t){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var a=tn(t);if(pe[a])return;pe[a]=!0;var o=\"\";e&&e._owner&&e._owner!==M.current&&(o=\" It was passed a child from \"+p(e._owner.type)+\".\"),v(e),b('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',a,o),v(null)}}function ke(e,t){{if(typeof e!=\"object\")return;if(Y(e))for(var a=0;a\",s=\" Did you accidentally export a JSX literal instead of a component?\"):u=typeof e,b(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",u,s)}var m=nn(e,t,a,c,l);if(m==null)return m;if(i){var f=t.children;if(f!==void 0)if(o)if(Y(f)){for(var E=0;E{\"use strict\";je.exports=Ee()});var xn={};hn(xn,{default:()=>kn,frontmatter:()=>pn});var r=fn(Ue()),pn={title:\"envshare.dev\",description:\"EnvShare is a simple tool to share environment variables securely. It uses AES-GCM to encrypt your data before sending it to the server. The encryption key never leaves your browser.\",date:\"2023-01-16\",url:\"https://envshare.dev\",repository:\"chronark/envshare\",published:!0};function Re(d){let n=Object.assign({p:\"p\",strong:\"strong\",h2:\"h2\",a:\"a\",span:\"span\",ul:\"ul\",li:\"li\",img:\"img\",h3:\"h3\",code:\"code\",h4:\"h4\",div:\"div\",pre:\"pre\"},d.components);return(0,r.jsxDEV)(r.Fragment,{children:[(0,r.jsxDEV)(n.p,{children:[`EnvShare is a simple tool to share environment variables securely. It uses\n`,(0,r.jsxDEV)(n.strong,{children:\"AES-GCM\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:11,columnNumber:1},this),` to encrypt your data before sending it to the server. The encryption\nkey never leaves your browser.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"features\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#features\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Features\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Shareable Links:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:16,columnNumber:3},this),` Share your environment variables securely by sending a\nlink`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"End-to-End Encryption:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:18,columnNumber:3},this),` AES-GCM encryption is used to encrypt your data\nbefore sending it to the server`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Limit number of reads:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:20,columnNumber:3},this),\" Limit the number of times a link can be read\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Auto Expire:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:21,columnNumber:3},this),` Automatically expire links and delete data after a certain\ntime`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:21,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.img,{src:\"https://github.com/chronark/envshare/raw/main/img/envshare.png\",alt:\"\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:26,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:26,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"built-with\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#built-with\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Built with\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:28,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:(0,r.jsxDEV)(n.a,{href:\"https://nextjs.org\",children:\"Next.js\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:30,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:(0,r.jsxDEV)(n.a,{href:\"https://tailwindcss.com\",children:\"tailwindcss\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:31,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Deployed on \",(0,r.jsxDEV)(n.a,{href:\"https://vercel.com?utm_source=envshare\",children:\"Vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:32,columnNumber:15},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:32,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Data stored on \",(0,r.jsxDEV)(n.a,{href:\"https://upstash.com?utm_source=envshare\",children:\"Upstash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:33,columnNumber:18},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:33,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"deploy-your-own\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#deploy-your-own\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Deploy your own\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"Detailed instructions can be found \",(0,r.jsxDEV)(n.a,{href:\"https://envshare.dev/deploy\",children:\"here\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:37,columnNumber:36},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:37,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:`All you need is a Redis database on Upstash and a Vercel account. Click the\nbutton below to clone and deploy:`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:39,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.a,{href:\"https://vercel.com/new/clone?demo-title=EnvShare&demo-description=Simple%20Next.js%20%2B%20Upstash%20app%20to%20share%20environment%20variables%20securely%20using%20AES-GCM%20encryption.&demo-url=https%3A%2F%2Fenvshare.dev%2F&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5SaFBHXp5FBFJbsTzVqIJ3%2Ff0f8382369b7642fd8103debb9025c11%2Fenvshare.png&project-name=EnvShare&repository-name=envshare&repository-url=https%3A%2F%2Fgithub.com%2Fchronark%2Fenvshare&from=templates&integration-ids=oac_V3R1GIpkoJorr6fqyiwdhl17\",children:(0,r.jsxDEV)(n.img,{src:\"https://vercel.com/button\",alt:\"Deploy with Vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:42,columnNumber:2},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:42,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:42,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"configuration\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#configuration\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Configuration\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:46,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h3,{id:\"environment-variables\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#environment-variables\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Environment Variables\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:48,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[(0,r.jsxDEV)(n.code,{children:\"ENABLE_VERCEL_ANALYTICS\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:50,columnNumber:1},this),\" Any truthy value will enable Vercel Analytics. This is turned off by default\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:50,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"contributing\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#contributing\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Contributing\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:52,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"This repository uses \",(0,r.jsxDEV)(n.code,{children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:54,columnNumber:22},this),` to manage dependencies. Install it using\n`,(0,r.jsxDEV)(n.code,{children:\"npm install -g pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:55,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:54,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"Please run \",(0,r.jsxDEV)(n.code,{children:\"pnpm fmt\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:57,columnNumber:12},this),\" before committing to format the code.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:57,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"docs\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#docs\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Docs\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:59,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"Docs in the README are temporary and will be moved to the website soon.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:61,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h3,{id:\"api\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#api\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"API\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:63,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h4,{id:\"store-a-secret\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#store-a-secret\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Store a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:65,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.strong,{children:\"PLEASE NEVER EVER UPLOAD UNENCRYPTED SECRETS.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:67,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:67,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"This endpoint is only meant to store \",(0,r.jsxDEV)(n.strong,{children:\"already encrypted\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:69,columnNumber:38},this),` secrets. The\nencrypted secrets are stored in plain text.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:69,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:'$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:72,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"You can add optional headers to configure the ttl and number of reads.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:76,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:'$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\" -H \"envshare-ttl: 3600\" -H \"envshare-reads: 10\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:78,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:[\"Omitting the \",(0,r.jsxDEV)(n.code,{children:\"envshare-ttl\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:82,columnNumber:16},this),` header will set a default of 30 days. Disable the\nttl by setting it to 0. (`,(0,r.jsxDEV)(n.code,{children:\"envshare-ttl: 0\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:83,columnNumber:28},this),\")\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Omitting the \",(0,r.jsxDEV)(n.code,{children:\"envshare-reads\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:84,columnNumber:16},this),` header will simply disable it and allow reading\nfor an unlimited number of times.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:84,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"This endpoint returns a JSON response with the secret id:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:87,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"json\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"json\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"data\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"id\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:110},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"HdPbXgpvUvNk43oxSdK97u\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:148},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:218},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"ttl\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:111},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"86400\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:149},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:190},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"reads\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:113},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"2\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:151},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:188},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"expiresAt\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:117},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"2023-01-19T20:47:28.383Z\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:155},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:227},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:7,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"url\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:7,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:7,columnNumber:111},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"http://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:7,columnNumber:149},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:9,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:89,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h4,{id:\"retrieve-a-secret\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#retrieve-a-secret\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Retrieve a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:101,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"You need an id to retrieve a secret. The id is returned when you store a secret.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:103,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:\"$ curl -s https://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:105,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"json\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"json\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"data\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"secret\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:114},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"Hello\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:152},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:205},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"remainingReads\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:122},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:160},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:109,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:1},this)}function Nn(d={}){let{wrapper:n}=d.components||{};return n?(0,r.jsxDEV)(n,Object.assign({},d,{children:(0,r.jsxDEV)(Re,d,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this):Re(d)}var kn=Nn;return _n(xn);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/envshare.mdx", - "_raw": { - "sourceFilePath": "projects/envshare.mdx", - "sourceFileName": "envshare.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/envshare" - }, - "type": "Project", - "path": "/projects/envshare", - "slug": "envshare" -} \ No newline at end of file diff --git a/.contentlayer/generated/Project/projects__planetfall copy.mdx.json b/.contentlayer/generated/Project/projects__planetfall copy.mdx.json deleted file mode 100644 index 1b26eae..0000000 --- a/.contentlayer/generated/Project/projects__planetfall copy.mdx.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "title": "Planetfall", - "description": "EnvShare is a simple tool to share environment variables securely. It uses AES-GCM to encrypt your data before sending it to the server. The encryption key never leaves your browser.", - "date": "2023-01-16T00:00:00.000Z", - "url": "https://envshare.dev", - "repository": "chronark/envshare", - "body": { - "raw": "\nEnvShare is a simple tool to share environment variables securely. It uses\n**AES-GCM** to encrypt your data before sending it to the server. The encryption\nkey never leaves your browser.\n\n## Features\n\n- **Shareable Links:** Share your environment variables securely by sending a\n link\n- **End-to-End Encryption:** AES-GCM encryption is used to encrypt your data\n before sending it to the server\n- **Limit number of reads:** Limit the number of times a link can be read\n- **Auto Expire:** Automatically expire links and delete data after a certain\n time\n\n\n\n![](img/envshare.png)\n\n## Built with\n\n- [Next.js](https://nextjs.org)\n- [tailwindcss](https://tailwindcss.com)\n- Deployed on [Vercel](https://vercel.com?utm_source=envshare)\n- Data stored on [Upstash](https://upstash.com?utm_source=envshare)\n\n## Deploy your own\n\nDetailed instructions can be found [here](https://envshare.dev/deploy)\n\nAll you need is a Redis database on Upstash and a Vercel account. Click the\nbutton below to clone and deploy:\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?demo-title=EnvShare&demo-description=Simple%20Next.js%20%2B%20Upstash%20app%20to%20share%20environment%20variables%20securely%20using%20AES-GCM%20encryption.&demo-url=https%3A%2F%2Fenvshare.dev%2F&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5SaFBHXp5FBFJbsTzVqIJ3%2Ff0f8382369b7642fd8103debb9025c11%2Fenvshare.png&project-name=EnvShare&repository-name=envshare&repository-url=https%3A%2F%2Fgithub.com%2Fchronark%2Fenvshare&from=templates&integration-ids=oac_V3R1GIpkoJorr6fqyiwdhl17)\n\n\n\n## Configuration\n\n### Environment Variables\n\n`ENABLE_VERCEL_ANALYTICS` Any truthy value will enable Vercel Analytics. This is turned off by default\n\n## Contributing\n\nThis repository uses `pnpm` to manage dependencies. Install it using\n`npm install -g pnpm`\n\nPlease run `pnpm fmt` before committing to format the code.\n\n## Docs\n\nDocs in the README are temporary and will be moved to the website soon.\n\n### API\n\n#### Store a secret\n\n**PLEASE NEVER EVER UPLOAD UNENCRYPTED SECRETS.**\n\nThis endpoint is only meant to store **already encrypted** secrets. The\nencrypted secrets are stored in plain text.\n\n```sh-session\n$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\"\n```\n\nYou can add optional headers to configure the ttl and number of reads.\n\n```sh-session\n$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\" -H \"envshare-ttl: 3600\" -H \"envshare-reads: 10\"\n```\n\n- Omitting the `envshare-ttl` header will set a default of 30 days. Disable the\n ttl by setting it to 0. (`envshare-ttl: 0`)\n- Omitting the `envshare-reads` header will simply disable it and allow reading\n for an unlimited number of times.\n\nThis endpoint returns a JSON response with the secret id:\n\n```json\n{\n \"data\": {\n \"id\": \"HdPbXgpvUvNk43oxSdK97u\",\n \"ttl\": 86400,\n \"reads\": 2,\n \"expiresAt\": \"2023-01-19T20:47:28.383Z\",\n \"url\": \"http://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"\n }\n}\n```\n\n#### Retrieve a secret\n\nYou need an id to retrieve a secret. The id is returned when you store a secret.\n\n```sh-session\n$ curl -s https://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\n```\n\n```json\n{\n \"data\": {\n \"secret\": \"Hello\",\n \"remainingReads\": 1\n }\n}\n```", - "code": "var Component=(()=>{var cn=Object.create;var O=Object.defineProperty;var ln=Object.getOwnPropertyDescriptor;var fn=Object.getOwnPropertyNames;var un=Object.getPrototypeOf,mn=Object.prototype.hasOwnProperty;var X=(l,n)=>()=>(n||l((n={exports:{}}).exports,n),n.exports),bn=(l,n)=>{for(var _ in n)O(l,_,{get:n[_],enumerable:!0})},ye=(l,n,_,x)=>{if(n&&typeof n==\"object\"||typeof n==\"function\")for(let k of fn(n))!mn.call(l,k)&&k!==_&&O(l,k,{get:()=>n[k],enumerable:!(x=ln(n,k))||x.enumerable});return l};var hn=(l,n,_)=>(_=l!=null?cn(un(l)):{},ye(n||!l||!l.__esModule?O(_,\"default\",{value:l,enumerable:!0}):_,l)),_n=l=>ye(O({},\"__esModule\",{value:!0}),l);var ve=X((gn,ge)=>{ge.exports=React});var Ee=X(H=>{\"use strict\";(function(){\"use strict\";var l=ve(),n=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),x=Symbol.for(\"react.fragment\"),k=Symbol.for(\"react.strict_mode\"),q=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),z=Symbol.for(\"react.context\"),R=Symbol.for(\"react.forward_ref\"),A=Symbol.for(\"react.suspense\"),D=Symbol.for(\"react.suspense_list\"),F=Symbol.for(\"react.memo\"),L=Symbol.for(\"react.lazy\"),Fe=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Te=\"@@iterator\";function we(e){if(e===null||typeof e!=\"object\")return null;var t=J&&e[J]||e[Te];return typeof t==\"function\"?t:null}var g=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function m(e){{for(var t=arguments.length,a=new Array(t>1?t-1:0),o=1;o=1&&u>=0&&d[f]!==b[u];)u--;for(;f>=1&&u>=0;f--,u--)if(d[f]!==b[u]){if(f!==1||u!==1)do if(f--,u--,u<0||d[f]!==b[u]){var h=`\n`+d[f].replace(\" at new \",\" at \");return e.displayName&&h.includes(\"\")&&(h=h.replace(\"\",e.displayName)),typeof e==\"function\"&&w.set(e,h),h}while(f>=1&&u>=0);break}}}finally{V=!1,I.current=i,Ve(),Error.prepareStackTrace=c}var E=e?e.displayName||e.name:\"\",xe=E?T(E):\"\";return typeof e==\"function\"&&w.set(e,xe),xe}function $e(e,t,a){return ce(e,!1)}function Me(e){var t=e.prototype;return!!(t&&t.isReactComponent)}function S(e,t,a){if(e==null)return\"\";if(typeof e==\"function\")return ce(e,Me(e));if(typeof e==\"string\")return T(e);switch(e){case A:return T(\"Suspense\");case D:return T(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case R:return $e(e.render);case F:return S(e.type,t,a);case L:{var o=e,c=o._payload,i=o._init;try{return S(i(c),t,a)}catch{}}}return\"\"}var C=Object.prototype.hasOwnProperty,ie={},le=g.ReactDebugCurrentFrame;function P(e){if(e){var t=e._owner,a=S(e.type,e._source,t?t.type:null);le.setExtraStackFrame(a)}else le.setExtraStackFrame(null)}function We(e,t,a,o,c){{var i=Function.call.bind(C);for(var s in e)if(i(e,s)){var d=void 0;try{if(typeof e[s]!=\"function\"){var b=Error((o||\"React class\")+\": \"+a+\" type `\"+s+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[s]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw b.name=\"Invariant Violation\",b}d=e[s](t,s,o,a,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){d=f}d&&!(d instanceof Error)&&(P(c),m(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",o||\"React class\",a,s,typeof d),P(null)),d instanceof Error&&!(d.message in ie)&&(ie[d.message]=!0,P(c),m(\"Failed %s type: %s\",a,d.message),P(null))}}}var Ge=Array.isArray;function Y(e){return Ge(e)}function Xe(e){{var t=typeof Symbol==\"function\"&&Symbol.toStringTag,a=t&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return a}}function He(e){try{return fe(e),!1}catch{return!0}}function fe(e){return\"\"+e}function ue(e){if(He(e))return m(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Xe(e)),fe(e)}var U=g.ReactCurrentOwner,qe={key:!0,ref:!0,__self:!0,__source:!0},me,be,$;$={};function Ke(e){if(C.call(e,\"ref\")){var t=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(t&&t.isReactWarning)return!1}return e.ref!==void 0}function ze(e){if(C.call(e,\"key\")){var t=Object.getOwnPropertyDescriptor(e,\"key\").get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function Je(e,t){if(typeof e.ref==\"string\"&&U.current&&t&&U.current.stateNode!==t){var a=p(U.current.type);$[a]||(m('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(U.current.type),e.ref),$[a]=!0)}}function Ze(e,t){{var a=function(){me||(me=!0,m(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",t))};a.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:a,configurable:!0})}}function Qe(e,t){{var a=function(){be||(be=!0,m(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",t))};a.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:a,configurable:!0})}}var en=function(e,t,a,o,c,i,s){var d={$$typeof:n,type:e,key:t,ref:a,props:s,_owner:i};return d._store={},Object.defineProperty(d._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(d,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(d,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:c}),Object.freeze&&(Object.freeze(d.props),Object.freeze(d)),d};function nn(e,t,a,o,c){{var i,s={},d=null,b=null;a!==void 0&&(ue(a),d=\"\"+a),ze(t)&&(ue(t.key),d=\"\"+t.key),Ke(t)&&(b=t.ref,Je(t,c));for(i in t)C.call(t,i)&&!qe.hasOwnProperty(i)&&(s[i]=t[i]);if(e&&e.defaultProps){var f=e.defaultProps;for(i in f)s[i]===void 0&&(s[i]=f[i])}if(d||b){var u=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;d&&Ze(s,u),b&&Qe(s,u)}return en(e,d,b,c,o,U.current,s)}}var M=g.ReactCurrentOwner,he=g.ReactDebugCurrentFrame;function v(e){if(e){var t=e._owner,a=S(e.type,e._source,t?t.type:null);he.setExtraStackFrame(a)}else he.setExtraStackFrame(null)}var W;W=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===n}function _e(){{if(M.current){var e=p(M.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function rn(e){{if(e!==void 0){var t=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),a=e.lineNumber;return`\n\nCheck your code at `+t+\":\"+a+\".\"}return\"\"}}var pe={};function tn(e){{var t=_e();if(!t){var a=typeof e==\"string\"?e:e.displayName||e.name;a&&(t=`\n\nCheck the top-level render call using <`+a+\">.\")}return t}}function Ne(e,t){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var a=tn(t);if(pe[a])return;pe[a]=!0;var o=\"\";e&&e._owner&&e._owner!==M.current&&(o=\" It was passed a child from \"+p(e._owner.type)+\".\"),v(e),m('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',a,o),v(null)}}function ke(e,t){{if(typeof e!=\"object\")return;if(Y(e))for(var a=0;a\",d=\" Did you accidentally export a JSX literal instead of a component?\"):f=typeof e,m(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",f,d)}var u=nn(e,t,a,c,i);if(u==null)return u;if(s){var h=t.children;if(h!==void 0)if(o)if(Y(h)){for(var E=0;E{\"use strict\";je.exports=Ee()});var xn={};bn(xn,{default:()=>kn,frontmatter:()=>pn});var r=hn(Ue()),pn={title:\"Planetfall\",description:\"EnvShare is a simple tool to share environment variables securely. It uses AES-GCM to encrypt your data before sending it to the server. The encryption key never leaves your browser.\",date:\"2023-01-16\",url:\"https://envshare.dev\",repository:\"chronark/envshare\"};function Re(l){let n=Object.assign({p:\"p\",strong:\"strong\",h2:\"h2\",a:\"a\",span:\"span\",ul:\"ul\",li:\"li\",img:\"img\",h3:\"h3\",code:\"code\",h4:\"h4\",div:\"div\",pre:\"pre\"},l.components);return(0,r.jsxDEV)(r.Fragment,{children:[(0,r.jsxDEV)(n.p,{children:[`EnvShare is a simple tool to share environment variables securely. It uses\n`,(0,r.jsxDEV)(n.strong,{children:\"AES-GCM\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:11,columnNumber:1},this),` to encrypt your data before sending it to the server. The encryption\nkey never leaves your browser.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"features\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#features\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\"},this),\"Features\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Shareable Links:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:16,columnNumber:3},this),` Share your environment variables securely by sending a\nlink`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"End-to-End Encryption:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:18,columnNumber:3},this),` AES-GCM encryption is used to encrypt your data\nbefore sending it to the server`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Limit number of reads:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:20,columnNumber:3},this),\" Limit the number of times a link can be read\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Auto Expire:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:21,columnNumber:3},this),` Automatically expire links and delete data after a certain\ntime`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:21,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.img,{src:\"img/envshare.png\",alt:\"\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:26,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:26,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"built-with\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#built-with\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\"},this),\"Built with\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:28,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:(0,r.jsxDEV)(n.a,{href:\"https://nextjs.org\",children:\"Next.js\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:30,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:(0,r.jsxDEV)(n.a,{href:\"https://tailwindcss.com\",children:\"tailwindcss\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:31,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Deployed on \",(0,r.jsxDEV)(n.a,{href:\"https://vercel.com?utm_source=envshare\",children:\"Vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:32,columnNumber:15},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:32,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Data stored on \",(0,r.jsxDEV)(n.a,{href:\"https://upstash.com?utm_source=envshare\",children:\"Upstash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:33,columnNumber:18},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:33,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"deploy-your-own\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#deploy-your-own\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\"},this),\"Deploy your own\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"Detailed instructions can be found \",(0,r.jsxDEV)(n.a,{href:\"https://envshare.dev/deploy\",children:\"here\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:37,columnNumber:36},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:37,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:`All you need is a Redis database on Upstash and a Vercel account. Click the\nbutton below to clone and deploy:`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:39,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.a,{href:\"https://vercel.com/new/clone?demo-title=EnvShare&demo-description=Simple%20Next.js%20%2B%20Upstash%20app%20to%20share%20environment%20variables%20securely%20using%20AES-GCM%20encryption.&demo-url=https%3A%2F%2Fenvshare.dev%2F&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5SaFBHXp5FBFJbsTzVqIJ3%2Ff0f8382369b7642fd8103debb9025c11%2Fenvshare.png&project-name=EnvShare&repository-name=envshare&repository-url=https%3A%2F%2Fgithub.com%2Fchronark%2Fenvshare&from=templates&integration-ids=oac_V3R1GIpkoJorr6fqyiwdhl17\",children:(0,r.jsxDEV)(n.img,{src:\"https://vercel.com/button\",alt:\"Deploy with Vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:42,columnNumber:2},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:42,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:42,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"configuration\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#configuration\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\"},this),\"Configuration\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:46,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h3,{id:\"environment-variables\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#environment-variables\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\"},this),\"Environment Variables\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:48,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[(0,r.jsxDEV)(n.code,{children:\"ENABLE_VERCEL_ANALYTICS\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:50,columnNumber:1},this),\" Any truthy value will enable Vercel Analytics. This is turned off by default\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:50,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"contributing\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#contributing\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\"},this),\"Contributing\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:52,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"This repository uses \",(0,r.jsxDEV)(n.code,{children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:54,columnNumber:22},this),` to manage dependencies. Install it using\n`,(0,r.jsxDEV)(n.code,{children:\"npm install -g pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:55,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:54,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"Please run \",(0,r.jsxDEV)(n.code,{children:\"pnpm fmt\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:57,columnNumber:12},this),\" before committing to format the code.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:57,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"docs\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#docs\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\"},this),\"Docs\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:59,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"Docs in the README are temporary and will be moved to the website soon.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:61,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h3,{id:\"api\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#api\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\"},this),\"API\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:63,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h4,{id:\"store-a-secret\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#store-a-secret\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\"},this),\"Store a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:65,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.strong,{children:\"PLEASE NEVER EVER UPLOAD UNENCRYPTED SECRETS.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:67,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:67,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"This endpoint is only meant to store \",(0,r.jsxDEV)(n.strong,{children:\"already encrypted\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:69,columnNumber:38},this),` secrets. The\nencrypted secrets are stored in plain text.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:69,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:'$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:72,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"You can add optional headers to configure the ttl and number of reads.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:76,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:'$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\" -H \"envshare-ttl: 3600\" -H \"envshare-reads: 10\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:78,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:[\"Omitting the \",(0,r.jsxDEV)(n.code,{children:\"envshare-ttl\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:82,columnNumber:16},this),` header will set a default of 30 days. Disable the\nttl by setting it to 0. (`,(0,r.jsxDEV)(n.code,{children:\"envshare-ttl: 0\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:83,columnNumber:28},this),\")\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Omitting the \",(0,r.jsxDEV)(n.code,{children:\"envshare-reads\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:84,columnNumber:16},this),` header will simply disable it and allow reading\nfor an unlimited number of times.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:84,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"This endpoint returns a JSON response with the secret id:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:87,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"json\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"json\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"data\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"id\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:3,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:3,columnNumber:110},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"HdPbXgpvUvNk43oxSdK97u\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:3,columnNumber:148},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:3,columnNumber:218},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"ttl\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:4,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:4,columnNumber:111},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"86400\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:4,columnNumber:149},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:4,columnNumber:190},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:5,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"reads\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:5,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:5,columnNumber:113},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"2\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:5,columnNumber:151},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:5,columnNumber:188},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:6,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"expiresAt\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:6,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:6,columnNumber:117},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"2023-01-19T20:47:28.383Z\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:6,columnNumber:155},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:6,columnNumber:227},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:7,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"url\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:7,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:7,columnNumber:111},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"http://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:7,columnNumber:149},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:9,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:89,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h4,{id:\"retrieve-a-secret\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#retrieve-a-secret\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\"},this),\"Retrieve a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:101,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"You need an id to retrieve a secret. The id is returned when you store a secret.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:103,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:\"$ curl -s https://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:105,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"json\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"json\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"data\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"secret\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:3,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:3,columnNumber:114},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"Hello\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:3,columnNumber:152},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:3,columnNumber:205},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"remainingReads\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:4,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:4,columnNumber:122},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:4,columnNumber:160},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:5,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:6,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:109,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\",lineNumber:1,columnNumber:1},this)}function Nn(l={}){let{wrapper:n}=l.components||{};return n?(0,r.jsxDEV)(n,Object.assign({},l,{children:(0,r.jsxDEV)(Re,l,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0f4ce1b8-8fed-428d-a208-fd62fb9b2361.mdx\"},this):Re(l)}var kn=Nn;return _n(xn);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/planetfall copy.mdx", - "_raw": { - "sourceFilePath": "projects/planetfall copy.mdx", - "sourceFileName": "planetfall copy.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/planetfall copy" - }, - "type": "Project", - "path": "/projects/planetfall copy", - "slug": "planetfall copy" -} \ No newline at end of file diff --git a/.contentlayer/generated/Project/projects__planetfall.mdx.json b/.contentlayer/generated/Project/projects__planetfall.mdx.json deleted file mode 100644 index 95029e8..0000000 --- a/.contentlayer/generated/Project/projects__planetfall.mdx.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "published": true, - "title": "planetfall.io", - "description": "I'm building a SAAS providing global latency monitoring for your APIs and websites from edge locations around the world. Have you ever wondered how fast your API is in any part of the world? Planetfall allows you to find out and monitor it continuously.", - "date": "2023-04-01T00:00:00.000Z", - "url": "https://planetfall.io", - "body": { - "raw": "\n\nPlanetfall is a SaaS platform that provides global latency monitoring and synthetic monitoring for APIs. With over 60 regions to monitor from, customers can gain insights into the true performance of their API by checking latency from around the world. \nPlanetfall offers custom timeouts, threshold notifications, and real-time alerts for potential performance issues. Additionally, customers can create custom status pages to share with their customers, which can display availability and latency for every region. Planetfall offers a free tier that includes 100k checks per month and scales as customers grow. Overall, Planetfall helps customers stay in control of their API's performance, improve communication with their customers, and build trust.", - "code": "var Component=(()=>{var sr=Object.create;var D=Object.defineProperty;var lr=Object.getOwnPropertyDescriptor;var fr=Object.getOwnPropertyNames;var cr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,l)=>()=>(l||s((l={exports:{}}).exports,l),l.exports),vr=(s,l)=>{for(var h in l)D(s,h,{get:l[h],enumerable:!0})},_e=(s,l,h,y)=>{if(l&&typeof l==\"object\"||typeof l==\"function\")for(let b of fr(l))!dr.call(s,b)&&b!==h&&D(s,b,{get:()=>l[b],enumerable:!(y=lr(l,b))||y.enumerable});return s};var pr=(s,l,h)=>(h=s!=null?sr(cr(s)):{},_e(l||!s||!s.__esModule?D(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(D({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var we=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),l=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),y=Symbol.for(\"react.fragment\"),b=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),H=Symbol.for(\"react.provider\"),K=Symbol.for(\"react.context\"),C=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),W=Symbol.for(\"react.suspense_list\"),O=Symbol.for(\"react.memo\"),Y=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function ke(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&c>=0&&a[f]!==v[c];)c--;for(;f>=1&&c>=0;f--,c--)if(a[f]!==v[c]){if(f!==1||c!==1)do if(f--,c--,c<0||a[f]!==v[c]){var p=`\n`+a[f].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(f>=1&&c>=0);break}}}finally{M=!1,$.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",Ee=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,Ee),Ee}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function k(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case W:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case C:return Ue(e.render);case O:return k(e.type,r,t);case Y:{var n=e,i=n._payload,u=n._init;try{return k(u(i),r,t)}catch{}}}return\"\"}var x=Object.prototype.hasOwnProperty,le={},fe=_.ReactDebugCurrentFrame;function A(e){if(e){var r=e._owner,t=k(e.type,e._source,r?r.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(x);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){a=f}a&&!(a instanceof Error)&&(A(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),A(null)),a instanceof Error&&!(a.message in le)&&(le[a.message]=!0,A(i),d(\"Failed %s type: %s\",t,a.message),A(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return ce(e),!1}catch{return!0}}function ce(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),ce(e)}var P=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function He(e){if(x.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function Ke(e){if(x.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&P.current&&r&&P.current.stateNode!==r){var t=m(P.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',m(P.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:l,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),Ke(r)&&(de(r.key),a=\"\"+r.key),He(r)&&(v=r.ref,Je(r,i));for(u in r)x.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var f=e.defaultProps;for(u in f)o[u]===void 0&&(o[u]=f[u])}if(a||v){var c=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,c),v&&Qe(o,c)}return er(e,a,v,i,n,P.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=k(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===l}function me(){{if(L.current){var e=m(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=me();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function be(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+m(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function ye(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):f=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",f,a)}var c=rr(e,r,t,i,u);if(c==null)return c;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Pe.exports=we()});var yr={};vr(yr,{default:()=>br,frontmatter:()=>mr});var F=pr(Ce()),mr={title:\"planetfall.io\",description:\"I'm building a SAAS providing global latency monitoring for your APIs and websites from edge locations around the world. Have you ever wondered how fast your API is in any part of the world? Planetfall allows you to find out and monitor it continuously.\",date:\"2023-04-01\",url:\"https://planetfall.io\",published:!0};function Oe(s){let l=Object.assign({p:\"p\"},s.components);return(0,F.jsxDEV)(l.p,{children:`Planetfall is a SaaS platform that provides global latency monitoring and synthetic monitoring for APIs. With over 60 regions to monitor from, customers can gain insights into the true performance of their API by checking latency from around the world.\nPlanetfall offers custom timeouts, threshold notifications, and real-time alerts for potential performance issues. Additionally, customers can create custom status pages to share with their customers, which can display availability and latency for every region. Planetfall offers a free tier that includes 100k checks per month and scales as customers grow. Overall, Planetfall helps customers stay in control of their API's performance, improve communication with their customers, and build trust.`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e9522400-f185-40ad-8df0-2d91f99fdbba.mdx\",lineNumber:11,columnNumber:1},this)}function gr(s={}){let{wrapper:l}=s.components||{};return l?(0,F.jsxDEV)(l,Object.assign({},s,{children:(0,F.jsxDEV)(Oe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e9522400-f185-40ad-8df0-2d91f99fdbba.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e9522400-f185-40ad-8df0-2d91f99fdbba.mdx\"},this):Oe(s)}var br=gr;return hr(yr);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/planetfall.mdx", - "_raw": { - "sourceFilePath": "projects/planetfall.mdx", - "sourceFileName": "planetfall.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/planetfall" - }, - "type": "Project", - "path": "/projects/planetfall", - "slug": "planetfall" -} \ No newline at end of file diff --git a/.contentlayer/generated/Project/projects__qstash.mdx.json b/.contentlayer/generated/Project/projects__qstash.mdx.json deleted file mode 100644 index 9adaf11..0000000 --- a/.contentlayer/generated/Project/projects__qstash.mdx.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "published": true, - "title": "QStash", - "description": "QStash is a fully managed serverless queue and messaging service designed for the serverless era.", - "date": "2022-07-18T00:00:00.000Z", - "url": "https://upstash.com/qstash", - "body": { - "raw": "\nQStash is an HTTP based messaging and scheduling solution for the serverless and edge runtimes.\n\n- 100% serverless, no stateful connections required. Messages are pushed to your API.\n- At-least-once delivery guaranteed to any public API\n- Pubsub via topics\n- Delay message delivery\n- Message deduplication\n- Scheduling via CRON\n\n\nFormally, QStash is a message queue and task scheduler designed for serverless runtimes. Informally, QStash is a glue for your serverless functions.\n\nThere was a perception serverless was only good for simple tasks. Not anymore. People build powerful systems with serverless stack. Powerful systems are composed of multiple components. Communication among those components is a big engineering problem. There are already great solutions for this problem. But we think existing solutions do not fit in serverless space. Either they are too complex or not designed to work with stateless runtimes. So we want a solution which (is):\n\n- Works anywhere including serverless and edge.\n- Messaging as a service with no backend for users to run.\n- Lightweight, easy to understand, requires nothing to learn.\n- Price scales to zero.\n\nLet's talk about a real world example. We have an e-commerce app and we want to send an informational email after each purchase. We have a service (an API route) for new purchases (newPurchase) and a second service for sending emails and notifications (sendEmail). We can call the sendEmail service from the newPurchase service. But what if the call fails? Should we wait for the response and retry? What if too many calls congest the sendEmail service and the service does not respond on time? You need to handle all these cases in your newPurchase service. Moreover, when you change the contract of sendEmail service; you have to update your newPurchase service too.\n\nIf you use QStash in the above example, you simply send a request to QStash from the newPurchase service. QStash will queue the request and call the sendEmail service. If the service does not respond, QStash will retry with a backoff strategy. The latency of sendEmail service will not affect the newPurchase service, because it will not wait for a response from the sendEmail service. QStash decouples the newPurchase and sendEmail services. You can update both services independently as long as you keep the message format compatible.\n\nWith QStash, you can add delays to the requests. Send an email 3 days after the shipment to remind the customer to add a review. You can also schedule tasks. You can send the requests with a CRON expression, so it will be run repetitively.\n\n\nTo learn more about QStash, visit [upstash.com/qstash](upstash.com/qstash).", - "code": "var Component=(()=>{var ur=Object.create;var F=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var lr=Object.getOwnPropertyNames;var fr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var B=(l,t)=>()=>(t||l((t={exports:{}}).exports,t),t.exports),hr=(l,t)=>{for(var v in t)F(l,v,{get:t[v],enumerable:!0})},Ee=(l,t,v,y)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let g of lr(t))!dr.call(l,g)&&g!==v&&F(l,g,{get:()=>t[g],enumerable:!(y=cr(t,g))||y.enumerable});return l};var mr=(l,t,v)=>(v=l!=null?ur(fr(l)):{},Ee(t||!l||!l.__esModule?F(v,\"default\",{value:l,enumerable:!0}):v,l)),br=l=>Ee(F({},\"__esModule\",{value:!0}),l);var we=B((Er,ke)=>{ke.exports=React});var xe=B(z=>{\"use strict\";(function(){\"use strict\";var l=we(),t=Symbol.for(\"react.element\"),v=Symbol.for(\"react.portal\"),y=Symbol.for(\"react.fragment\"),g=Symbol.for(\"react.strict_mode\"),G=Symbol.for(\"react.profiler\"),X=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),T=Symbol.for(\"react.forward_ref\"),U=Symbol.for(\"react.suspense\"),A=Symbol.for(\"react.suspense_list\"),j=Symbol.for(\"react.memo\"),I=Symbol.for(\"react.lazy\"),je=Symbol.for(\"react.offscreen\"),K=Symbol.iterator,Pe=\"@@iterator\";function Se(e){if(e===null||typeof e!=\"object\")return null;var r=K&&e[K]||e[Pe];return typeof r==\"function\"?r:null}var k=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function h(e){{for(var r=arguments.length,n=new Array(r>1?r-1:0),a=1;a=1&&d>=0&&o[f]!==m[d];)d--;for(;f>=1&&d>=0;f--,d--)if(o[f]!==m[d]){if(f!==1||d!==1)do if(f--,d--,d<0||o[f]!==m[d]){var b=`\n`+o[f].replace(\" at new \",\" at \");return e.displayName&&b.includes(\"\")&&(b=b.replace(\"\",e.displayName)),typeof e==\"function\"&&S.set(e,b),b}while(f>=1&&d>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=s}var x=e?e.displayName||e.name:\"\",ye=x?P(x):\"\";return typeof e==\"function\"&&S.set(e,ye),ye}function Ve(e,r,n){return ue(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function C(e,r,n){if(e==null)return\"\";if(typeof e==\"function\")return ue(e,Le(e));if(typeof e==\"string\")return P(e);switch(e){case U:return P(\"Suspense\");case A:return P(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case T:return Ve(e.render);case j:return C(e.type,r,n);case I:{var a=e,s=a._payload,u=a._init;try{return C(u(s),r,n)}catch{}}}return\"\"}var O=Object.prototype.hasOwnProperty,ce={},le=k.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,n=C(e.type,e._source,r?r.type:null);le.setExtraStackFrame(n)}else le.setExtraStackFrame(null)}function qe(e,r,n,a,s){{var u=Function.call.bind(O);for(var i in e)if(u(e,i)){var o=void 0;try{if(typeof e[i]!=\"function\"){var m=Error((a||\"React class\")+\": \"+n+\" type `\"+i+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[i]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw m.name=\"Invariant Violation\",m}o=e[i](r,i,a,n,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){o=f}o&&!(o instanceof Error)&&(D(s),h(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",a||\"React class\",n,i,typeof o),D(null)),o instanceof Error&&!(o.message in ce)&&(ce[o.message]=!0,D(s),h(\"Failed %s type: %s\",n,o.message),D(null))}}}var Qe=Array.isArray;function $(e){return Qe(e)}function Be(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,n=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return n}}function ze(e){try{return fe(e),!1}catch{return!0}}function fe(e){return\"\"+e}function de(e){if(ze(e))return h(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Be(e)),fe(e)}var N=k.ReactCurrentOwner,Ge={key:!0,ref:!0,__self:!0,__source:!0},he,me,V;V={};function Xe(e){if(O.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(O.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Ke(e,r){if(typeof e.ref==\"string\"&&N.current&&r&&N.current.stateNode!==r){var n=p(N.current.type);V[n]||(h('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(N.current.type),e.ref),V[n]=!0)}}function Je(e,r){{var n=function(){he||(he=!0,h(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};n.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:n,configurable:!0})}}function Ze(e,r){{var n=function(){me||(me=!0,h(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};n.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:n,configurable:!0})}}var er=function(e,r,n,a,s,u,i){var o={$$typeof:t,type:e,key:r,ref:n,props:i,_owner:u};return o._store={},Object.defineProperty(o._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(o,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:a}),Object.defineProperty(o,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:s}),Object.freeze&&(Object.freeze(o.props),Object.freeze(o)),o};function rr(e,r,n,a,s){{var u,i={},o=null,m=null;n!==void 0&&(de(n),o=\"\"+n),He(r)&&(de(r.key),o=\"\"+r.key),Xe(r)&&(m=r.ref,Ke(r,s));for(u in r)O.call(r,u)&&!Ge.hasOwnProperty(u)&&(i[u]=r[u]);if(e&&e.defaultProps){var f=e.defaultProps;for(u in f)i[u]===void 0&&(i[u]=f[u])}if(o||m){var d=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;o&&Je(i,d),m&&Ze(i,d)}return er(e,o,m,s,a,N.current,i)}}var L=k.ReactCurrentOwner,be=k.ReactDebugCurrentFrame;function w(e){if(e){var r=e._owner,n=C(e.type,e._source,r?r.type:null);be.setExtraStackFrame(n)}else be.setExtraStackFrame(null)}var q;q=!1;function Q(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===t}function ve(){{if(L.current){var e=p(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function nr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),n=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+n+\".\"}return\"\"}}var pe={};function ar(e){{var r=ve();if(!r){var n=typeof e==\"string\"?e:e.displayName||e.name;n&&(r=`\n\nCheck the top-level render call using <`+n+\">.\")}return r}}function _e(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var n=ar(r);if(pe[n])return;pe[n]=!0;var a=\"\";e&&e._owner&&e._owner!==L.current&&(a=\" It was passed a child from \"+p(e._owner.type)+\".\"),w(e),h('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',n,a),w(null)}}function ge(e,r){{if(typeof e!=\"object\")return;if($(e))for(var n=0;n\",o=\" Did you accidentally export a JSX literal instead of a component?\"):f=typeof e,h(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",f,o)}var d=rr(e,r,n,s,u);if(d==null)return d;if(i){var b=r.children;if(b!==void 0)if(a)if($(b)){for(var x=0;x{\"use strict\";Re.exports=xe()});var gr={};hr(gr,{default:()=>_r,frontmatter:()=>vr});var c=mr(Ne()),vr={title:\"QStash\",description:\"QStash is a fully managed serverless queue and messaging service designed for the serverless era.\",date:\"2022-07-18\",url:\"https://upstash.com/qstash\",published:!0};function Te(l){let t=Object.assign({p:\"p\",ul:\"ul\",li:\"li\",a:\"a\"},l.components);return(0,c.jsxDEV)(c.Fragment,{children:[(0,c.jsxDEV)(t.p,{children:\"QStash is an HTTP based messaging and scheduling solution for the serverless and edge runtimes.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.ul,{children:[`\n`,(0,c.jsxDEV)(t.li,{children:\"100% serverless, no stateful connections required. Messages are pushed to your API.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"At-least-once delivery guaranteed to any public API\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Pubsub via topics\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Delay message delivery\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Message deduplication\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Scheduling via CRON\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:17,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.p,{children:\"Formally, QStash is a message queue and task scheduler designed for serverless runtimes. Informally, QStash is a glue for your serverless functions.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.p,{children:\"There was a perception serverless was only good for simple tasks. Not anymore. People build powerful systems with serverless stack. Powerful systems are composed of multiple components. Communication among those components is a big engineering problem. There are already great solutions for this problem. But we think existing solutions do not fit in serverless space. Either they are too complex or not designed to work with stateless runtimes. So we want a solution which (is):\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:22,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.ul,{children:[`\n`,(0,c.jsxDEV)(t.li,{children:\"Works anywhere including serverless and edge.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:24,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Messaging as a service with no backend for users to run.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:25,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Lightweight, easy to understand, requires nothing to learn.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:26,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Price scales to zero.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:27,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:24,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.p,{children:\"Let's talk about a real world example. We have an e-commerce app and we want to send an informational email after each purchase. We have a service (an API route) for new purchases (newPurchase) and a second service for sending emails and notifications (sendEmail). We can call the sendEmail service from the newPurchase service. But what if the call fails? Should we wait for the response and retry? What if too many calls congest the sendEmail service and the service does not respond on time? You need to handle all these cases in your newPurchase service. Moreover, when you change the contract of sendEmail service; you have to update your newPurchase service too.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:29,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.p,{children:\"If you use QStash in the above example, you simply send a request to QStash from the newPurchase service. QStash will queue the request and call the sendEmail service. If the service does not respond, QStash will retry with a backoff strategy. The latency of sendEmail service will not affect the newPurchase service, because it will not wait for a response from the sendEmail service. QStash decouples the newPurchase and sendEmail services. You can update both services independently as long as you keep the message format compatible.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.p,{children:\"With QStash, you can add delays to the requests. Send an email 3 days after the shipment to remind the customer to add a review. You can also schedule tasks. You can send the requests with a CRON expression, so it will be run repetitively.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:33,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.p,{children:[\"To learn more about QStash, visit \",(0,c.jsxDEV)(t.a,{href:\"upstash.com/qstash\",children:\"upstash.com/qstash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:36,columnNumber:35},this),\".\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:36,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:1,columnNumber:1},this)}function pr(l={}){let{wrapper:t}=l.components||{};return t?(0,c.jsxDEV)(t,Object.assign({},l,{children:(0,c.jsxDEV)(Te,l,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\"},this):Te(l)}var _r=pr;return br(gr);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/qstash.mdx", - "_raw": { - "sourceFilePath": "projects/qstash.mdx", - "sourceFileName": "qstash.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/qstash" - }, - "type": "Project", - "path": "/projects/qstash", - "slug": "qstash" -} \ No newline at end of file diff --git a/.contentlayer/generated/Project/projects__redis-query.mdx.json b/.contentlayer/generated/Project/projects__redis-query.mdx.json deleted file mode 100644 index c7033e1..0000000 --- a/.contentlayer/generated/Project/projects__redis-query.mdx.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "title": "Redis Query", - "description": "Client side secondary indexing for Redis. It allows you to query your Redis data efficiently. Inspired by FaunaDB indices.", - "repository": "chronark/redis-query", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var fr=Object.getOwnPropertyNames;var lr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var G=(s,c)=>()=>(c||s((c={exports:{}}).exports,c),c.exports),vr=(s,c)=>{for(var b in c)F(s,b,{get:c[b],enumerable:!0})},_e=(s,c,b,y)=>{if(c&&typeof c==\"object\"||typeof c==\"function\")for(let m of fr(c))!dr.call(s,m)&&m!==b&&F(s,m,{get:()=>c[m],enumerable:!(y=cr(c,m))||y.enumerable});return s};var pr=(s,c,b)=>(b=s!=null?sr(lr(s)):{},_e(c||!s||!s.__esModule?F(b,\"default\",{value:s,enumerable:!0}):b,s)),br=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=G((_r,Re)=>{Re.exports=React});var Ce=G(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),c=Symbol.for(\"react.element\"),b=Symbol.for(\"react.portal\"),y=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&l>=0&&a[f]!==v[l];)l--;for(;f>=1&&l>=0;f--,l--)if(a[f]!==v[l]){if(f!==1||l!==1)do if(f--,l--,l<0||a[f]!==v[l]){var p=`\n`+a[f].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(f>=1&&l>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",Ee=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,Ee),Ee}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,ce={},fe=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){a=f}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var qe=Array.isArray;function V(e){return qe(e)}function Ge(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return le(e),!1}catch{return!0}}function le(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Ge(e)),le(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=h(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',h(O.current.type),e.ref),U[t]=!0)}}function Qe(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Ze(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:c,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var f=e.defaultProps;for(u in f)o[u]===void 0&&(o[u]=f[u])}if(a||v){var l=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Qe(o,l),v&&Ze(o,l)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,be=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var B;B=!1;function q(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===c}function he(){{if(L.current){var e=h(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=he();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+h(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function ye(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):f=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",f,a)}var l=rr(e,r,t,i,u);if(l==null)return l;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var yr={};vr(yr,{default:()=>mr,frontmatter:()=>hr});var A=pr(we()),hr={title:\"Redis Query\",description:\"Client side secondary indexing for Redis. It allows you to query your Redis data efficiently. Inspired by FaunaDB indices.\",repository:\"chronark/redis-query\"};function Pe(s){let c=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(c.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d9fe6cd5-b688-4540-987e-8a0d0a8d84d8.mdx\",lineNumber:8,columnNumber:1},this)}function gr(s={}){let{wrapper:c}=s.components||{};return c?(0,A.jsxDEV)(c,Object.assign({},s,{children:(0,A.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d9fe6cd5-b688-4540-987e-8a0d0a8d84d8.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d9fe6cd5-b688-4540-987e-8a0d0a8d84d8.mdx\"},this):Pe(s)}var mr=gr;return br(yr);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/redis-query.mdx", - "_raw": { - "sourceFilePath": "projects/redis-query.mdx", - "sourceFileName": "redis-query.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/redis-query" - }, - "type": "Project", - "path": "/projects/redis-query", - "slug": "redis-query" -} \ No newline at end of file diff --git a/.contentlayer/generated/Project/projects__terraform-provider-vercel.mdx.json b/.contentlayer/generated/Project/projects__terraform-provider-vercel.mdx.json deleted file mode 100644 index aca3b7e..0000000 --- a/.contentlayer/generated/Project/projects__terraform-provider-vercel.mdx.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "published": true, - "title": "Vercel Terraform Provider", - "description": "A Terraform provider for Vercel. It has been deprecated it when Vercel rolled out their official provider.", - "date": "2021-03-16T00:00:00.000Z", - "url": "https://registry.terraform.io/providers/chronark/vercel/latest", - "repository": "chronark/terraform-provider-vercel", - "body": { - "raw": "\n\n\nBack in the day when Vercel didn't have an official Terraform provider, I wrote one. \nI needed to manage my Vercel projects and especially sync environment variables from different cloud providers.\nTerraform was great to provision some postgres databases on digital ocean, but there was no way to sync the credentials with Vercel.\n\n```hcl\nterraform {\n required_providers {\n vercel = {\n source = \"registry.terraform.io/chronark/vercel\"\n version = \">=0.10.3\"\n }\n }\n}\n\nprovider \"vercel\" {\n token = \"\"\n}\n\nresource \"vercel_project\" \"my_project\" {\n name = \"project-via-terraform\"\n git_repository {\n type = \"github\"\n repo = \"chronark/terraform-provider-vercel\"\n }\n}\n```\n\nIt was a fun project and I learned a lot about Terraform and Vercel's API. \nIt gave me the opportunity to contribute to the Terraform ecosystem and my appreciation for the work that the Terraform team does is immense.\n\nThere have been quite a few individuals and teams that have used this provider and I am happy that it has been useful to you.\n\nNow that Vercel have stepped in, I have decided to [deprecate](https://twitter.com/chronark_/status/1517759708983177218) this one on April 23rd 2022. \n\nPlease use the [official provider](https://registry.terraform.io/providers/vercel/vercel/latest) instead.", - "code": "var Component=(()=>{var ir=Object.create;var S=Object.defineProperty;var lr=Object.getOwnPropertyDescriptor;var ur=Object.getOwnPropertyNames;var dr=Object.getPrototypeOf,mr=Object.prototype.hasOwnProperty;var G=(u,r)=>()=>(r||u((r={exports:{}}).exports,r),r.exports),hr=(u,r)=>{for(var _ in r)S(u,_,{get:r[_],enumerable:!0})},ve=(u,r,_,k)=>{if(r&&typeof r==\"object\"||typeof r==\"function\")for(let y of ur(r))!mr.call(u,y)&&y!==_&&S(u,y,{get:()=>r[y],enumerable:!(k=lr(r,y))||k.enumerable});return u};var fr=(u,r,_)=>(_=u!=null?ir(dr(u)):{},ve(r||!u||!u.__esModule?S(_,\"default\",{value:u,enumerable:!0}):_,u)),br=u=>ve(S({},\"__esModule\",{value:!0}),u);var ge=G((vr,xe)=>{xe.exports=React});var Ee=G(z=>{\"use strict\";(function(){\"use strict\";var u=ge(),r=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),k=Symbol.for(\"react.fragment\"),y=Symbol.for(\"react.strict_mode\"),K=Symbol.for(\"react.profiler\"),X=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),R=Symbol.for(\"react.forward_ref\"),A=Symbol.for(\"react.suspense\"),D=Symbol.for(\"react.suspense_list\"),F=Symbol.for(\"react.memo\"),B=Symbol.for(\"react.lazy\"),Fe=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Te=\"@@iterator\";function we(e){if(e===null||typeof e!=\"object\")return null;var a=J&&e[J]||e[Te];return typeof a==\"function\"?a:null}var x=u.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function h(e){{for(var a=arguments.length,t=new Array(a>1?a-1:0),c=1;c=1&&m>=0&&o[d]!==f[m];)m--;for(;d>=1&&m>=0;d--,m--)if(o[d]!==f[m]){if(d!==1||m!==1)do if(d--,m--,m<0||o[d]!==f[m]){var b=`\n`+o[d].replace(\" at new \",\" at \");return e.displayName&&b.includes(\"\")&&(b=b.replace(\"\",e.displayName)),typeof e==\"function\"&&w.set(e,b),b}while(d>=1&&m>=0);break}}}finally{Y=!1,I.current=l,Ye(),Error.prepareStackTrace=i}var E=e?e.displayName||e.name:\"\",ke=E?T(E):\"\";return typeof e==\"function\"&&w.set(e,ke),ke}function We(e,a,t){return ie(e,!1)}function Me(e){var a=e.prototype;return!!(a&&a.isReactComponent)}function C(e,a,t){if(e==null)return\"\";if(typeof e==\"function\")return ie(e,Me(e));if(typeof e==\"string\")return T(e);switch(e){case A:return T(\"Suspense\");case D:return T(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case R:return We(e.render);case F:return C(e.type,a,t);case B:{var c=e,i=c._payload,l=c._init;try{return C(l(i),a,t)}catch{}}}return\"\"}var O=Object.prototype.hasOwnProperty,le={},ue=x.ReactDebugCurrentFrame;function P(e){if(e){var a=e._owner,t=C(e.type,e._source,a?a.type:null);ue.setExtraStackFrame(t)}else ue.setExtraStackFrame(null)}function Le(e,a,t,c,i){{var l=Function.call.bind(O);for(var s in e)if(l(e,s)){var o=void 0;try{if(typeof e[s]!=\"function\"){var f=Error((c||\"React class\")+\": \"+t+\" type `\"+s+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[s]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw f.name=\"Invariant Violation\",f}o=e[s](a,s,c,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(d){o=d}o&&!(o instanceof Error)&&(P(i),h(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",c||\"React class\",t,s,typeof o),P(null)),o instanceof Error&&!(o.message in le)&&(le[o.message]=!0,P(i),h(\"Failed %s type: %s\",t,o.message),P(null))}}}var qe=Array.isArray;function $(e){return qe(e)}function Ge(e){{var a=typeof Symbol==\"function\"&&Symbol.toStringTag,t=a&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return de(e),!1}catch{return!0}}function de(e){return\"\"+e}function me(e){if(ze(e))return h(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Ge(e)),de(e)}var U=x.ReactCurrentOwner,Ke={key:!0,ref:!0,__self:!0,__source:!0},he,fe,W;W={};function Xe(e){if(O.call(e,\"ref\")){var a=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(a&&a.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(O.call(e,\"key\")){var a=Object.getOwnPropertyDescriptor(e,\"key\").get;if(a&&a.isReactWarning)return!1}return e.key!==void 0}function Je(e,a){if(typeof e.ref==\"string\"&&U.current&&a&&U.current.stateNode!==a){var t=p(U.current.type);W[t]||(h('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(U.current.type),e.ref),W[t]=!0)}}function Ze(e,a){{var t=function(){he||(he=!0,h(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,a){{var t=function(){fe||(fe=!0,h(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,a,t,c,i,l,s){var o={$$typeof:r,type:e,key:a,ref:t,props:s,_owner:l};return o._store={},Object.defineProperty(o._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(o,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:c}),Object.defineProperty(o,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(o.props),Object.freeze(o)),o};function rr(e,a,t,c,i){{var l,s={},o=null,f=null;t!==void 0&&(me(t),o=\"\"+t),He(a)&&(me(a.key),o=\"\"+a.key),Xe(a)&&(f=a.ref,Je(a,i));for(l in a)O.call(a,l)&&!Ke.hasOwnProperty(l)&&(s[l]=a[l]);if(e&&e.defaultProps){var d=e.defaultProps;for(l in d)s[l]===void 0&&(s[l]=d[l])}if(o||f){var m=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;o&&Ze(s,m),f&&Qe(s,m)}return er(e,o,f,i,c,U.current,s)}}var M=x.ReactCurrentOwner,be=x.ReactDebugCurrentFrame;function g(e){if(e){var a=e._owner,t=C(e.type,e._source,a?a.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var L;L=!1;function q(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===r}function _e(){{if(M.current){var e=p(M.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function nr(e){{if(e!==void 0){var a=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+a+\":\"+t+\".\"}return\"\"}}var pe={};function ar(e){{var a=_e();if(!a){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(a=`\n\nCheck the top-level render call using <`+t+\">.\")}return a}}function Ne(e,a){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=ar(a);if(pe[t])return;pe[t]=!0;var c=\"\";e&&e._owner&&e._owner!==M.current&&(c=\" It was passed a child from \"+p(e._owner.type)+\".\"),g(e),h('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,c),g(null)}}function ye(e,a){{if(typeof e!=\"object\")return;if($(e))for(var t=0;t\",o=\" Did you accidentally export a JSX literal instead of a component?\"):d=typeof e,h(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",d,o)}var m=rr(e,a,t,i,l);if(m==null)return m;if(s){var b=a.children;if(b!==void 0)if(c)if($(b)){for(var E=0;E{\"use strict\";je.exports=Ee()});var yr={};hr(yr,{default:()=>Nr,frontmatter:()=>_r});var n=fr(Ue()),_r={title:\"Vercel Terraform Provider\",description:\"A Terraform provider for Vercel. It has been deprecated it when Vercel rolled out their official provider.\",date:\"2021-03-16\",repository:\"chronark/terraform-provider-vercel\",url:\"https://registry.terraform.io/providers/chronark/vercel/latest\",published:!0};function Re(u){let r=Object.assign({p:\"p\",div:\"div\",pre:\"pre\",code:\"code\",span:\"span\",a:\"a\"},u.components);return(0,n.jsxDEV)(n.Fragment,{children:[(0,n.jsxDEV)(r.p,{children:`Back in the day when Vercel didn't have an official Terraform provider, I wrote one.\nI needed to manage my Vercel projects and especially sync environment variables from different cloud providers.\nTerraform was great to provision some postgres databases on digital ocean, but there was no way to sync the credentials with Vercel.`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(r.pre,{\"data-language\":\"hcl\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(r.code,{\"data-language\":\"hcl\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"terraform\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:1,columnNumber:149},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"required_providers\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:2,columnNumber:58},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:2,columnNumber:112},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:3,columnNumber:66},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:3,columnNumber:103},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:3,columnNumber:140},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:3,columnNumber:177},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" source \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:4,columnNumber:70},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:4,columnNumber:107},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"registry.terraform.io/chronark/vercel\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:4,columnNumber:144},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" version \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:5,columnNumber:70},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:5,columnNumber:107},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\">=0.10.3\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:5,columnNumber:144},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"provider\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:10,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:10,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:'\"vercel\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:10,columnNumber:101},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:10,columnNumber:155},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" token\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:11,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:11,columnNumber:63},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:11,columnNumber:100},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:11,columnNumber:137},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:11,columnNumber:174},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:12,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"resource\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:'\"vercel_project\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:101},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:163},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:'\"my_project\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:200},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:258},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" name\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:15,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:15,columnNumber:62},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:15,columnNumber:99},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:15,columnNumber:136},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"project-via-terraform\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:15,columnNumber:173},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:16,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"git_repository\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:16,columnNumber:58},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:16,columnNumber:108},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" type\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:17,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:17,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:17,columnNumber:101},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:17,columnNumber:138},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"github\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:17,columnNumber:175},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" repo\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:18,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:18,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:18,columnNumber:101},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:18,columnNumber:138},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"chronark/terraform-provider-vercel\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:18,columnNumber:175},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:19,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:20,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:20,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:`It was a fun project and I learned a lot about Terraform and Vercel's API.\nIt gave me the opportunity to contribute to the Terraform ecosystem and my appreciation for the work that the Terraform team does is immense.`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:39,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:\"There have been quite a few individuals and teams that have used this provider and I am happy that it has been useful to you.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:42,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[\"Now that Vercel have stepped in, I have decided to \",(0,n.jsxDEV)(r.a,{href:\"https://twitter.com/chronark_/status/1517759708983177218\",children:\"deprecate\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:44,columnNumber:52},this),\" this one on April 23rd 2022.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:44,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[\"Please use the \",(0,n.jsxDEV)(r.a,{href:\"https://registry.terraform.io/providers/vercel/vercel/latest\",children:\"official provider\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:46,columnNumber:16},this),\" instead.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:46,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:1,columnNumber:1},this)}function pr(u={}){let{wrapper:r}=u.components||{};return r?(0,n.jsxDEV)(r,Object.assign({},u,{children:(0,n.jsxDEV)(Re,u,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\"},this):Re(u)}var Nr=pr;return br(yr);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/terraform-provider-vercel.mdx", - "_raw": { - "sourceFilePath": "projects/terraform-provider-vercel.mdx", - "sourceFileName": "terraform-provider-vercel.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/terraform-provider-vercel" - }, - "type": "Project", - "path": "/projects/terraform-provider-vercel", - "slug": "terraform-provider-vercel" -} \ No newline at end of file diff --git a/.contentlayer/generated/Project/projects__upstash-auth-analytics.mdx.json b/.contentlayer/generated/Project/projects__upstash-auth-analytics.mdx.json deleted file mode 100644 index bed0f4f..0000000 --- a/.contentlayer/generated/Project/projects__upstash-auth-analytics.mdx.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "title": "Upstash Auth Analytics", - "description": "A library to record and analyse Auth.js user behaviour", - "url": "https://console.upstash.com/ratelimit", - "repository": "upstash/auth-analytics", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var A=Object.defineProperty;var fr=Object.getOwnPropertyDescriptor;var cr=Object.getOwnPropertyNames;var lr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,f)=>()=>(f||s((f={exports:{}}).exports,f),f.exports),vr=(s,f)=>{for(var h in f)A(s,h,{get:f[h],enumerable:!0})},_e=(s,f,h,E)=>{if(f&&typeof f==\"object\"||typeof f==\"function\")for(let m of cr(f))!dr.call(s,m)&&m!==h&&A(s,m,{get:()=>f[m],enumerable:!(E=fr(f,m))||E.enumerable});return s};var pr=(s,f,h)=>(h=s!=null?sr(lr(s)):{},_e(f||!s||!s.__esModule?A(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(A({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),f=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&l>=0&&a[c]!==v[l];)l--;for(;c>=1&&l>=0;c--,l--)if(a[c]!==v[l]){if(c!==1||l!==1)do if(c--,l--,l<0||a[c]!==v[l]){var p=`\n`+a[c].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(c>=1&&l>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,fe={},ce=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);ce.setExtraStackFrame(t)}else ce.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(c){a=c}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in fe)&&(fe[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return le(e),!1}catch{return!0}}function le(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),le(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=b(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',b(O.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:f,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var c=e.defaultProps;for(u in c)o[u]===void 0&&(o[u]=c[u])}if(a||v){var l=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,l),v&&Qe(o,l)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===f}function be(){{if(L.current){var e=b(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=be();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+b(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):c=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",c,a)}var l=rr(e,r,t,i,u);if(l==null)return l;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>br});var F=pr(we()),br={title:\"Upstash Auth Analytics\",description:\"A library to record and analyse Auth.js user behaviour\",url:\"https://console.upstash.com/ratelimit\",repository:\"upstash/auth-analytics\"};function Pe(s){let f=Object.assign({p:\"p\"},s.components);return(0,F.jsxDEV)(f.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e491d153-3318-4404-b9cc-ddf66fe9f45f.mdx\",lineNumber:8,columnNumber:1},this)}function gr(s={}){let{wrapper:f}=s.components||{};return f?(0,F.jsxDEV)(f,Object.assign({},s,{children:(0,F.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e491d153-3318-4404-b9cc-ddf66fe9f45f.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e491d153-3318-4404-b9cc-ddf66fe9f45f.mdx\"},this):Pe(s)}var mr=gr;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-auth-analytics.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-auth-analytics.mdx", - "sourceFileName": "upstash-auth-analytics.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-auth-analytics" - }, - "type": "Project", - "path": "/projects/upstash-auth-analytics", - "slug": "upstash-auth-analytics" -} \ No newline at end of file diff --git a/.contentlayer/generated/Project/projects__upstash-cli.mdx.json b/.contentlayer/generated/Project/projects__upstash-cli.mdx.json deleted file mode 100644 index a642135..0000000 --- a/.contentlayer/generated/Project/projects__upstash-cli.mdx.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "published": true, - "title": "@upstash/cli", - "description": "A CLI to provision and manage Upstash resources, including Redis and Kafka databases.", - "date": "2022-05-16T00:00:00.000Z", - "url": "https://upstash.com/cli", - "repository": "upstash/cli", - "body": { - "raw": "\n\nManage Upstash resources in your terminal or CI.\n\n![](https://raw.githubusercontent.com/upstash/cli/main/img/banner.svg)\n\n![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/upstash/cli)\n[![Downloads/week](https://img.shields.io/npm/dw/lstr.svg)](https://npmjs.org/package/@upstash/cli)\n\n# Installation\n\n## npm\n\nYou can install upstash's cli directly from npm\n\n```bash\nnpm i -g @upstash/cli\n```\n\nIt will be added as `upstash` to your system's path.\n\n## Compiled binaries:\n\n`upstash` is also available from the\n[releases page](https://github.com/upstash/upstash-cli/releases/latest) compiled\nfor windows, linux and mac (both intel and m1).\n\n# Usage\n\n```bash\n> upstash\n\n Usage: upstash \n Version: development\n\n Description:\n\n Official cli for Upstash products\n\n Options:\n\n -h, --help - Show this help. \n -V, --version - Show the version number for this program. \n -c, --config - Path to .upstash.json file\n\n Commands:\n\n auth - Login and logout \n redis - Manage redis database instances \n kafka - Manage kafka clusters and topics \n team - Manage your teams and their members\n\n Environment variables:\n\n UPSTASH_EMAIL - The email you use on upstash\n UPSTASH_API_KEY - The api key from upstash\n```\n\n## Authentication\n\nWhen running `upstash` for the first time, you should log in using\n`upstash auth login`. Provide your email and an api key.\n[See here for how to get a key.](https://docs.upstash.com/redis/howto/developerapi#api-development)\n\nAs an alternative to logging in, you can provide `UPSTASH_EMAIL` and\n`UPSTASH_API_KEY` as environment variables.\n\n## Usage\n\nLet's create a new redis database:\n\n```\n> upstash redis create --name=my-db --region=eu-west-1\n Database has been created\n\n database_id a3e25299-132a-45b9-b026-c73f5a807859\n database_name my-db\n database_type Pay as You Go\n region eu-west-1\n type paid\n port 37090\n creation_time 1652687630\n state active\n password 88ae6392a1084d1186a3da37fb5f5a30\n user_email andreas@upstash.com\n endpoint eu1-magnetic-lacewing-37090.upstash.io\n edge false\n multizone false\n rest_token AZDiASQgYTNlMjUyOTktMTMyYS00NWI5LWIwMjYtYzczZjVhODA3ODU5ODhhZTYzOTJhMTA4NGQxMTg2YTNkYTM3ZmI1ZjVhMzA=\n read_only_rest_token ApDiASQgYTNlMjUyOTktMTMyYS00NWI5LWIwMjYtYzczZjVhODA3ODU5O_InFjRVX1XHsaSjq1wSerFCugZ8t8O1aTfbF6Jhq1I=\n\n\n You can visit your database details page: https://console.upstash.com/redis/a3e25299-132a-45b9-b026-c73f5a807859\n\n Connect to your database with redis-cli: redis-cli -u redis://88ae6392a1084d1186a3da37fb5f5a30@eu1-magnetic-lacewing-37090.upstash.io:37090\n```\n\n## Output\n\nMost commands support the `--json` flag to return the raw api response as json,\nwhich you can parse and automate your system.\n\n```bash\n> upstash redis create --name=test2113 --region=us-central1 --json | jq '.endpoint'\n\n \"gusc1-clean-gelding-30208.upstash.io\"\n```\n", - "code": "var Component=(()=>{var d=Object.create;var c=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,F=Object.prototype.hasOwnProperty;var m=(n,l)=>()=>(l||n((l={exports:{}}).exports,l),l.exports),u=(n,l)=>{for(var s in l)c(n,s,{get:l[s],enumerable:!0})},o=(n,l,s,r)=>{if(l&&typeof l==\"object\"||typeof l==\"function\")for(let a of p(l))!F.call(n,a)&&a!==s&&c(n,a,{get:()=>l[a],enumerable:!(r=E(l,a))||r.enumerable});return n};var B=(n,l,s)=>(s=n!=null?d(y(n)):{},o(l||!n||!n.__esModule?c(s,\"default\",{value:n,enumerable:!0}):s,n)),g=n=>o(c({},\"__esModule\",{value:!0}),n);var t=m((v,i)=>{i.exports=_jsx_runtime});var N={};u(N,{default:()=>f,frontmatter:()=>C});var e=B(t()),C={title:\"@upstash/cli\",description:\"A CLI to provision and manage Upstash resources, including Redis and Kafka databases.\",date:\"2022-05-16\",url:\"https://upstash.com/cli\",repository:\"upstash/cli\",published:!0};function h(n){let l=Object.assign({p:\"p\",img:\"img\",a:\"a\",h1:\"h1\",span:\"span\",h2:\"h2\",div:\"div\",pre:\"pre\",code:\"code\"},n.components);return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(l.p,{children:\"Manage Upstash resources in your terminal or CI.\"}),`\n`,(0,e.jsx)(l.p,{children:(0,e.jsx)(l.img,{src:\"https://raw.githubusercontent.com/upstash/cli/main/img/banner.svg\",alt:\"\"})}),`\n`,(0,e.jsxs)(l.p,{children:[(0,e.jsx)(l.img,{src:\"https://img.shields.io/github/v/release/upstash/cli\",alt:\"GitHub release (latest SemVer)\"}),`\n`,(0,e.jsx)(l.a,{href:\"https://npmjs.org/package/@upstash/cli\",children:(0,e.jsx)(l.img,{src:\"https://img.shields.io/npm/dw/lstr.svg\",alt:\"Downloads/week\"})})]}),`\n`,(0,e.jsxs)(l.h1,{id:\"installation\",children:[(0,e.jsx)(l.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#installation\",children:(0,e.jsx)(l.span,{className:\"icon icon-link\"})}),\"Installation\"]}),`\n`,(0,e.jsxs)(l.h2,{id:\"npm\",children:[(0,e.jsx)(l.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#npm\",children:(0,e.jsx)(l.span,{className:\"icon icon-link\"})}),\"npm\"]}),`\n`,(0,e.jsx)(l.p,{children:\"You can install upstash's cli directly from npm\"}),`\n`,(0,e.jsx)(l.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,e.jsx)(l.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,e.jsx)(l.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"npm\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"i\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#79B8FF\"},children:\"-g\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"@upstash/cli\"})]})})})}),`\n`,(0,e.jsxs)(l.p,{children:[\"It will be added as \",(0,e.jsx)(l.code,{children:\"upstash\"}),\" to your system's path.\"]}),`\n`,(0,e.jsxs)(l.h2,{id:\"compiled-binaries\",children:[(0,e.jsx)(l.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#compiled-binaries\",children:(0,e.jsx)(l.span,{className:\"icon icon-link\"})}),\"Compiled binaries:\"]}),`\n`,(0,e.jsxs)(l.p,{children:[(0,e.jsx)(l.code,{children:\"upstash\"}),` is also available from the\n`,(0,e.jsx)(l.a,{href:\"https://github.com/upstash/upstash-cli/releases/latest\",children:\"releases page\"}),` compiled\nfor windows, linux and mac (both intel and m1).`]}),`\n`,(0,e.jsxs)(l.h1,{id:\"usage\",children:[(0,e.jsx)(l.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#usage\",children:(0,e.jsx)(l.span,{className:\"icon icon-link\"})}),\"Usage\"]}),`\n`,(0,e.jsx)(l.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,e.jsx)(l.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,e.jsxs)(l.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:[(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\">\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" upstash\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"Usage:\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"upstash\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"})]}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"Version:\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"development\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"Description:\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"Official\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"cli\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"for\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"Upstash\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"products\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"Options:\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"-h,\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#79B8FF\"},children:\"--help\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"-\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"Show\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"this\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"help.\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"})]}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"-V,\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#79B8FF\"},children:\"--version\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"-\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"Show\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"the\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"version\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"number\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"for\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"this\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"program.\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"})]}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"-c,\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#79B8FF\"},children:\"--config\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\"<\"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"strin\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\"g\"}),(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\">\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"-\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"Path\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"to\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\".upstash.json\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"file\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"Commands:\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"auth\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"-\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"Login\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"and\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"logout\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"})]}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"redis\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"-\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"Manage\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"redis\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"database\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"instances\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"})]}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"kafka\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"-\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"Manage\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"kafka\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"clusters\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"and\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"topics\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"})]}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"team\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"-\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"Manage\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"your\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"teams\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"and\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"their\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"members\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"Environment\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"variables:\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"UPSTASH_EMAIL\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\"<\"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"strin\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\"g\"}),(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\">\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"-\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"The\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"email\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"you\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"use\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"on\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"upstash\"})]}),`\n`,(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"UPSTASH_API_KEY\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\"<\"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"strin\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\"g\"}),(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\">\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"-\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"The\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"api\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"key\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"from\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"upstash\"})]})]})})}),`\n`,(0,e.jsxs)(l.h2,{id:\"authentication\",children:[(0,e.jsx)(l.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#authentication\",children:(0,e.jsx)(l.span,{className:\"icon icon-link\"})}),\"Authentication\"]}),`\n`,(0,e.jsxs)(l.p,{children:[\"When running \",(0,e.jsx)(l.code,{children:\"upstash\"}),` for the first time, you should log in using\n`,(0,e.jsx)(l.code,{children:\"upstash auth login\"}),`. Provide your email and an api key.\n`,(0,e.jsx)(l.a,{href:\"https://docs.upstash.com/redis/howto/developerapi#api-development\",children:\"See here for how to get a key.\"})]}),`\n`,(0,e.jsxs)(l.p,{children:[\"As an alternative to logging in, you can provide \",(0,e.jsx)(l.code,{children:\"UPSTASH_EMAIL\"}),` and\n`,(0,e.jsx)(l.code,{children:\"UPSTASH_API_KEY\"}),\" as environment variables.\"]}),`\n`,(0,e.jsxs)(l.h2,{id:\"usage-1\",children:[(0,e.jsx)(l.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#usage-1\",children:(0,e.jsx)(l.span,{className:\"icon icon-link\"})}),\"Usage\"]}),`\n`,(0,e.jsx)(l.p,{children:\"Let's create a new redis database:\"}),`\n`,(0,e.jsx)(l.pre,{children:(0,e.jsx)(l.code,{children:`> upstash redis create --name=my-db --region=eu-west-1\n Database has been created\n\n database_id a3e25299-132a-45b9-b026-c73f5a807859\n database_name my-db\n database_type Pay as You Go\n region eu-west-1\n type paid\n port 37090\n creation_time 1652687630\n state active\n password 88ae6392a1084d1186a3da37fb5f5a30\n user_email andreas@upstash.com\n endpoint eu1-magnetic-lacewing-37090.upstash.io\n edge false\n multizone false\n rest_token AZDiASQgYTNlMjUyOTktMTMyYS00NWI5LWIwMjYtYzczZjVhODA3ODU5ODhhZTYzOTJhMTA4NGQxMTg2YTNkYTM3ZmI1ZjVhMzA=\n read_only_rest_token ApDiASQgYTNlMjUyOTktMTMyYS00NWI5LWIwMjYtYzczZjVhODA3ODU5O_InFjRVX1XHsaSjq1wSerFCugZ8t8O1aTfbF6Jhq1I=\n\n\n You can visit your database details page: https://console.upstash.com/redis/a3e25299-132a-45b9-b026-c73f5a807859\n\n Connect to your database with redis-cli: redis-cli -u redis://88ae6392a1084d1186a3da37fb5f5a30@eu1-magnetic-lacewing-37090.upstash.io:37090\n`})}),`\n`,(0,e.jsxs)(l.h2,{id:\"output\",children:[(0,e.jsx)(l.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#output\",children:(0,e.jsx)(l.span,{className:\"icon icon-link\"})}),\"Output\"]}),`\n`,(0,e.jsxs)(l.p,{children:[\"Most commands support the \",(0,e.jsx)(l.code,{children:\"--json\"}),` flag to return the raw api response as json,\nwhich you can parse and automate your system.`]}),`\n`,(0,e.jsx)(l.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,e.jsx)(l.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,e.jsxs)(l.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:[(0,e.jsxs)(l.span,{className:\"line\",children:[(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\">\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" upstash redis create --name\"}),(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"test2113\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" --region\"}),(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\"=\"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"us-central1\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" --json \"}),(0,e.jsx)(l.span,{style:{color:\"#F97583\"},children:\"|\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#B392F0\"},children:\"jq\"}),(0,e.jsx)(l.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:\"'.endpoint'\"})]}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:\" \"}),`\n`,(0,e.jsx)(l.span,{className:\"line\",children:(0,e.jsx)(l.span,{style:{color:\"#9ECBFF\"},children:' \"gusc1-clean-gelding-30208.upstash.io\"'})})]})})})]})}function b(n={}){let{wrapper:l}=n.components||{};return l?(0,e.jsx)(l,Object.assign({},n,{children:(0,e.jsx)(h,n)})):h(n)}var f=b;return g(N);})();\n;return Component;" - }, - "_id": "projects/upstash-cli.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-cli.mdx", - "sourceFileName": "upstash-cli.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-cli" - }, - "type": "Project", - "path": "/projects/upstash-cli", - "slug": "upstash-cli" -} \ No newline at end of file diff --git a/.contentlayer/generated/Project/projects__upstash-core-analytics copy.mdx.json b/.contentlayer/generated/Project/projects__upstash-core-analytics copy.mdx.json deleted file mode 100644 index fa7728f..0000000 --- a/.contentlayer/generated/Project/projects__upstash-core-analytics copy.mdx.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "title": "Upstash Core Analytics", - "description": "Low level utilities to build analytics tools on top of Redis.", - "date": "2023-02-13T00:00:00.000Z", - "url": "https://console.upstash.com/ratelimit", - "repository": "upstash/core-analytics", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var lr=Object.getOwnPropertyNames;var fr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,c)=>()=>(c||s((c={exports:{}}).exports,c),c.exports),vr=(s,c)=>{for(var b in c)F(s,b,{get:c[b],enumerable:!0})},_e=(s,c,b,E)=>{if(c&&typeof c==\"object\"||typeof c==\"function\")for(let m of lr(c))!dr.call(s,m)&&m!==b&&F(s,m,{get:()=>c[m],enumerable:!(E=cr(c,m))||E.enumerable});return s};var pr=(s,c,b)=>(b=s!=null?sr(fr(s)):{},_e(c||!s||!s.__esModule?F(b,\"default\",{value:s,enumerable:!0}):b,s)),br=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),c=Symbol.for(\"react.element\"),b=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&f>=0&&a[l]!==v[f];)f--;for(;l>=1&&f>=0;l--,f--)if(a[l]!==v[f]){if(l!==1||f!==1)do if(l--,f--,f<0||a[l]!==v[f]){var p=`\n`+a[l].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(l>=1&&f>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,ce={},le=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);le.setExtraStackFrame(t)}else le.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(l){a=l}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return fe(e),!1}catch{return!0}}function fe(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),fe(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=h(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',h(O.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:c,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var l=e.defaultProps;for(u in l)o[u]===void 0&&(o[u]=l[u])}if(a||v){var f=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,f),v&&Qe(o,f)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,be=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===c}function he(){{if(L.current){var e=h(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=he();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+h(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):l=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",l,a)}var f=rr(e,r,t,i,u);if(f==null)return f;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>hr});var A=pr(we()),hr={title:\"Upstash Core Analytics\",description:\"Low level utilities to build analytics tools on top of Redis.\",date:\"2023-02-13\",url:\"https://console.upstash.com/ratelimit\",repository:\"upstash/core-analytics\"};function Pe(s){let c=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(c.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-ecf01bc7-de88-4599-9294-88406cbe18c6.mdx\",lineNumber:10,columnNumber:1},this)}function gr(s={}){let{wrapper:c}=s.components||{};return c?(0,A.jsxDEV)(c,Object.assign({},s,{children:(0,A.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-ecf01bc7-de88-4599-9294-88406cbe18c6.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-ecf01bc7-de88-4599-9294-88406cbe18c6.mdx\"},this):Pe(s)}var mr=gr;return br(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-core-analytics copy.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-core-analytics copy.mdx", - "sourceFileName": "upstash-core-analytics copy.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-core-analytics copy" - }, - "type": "Project", - "path": "/projects/upstash-core-analytics copy", - "slug": "upstash-core-analytics copy" -} \ No newline at end of file diff --git a/.contentlayer/generated/Project/projects__upstash-core-analytics.mdx.json b/.contentlayer/generated/Project/projects__upstash-core-analytics.mdx.json deleted file mode 100644 index acad403..0000000 --- a/.contentlayer/generated/Project/projects__upstash-core-analytics.mdx.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "published": true, - "title": "Upstash Core Analytics", - "description": "Low level utilities to build analytics tools on top of Redis.", - "date": "2023-02-13T00:00:00.000Z", - "url": "https://console.upstash.com/ratelimit", - "repository": "upstash/core-analytics", - "body": { - "raw": "\n\nThis library offers some low level building blocks to record and analyze custom events in Redis.\nIt's main purpose is to provide a simple way to record and query events in Redis without having to worry about the underlying data structure so we can build more advanced analytics features on top of it.\n\n## Quickstart\n\n\n1. Create a redis database\n\nGo to [console.upstash.com/redis](https://console.upstash.com/redis) and create\na new global database.\n\nAfter creating the db, copy the `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN` to your `.env` file.\n\n3. Install `@upstash/analytics` in your project\n\n```bash\nnpm install @upstash/analytics @upstash/redis\n```\n\n4. Create an analytics client\n\n```ts\nimport { Analytyics } from \"@upstash/analytics\";\nimport { Redis } from \"@upstash/redis\";\n\nconst analytics = new Analytics({\n redis: Redis.fromEnv(),\n window: \"1d\",\n});\n```\n\n\n5. Ingest some events\n\nAn event consists of a `time` field and any additional key-value pairs that you can use to record any information you want.\n\n```ts\nconst event = {\n time: Date.now() // optional (default: Date.now())\n userId: \"chronark\",\n page: \"/auth/login\",\n country: \"DE\",\n}\n\nawait analytics.ingest(\"pageviews\", event);\n```\n\n4. Query your events\n\n```ts\n\nconst result = await analytics.query(\"pageviews\");\n\n```\n\n## Development\n\nThis project uses `pnpm` for dependency management.\n\n#### Install dependencies\n\n```bash\npnpm install\n```\n\n#### Build\n\n```bash\npnpm build\n```\n\n\n## Database Schema\n\nAll metrics are stored in Redis `Hash` data types and sharded into buckets based on the `window` option.\n```\n@upstash/analytics:{TABLE}:{TIMESTAMP}\n```\n- `TABLE` is a namespace to group events together. ie for managing multiple projects int a single database\n- `TIMESTAMP` is the starting timestamp of each window\n\nThe field of each hash is a serialized JSON object with the user's event data and the value is the number of times this event has been recorded.\n\n```json\n{\n '{\"page\": \"/auth/login\",\"country\": \"DE\"}': 5,\n '{\"page\": \"/auth/login\",\"country\": \"US\"}': 2\n}\n```\n", - "code": "var Component=(()=>{var cn=Object.create;var P=Object.defineProperty;var ln=Object.getOwnPropertyDescriptor;var mn=Object.getOwnPropertyNames;var un=Object.getPrototypeOf,hn=Object.prototype.hasOwnProperty;var z=(l,e)=>()=>(e||l((e={exports:{}}).exports,e),e.exports),fn=(l,e)=>{for(var _ in e)P(l,_,{get:e[_],enumerable:!0})},xe=(l,e,_,y)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let k of mn(e))!hn.call(l,k)&&k!==_&&P(l,k,{get:()=>e[k],enumerable:!(y=ln(e,k))||y.enumerable});return l};var bn=(l,e,_)=>(_=l!=null?cn(un(l)):{},xe(e||!l||!l.__esModule?P(_,\"default\",{value:l,enumerable:!0}):_,l)),_n=l=>xe(P({},\"__esModule\",{value:!0}),l);var Ee=z((gn,ge)=>{ge.exports=React});var je=z(G=>{\"use strict\";(function(){\"use strict\";var l=Ee(),e=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),y=Symbol.for(\"react.fragment\"),k=Symbol.for(\"react.strict_mode\"),H=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),X=Symbol.for(\"react.context\"),F=Symbol.for(\"react.forward_ref\"),D=Symbol.for(\"react.suspense\"),A=Symbol.for(\"react.suspense_list\"),R=Symbol.for(\"react.memo\"),B=Symbol.for(\"react.lazy\"),Re=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Te=\"@@iterator\";function Ce(n){if(n===null||typeof n!=\"object\")return null;var a=J&&n[J]||n[Te];return typeof a==\"function\"?a:null}var g=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function h(n){{for(var a=arguments.length,t=new Array(a>1?a-1:0),o=1;o=1&&u>=0&&s[m]!==f[u];)u--;for(;m>=1&&u>=0;m--,u--)if(s[m]!==f[u]){if(m!==1||u!==1)do if(m--,u--,u<0||s[m]!==f[u]){var b=`\n`+s[m].replace(\" at new \",\" at \");return n.displayName&&b.includes(\"\")&&(b=b.replace(\"\",n.displayName)),typeof n==\"function\"&&C.set(n,b),b}while(m>=1&&u>=0);break}}}finally{M=!1,I.current=c,Me(),Error.prepareStackTrace=i}var j=n?n.displayName||n.name:\"\",ye=j?T(j):\"\";return typeof n==\"function\"&&C.set(n,ye),ye}function $e(n,a,t){return ie(n,!1)}function We(n){var a=n.prototype;return!!(a&&a.isReactComponent)}function w(n,a,t){if(n==null)return\"\";if(typeof n==\"function\")return ie(n,We(n));if(typeof n==\"string\")return T(n);switch(n){case D:return T(\"Suspense\");case A:return T(\"SuspenseList\")}if(typeof n==\"object\")switch(n.$$typeof){case F:return $e(n.render);case R:return w(n.type,a,t);case B:{var o=n,i=o._payload,c=o._init;try{return w(c(i),a,t)}catch{}}}return\"\"}var S=Object.prototype.hasOwnProperty,ce={},le=g.ReactDebugCurrentFrame;function O(n){if(n){var a=n._owner,t=w(n.type,n._source,a?a.type:null);le.setExtraStackFrame(t)}else le.setExtraStackFrame(null)}function Ve(n,a,t,o,i){{var c=Function.call.bind(S);for(var d in n)if(c(n,d)){var s=void 0;try{if(typeof n[d]!=\"function\"){var f=Error((o||\"React class\")+\": \"+t+\" type `\"+d+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof n[d]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw f.name=\"Invariant Violation\",f}s=n[d](a,d,o,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(m){s=m}s&&!(s instanceof Error)&&(O(i),h(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",o||\"React class\",t,d,typeof s),O(null)),s instanceof Error&&!(s.message in ce)&&(ce[s.message]=!0,O(i),h(\"Failed %s type: %s\",t,s.message),O(null))}}}var qe=Array.isArray;function Y(n){return qe(n)}function ze(n){{var a=typeof Symbol==\"function\"&&Symbol.toStringTag,t=a&&n[Symbol.toStringTag]||n.constructor.name||\"Object\";return t}}function Ge(n){try{return me(n),!1}catch{return!0}}function me(n){return\"\"+n}function ue(n){if(Ge(n))return h(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",ze(n)),me(n)}var v=g.ReactCurrentOwner,He={key:!0,ref:!0,__self:!0,__source:!0},he,fe,$;$={};function Ke(n){if(S.call(n,\"ref\")){var a=Object.getOwnPropertyDescriptor(n,\"ref\").get;if(a&&a.isReactWarning)return!1}return n.ref!==void 0}function Xe(n){if(S.call(n,\"key\")){var a=Object.getOwnPropertyDescriptor(n,\"key\").get;if(a&&a.isReactWarning)return!1}return n.key!==void 0}function Je(n,a){if(typeof n.ref==\"string\"&&v.current&&a&&v.current.stateNode!==a){var t=p(v.current.type);$[t]||(h('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(v.current.type),n.ref),$[t]=!0)}}function Qe(n,a){{var t=function(){he||(he=!0,h(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(n,\"key\",{get:t,configurable:!0})}}function Ze(n,a){{var t=function(){fe||(fe=!0,h(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(n,\"ref\",{get:t,configurable:!0})}}var en=function(n,a,t,o,i,c,d){var s={$$typeof:e,type:n,key:a,ref:t,props:d,_owner:c};return s._store={},Object.defineProperty(s._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(s,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(s,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(s.props),Object.freeze(s)),s};function nn(n,a,t,o,i){{var c,d={},s=null,f=null;t!==void 0&&(ue(t),s=\"\"+t),Xe(a)&&(ue(a.key),s=\"\"+a.key),Ke(a)&&(f=a.ref,Je(a,i));for(c in a)S.call(a,c)&&!He.hasOwnProperty(c)&&(d[c]=a[c]);if(n&&n.defaultProps){var m=n.defaultProps;for(c in m)d[c]===void 0&&(d[c]=m[c])}if(s||f){var u=typeof n==\"function\"?n.displayName||n.name||\"Unknown\":n;s&&Qe(d,u),f&&Ze(d,u)}return en(n,s,f,i,o,v.current,d)}}var W=g.ReactCurrentOwner,be=g.ReactDebugCurrentFrame;function E(n){if(n){var a=n._owner,t=w(n.type,n._source,a?a.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var V;V=!1;function q(n){return typeof n==\"object\"&&n!==null&&n.$$typeof===e}function _e(){{if(W.current){var n=p(W.current.type);if(n)return`\n\nCheck the render method of \\``+n+\"`.\"}return\"\"}}function rn(n){{if(n!==void 0){var a=n.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=n.lineNumber;return`\n\nCheck your code at `+a+\":\"+t+\".\"}return\"\"}}var pe={};function an(n){{var a=_e();if(!a){var t=typeof n==\"string\"?n:n.displayName||n.name;t&&(a=`\n\nCheck the top-level render call using <`+t+\">.\")}return a}}function Ne(n,a){{if(!n._store||n._store.validated||n.key!=null)return;n._store.validated=!0;var t=an(a);if(pe[t])return;pe[t]=!0;var o=\"\";n&&n._owner&&n._owner!==W.current&&(o=\" It was passed a child from \"+p(n._owner.type)+\".\"),E(n),h('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,o),E(null)}}function ke(n,a){{if(typeof n!=\"object\")return;if(Y(n))for(var t=0;t\",s=\" Did you accidentally export a JSX literal instead of a component?\"):m=typeof n,h(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",m,s)}var u=nn(n,a,t,i,c);if(u==null)return u;if(d){var b=a.children;if(b!==void 0)if(o)if(Y(b)){for(var j=0;j{\"use strict\";Ue.exports=je()});var yn={};fn(yn,{default:()=>kn,frontmatter:()=>pn});var r=bn(ve()),pn={title:\"Upstash Core Analytics\",description:\"Low level utilities to build analytics tools on top of Redis.\",date:\"2023-02-13\",url:\"https://console.upstash.com/ratelimit\",repository:\"upstash/core-analytics\",published:!0};function Fe(l){let e=Object.assign({p:\"p\",h2:\"h2\",a:\"a\",span:\"span\",ol:\"ol\",li:\"li\",code:\"code\",div:\"div\",pre:\"pre\",h4:\"h4\",ul:\"ul\"},l.components);return(0,r.jsxDEV)(r.Fragment,{children:[(0,r.jsxDEV)(e.p,{children:`This library offers some low level building blocks to record and analyze custom events in Redis.\nIt's main purpose is to provide a simple way to record and query events in Redis without having to worry about the underlying data structure so we can build more advanced analytics features on top of it.`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h2,{id:\"quickstart\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#quickstart\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this),\"Quickstart\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ol,{children:[`\n`,(0,r.jsxDEV)(e.li,{children:\"Create a redis database\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:18,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:[\"Go to \",(0,r.jsxDEV)(e.a,{href:\"https://console.upstash.com/redis\",children:\"console.upstash.com/redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:20,columnNumber:7},this),` and create\na new global database.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:[\"After creating the db, copy the \",(0,r.jsxDEV)(e.code,{children:\"UPSTASH_REDIS_REST_URL\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:23,columnNumber:33},this),\" and \",(0,r.jsxDEV)(e.code,{children:\"UPSTASH_REDIS_REST_TOKEN\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:23,columnNumber:62},this),\" to your \",(0,r.jsxDEV)(e.code,{children:\".env\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:23,columnNumber:97},this),\" file.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:23,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ol,{start:\"3\",children:[`\n`,(0,r.jsxDEV)(e.li,{children:[\"Install \",(0,r.jsxDEV)(e.code,{children:\"@upstash/analytics\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:25,columnNumber:12},this),\" in your project\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:25,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:25,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"npm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:104},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:143},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"install\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:180},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:223},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"@upstash/analytics\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:260},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:314},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"@upstash/redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:351},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:27,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ol,{start:\"4\",children:[`\n`,(0,r.jsxDEV)(e.li,{children:\"Create an analytics client\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:31,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:104},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" { Analytyics } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:146},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:198},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:238},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"@upstash/analytics\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:275},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\";\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:341},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" { Redis } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:62},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:109},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:149},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"@upstash/redis\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:186},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\";\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:248},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"analytics\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:143},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:180},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:217},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"new\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:254},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:293},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"Analytics\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:330},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:375},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis: Redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:5,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"fromEnv\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:5,columnNumber:71},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(),\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:5,columnNumber:114},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" window: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:6,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"1d\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:6,columnNumber:66},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:6,columnNumber:116},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"});\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:7,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:33,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ol,{start:\"5\",children:[`\n`,(0,r.jsxDEV)(e.li,{children:\"Ingest some events\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:44,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:44,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:[\"An event consists of a \",(0,r.jsxDEV)(e.code,{children:\"time\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:46,columnNumber:24},this),\" field and any additional key-value pairs that you can use to record any information you want.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:46,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:104},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:145},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"event\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:182},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:223},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:260},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:297},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" time: Date.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"now\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:69},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"() \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:108},this),(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// optional (default: Date.now())\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:147},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" userId: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"chronark\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:66},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:122},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" page: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"/auth/login\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:64},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:123},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" country: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:5,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"DE\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:5,columnNumber:67},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:5,columnNumber:117},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:8,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" analytics.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:8,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"ingest\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:8,columnNumber:108},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:8,columnNumber:150},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"pageviews\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:8,columnNumber:187},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", event);\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:8,columnNumber:244},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:8,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:48,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ol,{start:\"4\",children:[`\n`,(0,r.jsxDEV)(e.li,{children:\"Query your events\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:59,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:59,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"result\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:140},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:177},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:214},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:251},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" analytics.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:292},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"query\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:339},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:380},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"pageviews\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:417},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\");\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:474},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:61,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h2,{id:\"development\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#development\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this),\"Development\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:67,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:[\"This project uses \",(0,r.jsxDEV)(e.code,{children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:69,columnNumber:19},this),\" for dependency management.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:69,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h4,{id:\"install-dependencies\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#install-dependencies\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this),\"Install dependencies\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:71,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:104},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:144},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"install\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:181},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:73,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h4,{id:\"build\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#build\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this),\"Build\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:77,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:104},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:144},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"build\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:181},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:79,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h2,{id:\"database-schema\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#database-schema\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this),\"Database Schema\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:84,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:[\"All metrics are stored in Redis \",(0,r.jsxDEV)(e.code,{children:\"Hash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:86,columnNumber:33},this),\" data types and sharded into buckets based on the \",(0,r.jsxDEV)(e.code,{children:\"window\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:86,columnNumber:89},this),\" option.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:86,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.pre,{children:(0,r.jsxDEV)(e.code,{children:`@upstash/analytics:{TABLE}:{TIMESTAMP}\n`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:87,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:87,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ul,{children:[`\n`,(0,r.jsxDEV)(e.li,{children:[(0,r.jsxDEV)(e.code,{children:\"TABLE\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:90,columnNumber:3},this),\" is a namespace to group events together. ie for managing multiple projects int a single database\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:90,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:[(0,r.jsxDEV)(e.code,{children:\"TIMESTAMP\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:91,columnNumber:3},this),\" is the starting timestamp of each window\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:91,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:90,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:\"The field of each hash is a serialized JSON object with the user's event data and the value is the number of times this event has been recorded.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:93,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"json\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"json\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FDAEB7\",fontStyle:\"italic\"},children:\"'{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:'\"page\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:120},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:172},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"/auth/login\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:210},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:269},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:'\"country\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:306},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:361},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"DE\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:399},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"}': \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:449},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"5\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:493},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:530},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" '{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:'\"page\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:64},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:116},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"/auth/login\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:154},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:213},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:'\"country\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:250},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:305},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"US\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:343},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"}': \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:393},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"2\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:437},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:4,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:95,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\",lineNumber:1,columnNumber:1},this)}function Nn(l={}){let{wrapper:e}=l.components||{};return e?(0,r.jsxDEV)(e,Object.assign({},l,{children:(0,r.jsxDEV)(Fe,l,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-95108577-d054-4fa4-9876-096009670ad0.mdx\"},this):Fe(l)}var kn=Nn;return _n(yn);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-core-analytics.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-core-analytics.mdx", - "sourceFileName": "upstash-core-analytics.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-core-analytics" - }, - "type": "Project", - "path": "/projects/upstash-core-analytics", - "slug": "upstash-core-analytics" -} \ No newline at end of file diff --git a/.contentlayer/generated/Project/projects__upstash-edge-flags.mdx.json b/.contentlayer/generated/Project/projects__upstash-edge-flags.mdx.json deleted file mode 100644 index 11d08e0..0000000 --- a/.contentlayer/generated/Project/projects__upstash-edge-flags.mdx.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "published": true, - "title": "@upstash/edge-flags", - "description": "Featues flags for your edge functions.", - "date": "2022-12-12T00:00:00.000Z", - "url": "https://upstash.com/edge-flags", - "repository": "upstash/edge-flags", - "body": { - "raw": "\n\nWhether you want to ship without breaking things, run A/B tests or just want to test in production,\nfeature flags are a great way to dynamically change the behaviour of your app without redeploying. We're excited to announce the public\nbeta release of our new feature flagging library: [@upstash/edge-flags](https://github.com/upstash/edge-flags).\n\n*Edge Flags*, as the name implies, is a feature flag solution built to run at the edge. It is using [Upstash Redis](https://upstash.com/), a globally replicated serverless Redis service, to store configuration and is \ndesigned to work with [Next.js](https://nextjs.org) and [Vercel](https://vercel.com). We want to support other frameworks in the future, so if you have a suggestion, please let us know!\n\nWith the ability to toggle features on and off at the edge, you can quickly respond\nto user feedback and optimize the user experience. Whether you are looking to\nperform A/B testing, gradually roll out a new feature, or simply have the\nability to turn things off in case of an issue, our feature flagging library has\nyou covered.\n\n\n\n## Reference\n\nCheck out the full announcement on [upstash.com](https://upstash.com/blog/edge-flags-beta) for more details.", - "code": "var Component=(()=>{var c=Object.create;var r=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty;var m=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),y=(t,e)=>{for(var a in e)r(t,a,{get:e[a],enumerable:!0})},i=(t,e,a,o)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let s of d(e))!p.call(t,s)&&s!==a&&r(t,s,{get:()=>e[s],enumerable:!(o=g(e,s))||o.enumerable});return t};var b=(t,e,a)=>(a=t!=null?c(f(t)):{},i(e||!t||!t.__esModule?r(a,\"default\",{value:t,enumerable:!0}):a,t)),w=t=>i(r({},\"__esModule\",{value:!0}),t);var l=m((W,h)=>{h.exports=_jsx_runtime});var v={};y(v,{default:()=>k,frontmatter:()=>x});var n=b(l()),x={title:\"@upstash/edge-flags\",description:\"Featues flags for your edge functions.\",date:\"2022-12-12\",url:\"https://upstash.com/edge-flags\",repository:\"upstash/edge-flags\",published:!0};function u(t){let e=Object.assign({p:\"p\",a:\"a\",em:\"em\",h2:\"h2\",span:\"span\"},t.components);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(e.p,{children:[`Whether you want to ship without breaking things, run A/B tests or just want to test in production,\nfeature flags are a great way to dynamically change the behaviour of your app without redeploying. We're excited to announce the public\nbeta release of our new feature flagging library: `,(0,n.jsx)(e.a,{href:\"https://github.com/upstash/edge-flags\",children:\"@upstash/edge-flags\"}),\".\"]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.em,{children:\"Edge Flags\"}),\", as the name implies, is a feature flag solution built to run at the edge. It is using \",(0,n.jsx)(e.a,{href:\"https://upstash.com/\",children:\"Upstash Redis\"}),`, a globally replicated serverless Redis service, to store configuration and is\ndesigned to work with `,(0,n.jsx)(e.a,{href:\"https://nextjs.org\",children:\"Next.js\"}),\" and \",(0,n.jsx)(e.a,{href:\"https://vercel.com\",children:\"Vercel\"}),\". We want to support other frameworks in the future, so if you have a suggestion, please let us know!\"]}),`\n`,(0,n.jsx)(e.p,{children:`With the ability to toggle features on and off at the edge, you can quickly respond\nto user feedback and optimize the user experience. Whether you are looking to\nperform A/B testing, gradually roll out a new feature, or simply have the\nability to turn things off in case of an issue, our feature flagging library has\nyou covered.`}),`\n`,(0,n.jsxs)(e.h2,{id:\"reference\",children:[(0,n.jsx)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#reference\",children:(0,n.jsx)(e.span,{className:\"icon icon-link\"})}),\"Reference\"]}),`\n`,(0,n.jsxs)(e.p,{children:[\"Check out the full announcement on \",(0,n.jsx)(e.a,{href:\"https://upstash.com/blog/edge-flags-beta\",children:\"upstash.com\"}),\" for more details.\"]})]})}function j(t={}){let{wrapper:e}=t.components||{};return e?(0,n.jsx)(e,Object.assign({},t,{children:(0,n.jsx)(u,t)})):u(t)}var k=j;return w(v);})();\n;return Component;" - }, - "_id": "projects/upstash-edge-flags.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-edge-flags.mdx", - "sourceFileName": "upstash-edge-flags.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-edge-flags" - }, - "type": "Project", - "path": "/projects/upstash-edge-flags", - "slug": "upstash-edge-flags" -} \ No newline at end of file diff --git a/.contentlayer/generated/Project/projects__upstash-kafka.mdx.json b/.contentlayer/generated/Project/projects__upstash-kafka.mdx.json deleted file mode 100644 index 169c658..0000000 --- a/.contentlayer/generated/Project/projects__upstash-kafka.mdx.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "published": true, - "title": "@upstash/kafka", - "description": "A fully typed Kafka client built for Upstash Kafka and HTTP, perfect for serverless and edge runtimes", - "date": "2022-01-08T00:00:00.000Z", - "url": "https://upstash.com/kafka", - "repository": "upstash/upstash-kafka", - "body": { - "raw": "\n\nAn HTTP/REST based Kafka client built on top of\n[Upstash REST API](https://docs.upstash.com/kafka/rest).\n\nIt is the only connectionless (HTTP based) Kafka client and designed for:\n\n- Serverless functions (AWS Lambda ...)\n- Cloudflare Workers (see the example)\n- Fastly Compute@Edge\n- Next.js Edge, Remix ...\n- Client side web/mobile applications\n- WebAssembly and other environments where HTTP is preferred over TCP\n connections.\n\n# Installation\n\n```bash\nnpm install @upstash/kafka\n```\n\n# Quickstart\n\n## Auth\n\n1. Go to [upstash](https://console.upstash.com/kafka) and select your database.\n2. Copy the `REST API` secrets at the bottom of the page\n\n```typescript\nimport { Kafka } from \"@upstash/kafka\"\n\nconst kafka = new Kafka({\n url: \"\",\n username: \"\",\n password: \"\",\n})\n```\n\n## Produce a single message\n\n```typescript\nconst p = kafka.producer()\nconst message = { hello: \"world\" } // Objects will get serialized using `JSON.stringify`\nconst res = await p.produce(\"\", message)\nconst res = await p.produce(\"\", message, {\n partition: 1,\n timestamp: 12345,\n key: \"\",\n headers: [{ key: \"traceId\", value: \"85a9f12\" }],\n})\n```\n\n## Produce multiple messages.\n\nThe same options from the example above can be set for every message.\n\n```typescript\nconst p = kafka.producer()\nconst res = await p.produceMany([\n {\n topic: \"my.topic\",\n value: { hello: \"world\" },\n // ...options\n },\n {\n topic: \"another.topic\",\n value: \"another message\",\n // ...options\n },\n])\n```\n\n## Consume\n\nThe first time a consumer is created, it needs to figure out the group\ncoordinator by asking the Kafka brokers and joins the consumer group. This\nprocess takes some time to complete. That's why when a consumer instance is\ncreated first time, it may return empty messages until consumer group\ncoordination is completed.\n\n```typescript\nconst c = kafka.consumer()\nconst messages = await c.consume({\n consumerGroupId: \"group_1\",\n instanceId: \"instance_1\",\n topics: [\"test.topic\"],\n autoOffsetReset: \"earliest\",\n})\n```\n\nMore examples can be found in the\n[docstring](https://github.com/upstash/upstash-kafka/blob/main/pkg/consumer.ts#L265)\n\n## Commit manually\n\nWhile `consume` can handle committing automatically, you can also use\n`Consumer.commit` to manually commit.\n\n```typescript\nconst consumerGroupId = \"mygroup\"\nconst instanceId = \"myinstance\"\nconst topic = \"my.topic\"\n\nconst c = kafka.consumer()\nconst messages = await c.consume({\n consumerGroupId,\n instanceId,\n topics: [topic],\n autoCommit: false,\n})\n\nfor (const message of messages) {\n // message handling logic\n\n await c.commit({\n consumerGroupId,\n instanceId,\n offset: {\n topic: message.topic,\n partition: message.partition,\n offset: message.offset,\n },\n })\n}\n```\n\n## Fetch\n\nYou can also manage offsets manually by using `Consumer.fetch`\n\n```typescript\nconst c = kafka.consumer()\nconst messages = await c.fetch({\n topic: \"greeting\",\n partition: 3,\n offset: 42,\n timeout: 1000,\n})\n```\n\n## Examples\n\nSee [/examples](https://github.com/upstash/upstash-kafka/tree/main/examples) as\nwell as various examples in the docstrings of each method.\n\n# Contributing\n\n## Requirements\n\n- [nodejs](https://nodejs.org) v14.x or higher\n- [pnpm](https://pnpm.io/installation)\n\n## Setup\n\n0. Install dependencies using `pnpm install`\n1. Create a kafka instance on upstash.\n [docs](https://docs.upstash.com/kafka#create-a-kafka-cluster)\n2. Create the following topics: `blue`, `red`, `green`.\n [docs](https://docs.upstash.com/kafka#create-a-topic)\n\n The partitions or retention settings don't matter at this time.\n\n3. Create `.env` file with your kafka secrets `cp .env.example .env`\n\n## Running tests\n\n```bash\npnpm test\n```\n", - "code": "var Component=(()=>{var dn=Object.create;var P=Object.defineProperty;var mn=Object.getOwnPropertyDescriptor;var ln=Object.getOwnPropertyNames;var bn=Object.getPrototypeOf,un=Object.prototype.hasOwnProperty;var G=(m,e)=>()=>(e||m((e={exports:{}}).exports,e),e.exports),hn=(m,e)=>{for(var _ in e)P(m,_,{get:e[_],enumerable:!0})},ye=(m,e,_,x)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let k of ln(e))!un.call(m,k)&&k!==_&&P(m,k,{get:()=>e[k],enumerable:!(x=mn(e,k))||x.enumerable});return m};var fn=(m,e,_)=>(_=m!=null?dn(bn(m)):{},ye(e||!m||!m.__esModule?P(_,\"default\",{value:m,enumerable:!0}):_,m)),_n=m=>ye(P({},\"__esModule\",{value:!0}),m);var Ee=G((gn,ge)=>{ge.exports=React});var je=G(q=>{\"use strict\";(function(){\"use strict\";var m=Ee(),e=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),x=Symbol.for(\"react.fragment\"),k=Symbol.for(\"react.strict_mode\"),H=Symbol.for(\"react.profiler\"),z=Symbol.for(\"react.provider\"),X=Symbol.for(\"react.context\"),F=Symbol.for(\"react.forward_ref\"),O=Symbol.for(\"react.suspense\"),A=Symbol.for(\"react.suspense_list\"),C=Symbol.for(\"react.memo\"),D=Symbol.for(\"react.lazy\"),Ce=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Re=\"@@iterator\";function Te(r){if(r===null||typeof r!=\"object\")return null;var a=J&&r[J]||r[Re];return typeof a==\"function\"?a:null}var g=m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function u(r){{for(var a=arguments.length,t=new Array(a>1?a-1:0),o=1;o=1&&b>=0&&s[l]!==h[b];)b--;for(;l>=1&&b>=0;l--,b--)if(s[l]!==h[b]){if(l!==1||b!==1)do if(l--,b--,b<0||s[l]!==h[b]){var f=`\n`+s[l].replace(\" at new \",\" at \");return r.displayName&&f.includes(\"\")&&(f=f.replace(\"\",r.displayName)),typeof r==\"function\"&&T.set(r,f),f}while(l>=1&&b>=0);break}}}finally{W=!1,I.current=i,We(),Error.prepareStackTrace=d}var j=r?r.displayName||r.name:\"\",xe=j?R(j):\"\";return typeof r==\"function\"&&T.set(r,xe),xe}function Me(r,a,t){return de(r,!1)}function $e(r){var a=r.prototype;return!!(a&&a.isReactComponent)}function w(r,a,t){if(r==null)return\"\";if(typeof r==\"function\")return de(r,$e(r));if(typeof r==\"string\")return R(r);switch(r){case O:return R(\"Suspense\");case A:return R(\"SuspenseList\")}if(typeof r==\"object\")switch(r.$$typeof){case F:return Me(r.render);case C:return w(r.type,a,t);case D:{var o=r,d=o._payload,i=o._init;try{return w(i(d),a,t)}catch{}}}return\"\"}var S=Object.prototype.hasOwnProperty,ie={},me=g.ReactDebugCurrentFrame;function B(r){if(r){var a=r._owner,t=w(r.type,r._source,a?a.type:null);me.setExtraStackFrame(t)}else me.setExtraStackFrame(null)}function Ve(r,a,t,o,d){{var i=Function.call.bind(S);for(var c in r)if(i(r,c)){var s=void 0;try{if(typeof r[c]!=\"function\"){var h=Error((o||\"React class\")+\": \"+t+\" type `\"+c+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof r[c]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw h.name=\"Invariant Violation\",h}s=r[c](a,c,o,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(l){s=l}s&&!(s instanceof Error)&&(B(d),u(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",o||\"React class\",t,c,typeof s),B(null)),s instanceof Error&&!(s.message in ie)&&(ie[s.message]=!0,B(d),u(\"Failed %s type: %s\",t,s.message),B(null))}}}var Ke=Array.isArray;function Y(r){return Ke(r)}function Ge(r){{var a=typeof Symbol==\"function\"&&Symbol.toStringTag,t=a&&r[Symbol.toStringTag]||r.constructor.name||\"Object\";return t}}function qe(r){try{return le(r),!1}catch{return!0}}function le(r){return\"\"+r}function be(r){if(qe(r))return u(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Ge(r)),le(r)}var v=g.ReactCurrentOwner,He={key:!0,ref:!0,__self:!0,__source:!0},ue,he,M;M={};function ze(r){if(S.call(r,\"ref\")){var a=Object.getOwnPropertyDescriptor(r,\"ref\").get;if(a&&a.isReactWarning)return!1}return r.ref!==void 0}function Xe(r){if(S.call(r,\"key\")){var a=Object.getOwnPropertyDescriptor(r,\"key\").get;if(a&&a.isReactWarning)return!1}return r.key!==void 0}function Je(r,a){if(typeof r.ref==\"string\"&&v.current&&a&&v.current.stateNode!==a){var t=p(v.current.type);M[t]||(u('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(v.current.type),r.ref),M[t]=!0)}}function Qe(r,a){{var t=function(){ue||(ue=!0,u(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(r,\"key\",{get:t,configurable:!0})}}function Ze(r,a){{var t=function(){he||(he=!0,u(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(r,\"ref\",{get:t,configurable:!0})}}var en=function(r,a,t,o,d,i,c){var s={$$typeof:e,type:r,key:a,ref:t,props:c,_owner:i};return s._store={},Object.defineProperty(s._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(s,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(s,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:d}),Object.freeze&&(Object.freeze(s.props),Object.freeze(s)),s};function nn(r,a,t,o,d){{var i,c={},s=null,h=null;t!==void 0&&(be(t),s=\"\"+t),Xe(a)&&(be(a.key),s=\"\"+a.key),ze(a)&&(h=a.ref,Je(a,d));for(i in a)S.call(a,i)&&!He.hasOwnProperty(i)&&(c[i]=a[i]);if(r&&r.defaultProps){var l=r.defaultProps;for(i in l)c[i]===void 0&&(c[i]=l[i])}if(s||h){var b=typeof r==\"function\"?r.displayName||r.name||\"Unknown\":r;s&&Qe(c,b),h&&Ze(c,b)}return en(r,s,h,d,o,v.current,c)}}var $=g.ReactCurrentOwner,fe=g.ReactDebugCurrentFrame;function E(r){if(r){var a=r._owner,t=w(r.type,r._source,a?a.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}var V;V=!1;function K(r){return typeof r==\"object\"&&r!==null&&r.$$typeof===e}function _e(){{if($.current){var r=p($.current.type);if(r)return`\n\nCheck the render method of \\``+r+\"`.\"}return\"\"}}function rn(r){{if(r!==void 0){var a=r.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=r.lineNumber;return`\n\nCheck your code at `+a+\":\"+t+\".\"}return\"\"}}var pe={};function an(r){{var a=_e();if(!a){var t=typeof r==\"string\"?r:r.displayName||r.name;t&&(a=`\n\nCheck the top-level render call using <`+t+\">.\")}return a}}function Ne(r,a){{if(!r._store||r._store.validated||r.key!=null)return;r._store.validated=!0;var t=an(a);if(pe[t])return;pe[t]=!0;var o=\"\";r&&r._owner&&r._owner!==$.current&&(o=\" It was passed a child from \"+p(r._owner.type)+\".\"),E(r),u('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,o),E(null)}}function ke(r,a){{if(typeof r!=\"object\")return;if(Y(r))for(var t=0;t\",s=\" Did you accidentally export a JSX literal instead of a component?\"):l=typeof r,u(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",l,s)}var b=nn(r,a,t,d,i);if(b==null)return b;if(c){var f=a.children;if(f!==void 0)if(o)if(Y(f)){for(var j=0;j{\"use strict\";Ue.exports=je()});var xn={};hn(xn,{default:()=>kn,frontmatter:()=>pn});var n=fn(ve()),pn={title:\"@upstash/kafka\",description:\"A fully typed Kafka client built for Upstash Kafka and HTTP, perfect for serverless and edge runtimes\",date:\"2022-01-08\",url:\"https://upstash.com/kafka\",repository:\"upstash/upstash-kafka\",published:!0};function Fe(m){let e=Object.assign({p:\"p\",a:\"a\",ul:\"ul\",li:\"li\",h1:\"h1\",span:\"span\",div:\"div\",pre:\"pre\",code:\"code\",h2:\"h2\",ol:\"ol\"},m.components);return(0,n.jsxDEV)(n.Fragment,{children:[(0,n.jsxDEV)(e.p,{children:[`An HTTP/REST based Kafka client built on top of\n`,(0,n.jsxDEV)(e.a,{href:\"https://docs.upstash.com/kafka/rest\",children:\"Upstash REST API\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:1},this),\".\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:\"It is the only connectionless (HTTP based) Kafka client and designed for:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.ul,{children:[`\n`,(0,n.jsxDEV)(e.li,{children:\"Serverless functions (AWS Lambda ...)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"Cloudflare Workers (see the example)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"Fastly Compute@Edge\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"Next.js Edge, Remix ...\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"Client side web/mobile applications\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:21,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:`WebAssembly and other environments where HTTP is preferred over TCP\nconnections.`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:22,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h1,{id:\"installation\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#installation\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Installation\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:25,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"npm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:143},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"install\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:180},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:223},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"@upstash/kafka\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:260},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:27,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h1,{id:\"quickstart\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#quickstart\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Quickstart\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"auth\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#auth\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Auth\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:33,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.ol,{children:[`\n`,(0,n.jsxDEV)(e.li,{children:[\"Go to \",(0,n.jsxDEV)(e.a,{href:\"https://console.upstash.com/kafka\",children:\"upstash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:35,columnNumber:10},this),\" and select your database.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:[\"Copy the \",(0,n.jsxDEV)(e.code,{children:\"REST API\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:36,columnNumber:13},this),\" secrets at the bottom of the page\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:36,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" { Kafka } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:146},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:193},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:233},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"@upstash/kafka\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:270},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"kafka\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:139},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:176},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:213},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"new\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:250},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:289},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"Kafka\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:326},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:367},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" url: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:63},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:141},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" username: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:68},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:151},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" password: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:68},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:151},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:38,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"produce-a-single-message\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#produce-a-single-message\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Produce a single message\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:48,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:145},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"p\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:182},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:219},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:256},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:293},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"producer\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:336},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:380},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"message\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:141},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:178},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" { hello: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:215},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"world\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:261},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:314},this),(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// Objects will get serialized using `JSON.stringify`\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:353},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"res\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:137},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:174},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:211},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:248},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" p.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:289},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"produce\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:328},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:371},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:408},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", message)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:472},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"res\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:137},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:174},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:211},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:248},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" p.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:289},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"produce\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:328},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:371},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:408},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", message, {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:472},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" partition: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:69},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:106},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" timestamp: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"12345\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:69},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" key: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:63},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:129},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" headers: [{ key: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"traceId\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:75},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", value: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:130},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"85a9f12\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:175},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" }],\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:230},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:50,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"produce-multiple-messages\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#produce-multiple-messages\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Produce multiple messages.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:62,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:\"The same options from the example above can be set for every message.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:64,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:145},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"p\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:182},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:219},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:256},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:293},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"producer\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:336},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:380},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"res\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:137},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:174},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:211},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:248},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" p.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:289},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"produceMany\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:328},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"([\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:375},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topic: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"my.topic\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:67},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:123},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" value: { hello: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"world\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:76},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" },\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:129},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// ...options\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:60},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" },\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topic: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"another.topic\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:67},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:128},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" value: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"another message\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:67},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:130},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:11,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// ...options\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:11,columnNumber:60},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" },\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:12,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"])\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:66,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"consume\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#consume\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Consume\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:`The first time a consumer is created, it needs to figure out the group\ncoordinator by asking the Kafka brokers and joins the consumer group. This\nprocess takes some time to complete. That's why when a consumer instance is\ncreated first time, it may return empty messages until consumer group\ncoordination is completed.`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:84,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:145},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"c\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:182},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:219},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:256},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:293},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"consumer\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:336},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:380},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"messages\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:142},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:179},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:216},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:253},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" c.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:294},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"consume\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:333},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:376},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" consumerGroupId: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"group_1\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:75},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:130},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" instanceId: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"instance_1\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:70},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:128},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topics: [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"test.topic\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:67},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"],\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:125},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" autoOffsetReset: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"earliest\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:75},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:131},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:90,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:[`More examples can be found in the\n`,(0,n.jsxDEV)(e.a,{href:\"https://github.com/upstash/upstash-kafka/blob/main/pkg/consumer.ts#L265\",children:\"docstring\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:101,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:100,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"commit-manually\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#commit-manually\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Commit manually\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:103,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:[\"While \",(0,n.jsxDEV)(e.code,{children:\"consume\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:105,columnNumber:7},this),` can handle committing automatically, you can also use\n`,(0,n.jsxDEV)(e.code,{children:\"Consumer.commit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:106,columnNumber:1},this),\" to manually commit.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:105,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:145},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"consumerGroupId\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:182},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:233},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:270},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:307},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"mygroup\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:344},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"instanceId\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:144},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:181},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:218},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"myinstance\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:255},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"topic\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:139},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:176},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:213},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"my.topic\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:250},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"c\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:135},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:172},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:209},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"consumer\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:252},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:296},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"messages\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:142},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:179},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:216},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:253},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" c.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:294},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"consume\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:333},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:376},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" consumerGroupId,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" instanceId,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topics: [topic],\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" autoCommit: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"false\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:70},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:111},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:11,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"for\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" (\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:59},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:97},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:138},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"message\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:175},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:218},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"of\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:255},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" messages) {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:293},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:14,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// message handling logic\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:14,columnNumber:58},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:16,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:16,columnNumber:58},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" c.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:16,columnNumber:99},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"commit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:16,columnNumber:138},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:16,columnNumber:180},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" consumerGroupId,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:17,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" instanceId,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:18,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" offset: {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:19,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topic: message.topic,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:20,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" partition: message.partition,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:21,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:21,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" offset: message.offset,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:22,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:22,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" },\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:23,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:23,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" })\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:24,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:24,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:25,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:25,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:108,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"fetch\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#fetch\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Fetch\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:136,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:[\"You can also manage offsets manually by using \",(0,n.jsxDEV)(e.code,{children:\"Consumer.fetch\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:138,columnNumber:47},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:138,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:145},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"c\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:182},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:219},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:256},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:293},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"consumer\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:336},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:380},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"messages\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:142},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:179},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:216},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:253},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" c.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:294},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"fetch\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:333},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:374},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topic: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"greeting\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:65},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:121},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" partition: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"3\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:69},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:106},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" offset: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"42\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:66},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:104},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" timeout: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"1000\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:67},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:107},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:140,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"examples\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#examples\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Examples\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:150,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:[\"See \",(0,n.jsxDEV)(e.a,{href:\"https://github.com/upstash/upstash-kafka/tree/main/examples\",children:\"/examples\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:152,columnNumber:5},this),` as\nwell as various examples in the docstrings of each method.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:152,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h1,{id:\"contributing\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#contributing\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Contributing\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:155,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"requirements\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#requirements\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Requirements\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:157,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.ul,{children:[`\n`,(0,n.jsxDEV)(e.li,{children:[(0,n.jsxDEV)(e.a,{href:\"https://nodejs.org\",children:\"nodejs\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:159,columnNumber:3},this),\" v14.x or higher\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:159,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:(0,n.jsxDEV)(e.a,{href:\"https://pnpm.io/installation\",children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:160,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:160,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:159,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"setup\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#setup\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Setup\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:162,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.ol,{start:\"0\",children:[`\n`,(0,n.jsxDEV)(e.li,{children:[`\n`,(0,n.jsxDEV)(e.p,{children:[\"Install dependencies using \",(0,n.jsxDEV)(e.code,{children:\"pnpm install\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:164,columnNumber:31},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:164,columnNumber:4},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:164,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:[`\n`,(0,n.jsxDEV)(e.p,{children:[`Create a kafka instance on upstash.\n`,(0,n.jsxDEV)(e.a,{href:\"https://docs.upstash.com/kafka#create-a-kafka-cluster\",children:\"docs\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:166,columnNumber:4},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:165,columnNumber:4},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:165,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:[`\n`,(0,n.jsxDEV)(e.p,{children:[\"Create the following topics: \",(0,n.jsxDEV)(e.code,{children:\"blue\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:167,columnNumber:33},this),\", \",(0,n.jsxDEV)(e.code,{children:\"red\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:167,columnNumber:41},this),\", \",(0,n.jsxDEV)(e.code,{children:\"green\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:167,columnNumber:48},this),`.\n`,(0,n.jsxDEV)(e.a,{href:\"https://docs.upstash.com/kafka#create-a-topic\",children:\"docs\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:168,columnNumber:4},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:167,columnNumber:4},this),`\n`,(0,n.jsxDEV)(e.p,{children:\"The partitions or retention settings don't matter at this time.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:170,columnNumber:4},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:167,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:[`\n`,(0,n.jsxDEV)(e.p,{children:[\"Create \",(0,n.jsxDEV)(e.code,{children:\".env\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:172,columnNumber:11},this),\" file with your kafka secrets \",(0,n.jsxDEV)(e.code,{children:\"cp .env.example .env\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:172,columnNumber:47},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:172,columnNumber:4},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:172,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:164,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"running-tests\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#running-tests\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Running tests\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:174,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:144},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"test\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:181},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:176,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)}function Nn(m={}){let{wrapper:e}=m.components||{};return e?(0,n.jsxDEV)(e,Object.assign({},m,{children:(0,n.jsxDEV)(Fe,m,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this):Fe(m)}var kn=Nn;return _n(xn);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-kafka.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-kafka.mdx", - "sourceFileName": "upstash-kafka.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-kafka" - }, - "type": "Project", - "path": "/projects/upstash-kafka", - "slug": "upstash-kafka" -} \ No newline at end of file diff --git a/.contentlayer/generated/Project/projects__upstash-qstash-sdk.mdx.json b/.contentlayer/generated/Project/projects__upstash-qstash-sdk.mdx.json deleted file mode 100644 index d20048d..0000000 --- a/.contentlayer/generated/Project/projects__upstash-qstash-sdk.mdx.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "published": true, - "title": "@upstash/qstash", - "description": "A typescript client and consumer for QStash.", - "date": "2022-07-18T00:00:00.000Z", - "url": "https://upstash.com/qstash", - "repository": "upstash/sdk-qstash-ts", - "body": { - "raw": "\n\n@upstash/qstash is the official client and consumer for [QStash](https://chronark.com/projects/qstash).\n\nQStash is the message broker between your serverless apps. You send an HTTP\nrequest to QStash, that includes a destination, a payload and optional settings.\nWe durably store your message and will deliver it to the destination API via\nHTTP. In case the destination is not ready to receive the message, we will retry\nthe message later, to guarentee at-least-once delivery.\n\n```bash\nnpm install @upstash/qstash\n```\n", - "code": "var Component=(()=>{var h=Object.create;var r=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var m=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var g=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),f=(t,e)=>{for(var a in e)r(t,a,{get:e[a],enumerable:!0})},i=(t,e,a,o)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let n of u(e))!y.call(t,n)&&n!==a&&r(t,n,{get:()=>e[n],enumerable:!(o=p(e,n))||o.enumerable});return t};var x=(t,e,a)=>(a=t!=null?h(m(t)):{},i(e||!t||!t.__esModule?r(a,\"default\",{value:t,enumerable:!0}):a,t)),b=t=>i(r({},\"__esModule\",{value:!0}),t);var c=g((_,l)=>{l.exports=_jsx_runtime});var q={};f(q,{default:()=>E,frontmatter:()=>j});var s=x(c()),j={title:\"@upstash/qstash\",description:\"A typescript client and consumer for QStash.\",date:\"2022-07-18\",url:\"https://upstash.com/qstash\",repository:\"upstash/sdk-qstash-ts\",published:!0};function d(t){let e=Object.assign({p:\"p\",a:\"a\",div:\"div\",pre:\"pre\",code:\"code\",span:\"span\"},t.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(e.p,{children:[\"@upstash/qstash is the official client and consumer for \",(0,s.jsx)(e.a,{href:\"https://chronark.com/projects/qstash\",children:\"QStash\"}),\".\"]}),`\n`,(0,s.jsx)(e.p,{children:`QStash is the message broker between your serverless apps. You send an HTTP\nrequest to QStash, that includes a destination, a payload and optional settings.\nWe durably store your message and will deliver it to the destination API via\nHTTP. In case the destination is not ready to receive the message, we will retry\nthe message later, to guarentee at-least-once delivery.`}),`\n`,(0,s.jsx)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,s.jsx)(e.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,s.jsx)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,s.jsxs)(e.span,{className:\"line\",children:[(0,s.jsx)(e.span,{style:{color:\"#B392F0\"},children:\"npm\"}),(0,s.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,s.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"install\"}),(0,s.jsx)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"}),(0,s.jsx)(e.span,{style:{color:\"#9ECBFF\"},children:\"@upstash/qstash\"})]})})})})]})}function v(t={}){let{wrapper:e}=t.components||{};return e?(0,s.jsx)(e,Object.assign({},t,{children:(0,s.jsx)(d,t)})):d(t)}var E=v;return b(q);})();\n;return Component;" - }, - "_id": "projects/upstash-qstash-sdk.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-qstash-sdk.mdx", - "sourceFileName": "upstash-qstash-sdk.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-qstash-sdk" - }, - "type": "Project", - "path": "/projects/upstash-qstash-sdk", - "slug": "upstash-qstash-sdk" -} \ No newline at end of file diff --git a/.contentlayer/generated/Project/projects__upstash-qstash.mdx.json b/.contentlayer/generated/Project/projects__upstash-qstash.mdx.json deleted file mode 100644 index 902729d..0000000 --- a/.contentlayer/generated/Project/projects__upstash-qstash.mdx.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "title": "QStash", - "description": "QStash is a fully managed serverless queue and messaging service designed for the serverless era.", - "date": "2023-02-05T00:00:00.000Z", - "url": "https://upstash.com", - "repository": "upstash/react-ui", - "body": { - "raw": "\nTODO:", - "code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var fr=Object.getOwnPropertyDescriptor;var lr=Object.getOwnPropertyNames;var cr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var G=(s,f)=>()=>(f||s((f={exports:{}}).exports,f),f.exports),vr=(s,f)=>{for(var h in f)F(s,h,{get:f[h],enumerable:!0})},_e=(s,f,h,E)=>{if(f&&typeof f==\"object\"||typeof f==\"function\")for(let m of lr(f))!dr.call(s,m)&&m!==h&&F(s,m,{get:()=>f[m],enumerable:!(E=fr(f,m))||E.enumerable});return s};var pr=(s,f,h)=>(h=s!=null?sr(cr(s)):{},_e(f||!s||!s.__esModule?F(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=G((_r,Re)=>{Re.exports=React});var Ce=G(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),f=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),Q=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=Q&&e[Q]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&c>=0&&a[l]!==v[c];)c--;for(;l>=1&&c>=0;l--,c--)if(a[l]!==v[c]){if(l!==1||c!==1)do if(l--,c--,c<0||a[l]!==v[c]){var p=`\n`+a[l].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(l>=1&&c>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,fe={},le=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);le.setExtraStackFrame(t)}else le.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(l){a=l}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in fe)&&(fe[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var qe=Array.isArray;function V(e){return qe(e)}function Ge(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return ce(e),!1}catch{return!0}}function ce(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Ge(e)),ce(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Qe(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=g(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',g(O.current.type),e.ref),U[t]=!0)}}function Je(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Ze(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:f,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Qe(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var l=e.defaultProps;for(u in l)o[u]===void 0&&(o[u]=l[u])}if(a||v){var c=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Je(o,c),v&&Ze(o,c)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var B;B=!1;function q(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===f}function ge(){{if(L.current){var e=g(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var be={};function nr(e){{var r=ge();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(be[t])return;be[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+g(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):l=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",l,a)}var c=rr(e,r,t,i,u);if(c==null)return c;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>gr});var A=pr(we()),gr={title:\"QStash\",description:\"QStash is a fully managed serverless queue and messaging service designed for the serverless era.\",date:\"2023-02-05\",url:\"https://upstash.com\",repository:\"upstash/react-ui\"};function Pe(s){let f=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(f.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-28d62f02-f448-49a0-a4b4-e4d6fe511979.mdx\",lineNumber:10,columnNumber:1},this)}function br(s={}){let{wrapper:f}=s.components||{};return f?(0,A.jsxDEV)(f,Object.assign({},s,{children:(0,A.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-28d62f02-f448-49a0-a4b4-e4d6fe511979.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-28d62f02-f448-49a0-a4b4-e4d6fe511979.mdx\"},this):Pe(s)}var mr=br;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-qstash.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-qstash.mdx", - "sourceFileName": "upstash-qstash.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-qstash" - }, - "type": "Project", - "path": "/projects/upstash-qstash", - "slug": "upstash-qstash" -} \ No newline at end of file diff --git a/.contentlayer/generated/Project/projects__upstash-ratelimit.mdx.json b/.contentlayer/generated/Project/projects__upstash-ratelimit.mdx.json deleted file mode 100644 index a5f2367..0000000 --- a/.contentlayer/generated/Project/projects__upstash-ratelimit.mdx.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "published": true, - "title": "@upstash/ratelimit", - "description": "Ratelimiting library for serverless and edge runtimes. Built on top of Upstash Redis.", - "date": "2022-06-06T00:00:00.000Z", - "url": "https://upstash.com/ratelimit", - "repository": "upstash/ratelimit", - "body": { - "raw": "\nIn today's digital age, serverless computing has become increasingly popular due to its scalability and cost-efficiency. One of the challenges of serverless computing is to manage resources efficiently, and one critical aspect of this is rate limiting. Rate limiting is a technique that limits the number of requests a client can make to a server over a given period. This technique can prevent abuse, improve performance, and reduce costs. One npm package that helps implement rate limiting for serverless applications is @upstash/ratelimit, built on top of Upstash Redis.\n\nUpstash is a managed Redis-compatible database service designed for serverless applications.\n\n`@upstash/ratelimit` is an npm package that provides serverless rate limiting using Upstash Redis. The package offers a simple API that can be used to limit the number of requests a client can make within a given time frame. The following algorithms are supported:\n\n- Fixed window\n- Sliding window\n- Leaky bucket\n\n\nUsing `@upstash/ratelimit` is straightforward. First, you need to install the package using npm:\n\n```bash\nnpm install @upstash/ratelimit @upstash/redis\n```\nThen, you can use it in your application:\n\n```ts\nimport { Ratelimit } from \"@upstash/ratelimit\"\nimport { Redis } from \"@upstash/redis\"\n\nconst ratelimit = new Ratelimit({\n redis: new Redis({\n url: \"\",\n token: \"\"\n }),\n limiter: Ratelimit.slidingWindow(10, \"10s\"),\n analytics: true\n})\n\n\n// Check if the client has exceeded the rate limit\nconst { success } = await ratelimit.limit(\"identifier\")\n```\n\nIn the code above, we initialize Upstash with our Upstash Redis credentials and define our rate limiting rules. We then call the `limit` function, passing the identifier. The function returns a Promise that resolves with `success` and some other useful data.\n\n`@upstash/ratelimit` is a useful npm package for serverless rate limiting that simplifies the process of implementing rate limiting for serverless applications. The package is built on top of Upstash Redis, which provides a complete solution for serverless applications. With `@upstash/ratelimit`, serverless developers can easily implement rate limiting, which can help prevent abuse, improve performance, and reduce costs.", - "code": "var Component=(()=>{var ir=Object.create;var S=Object.defineProperty;var lr=Object.getOwnPropertyDescriptor;var ur=Object.getOwnPropertyNames;var dr=Object.getPrototypeOf,mr=Object.prototype.hasOwnProperty;var z=(u,r)=>()=>(r||u((r={exports:{}}).exports,r),r.exports),hr=(u,r)=>{for(var p in r)S(u,p,{get:r[p],enumerable:!0})},ke=(u,r,p,g)=>{if(r&&typeof r==\"object\"||typeof r==\"function\")for(let y of ur(r))!mr.call(u,y)&&y!==p&&S(u,y,{get:()=>r[y],enumerable:!(g=lr(r,y))||g.enumerable});return u};var fr=(u,r,p)=>(p=u!=null?ir(dr(u)):{},ke(r||!u||!u.__esModule?S(p,\"default\",{value:u,enumerable:!0}):p,u)),br=u=>ke(S({},\"__esModule\",{value:!0}),u);var ve=z((kr,xe)=>{xe.exports=React});var Ee=z(G=>{\"use strict\";(function(){\"use strict\";var u=ve(),r=Symbol.for(\"react.element\"),p=Symbol.for(\"react.portal\"),g=Symbol.for(\"react.fragment\"),y=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),R=Symbol.for(\"react.forward_ref\"),D=Symbol.for(\"react.suspense\"),A=Symbol.for(\"react.suspense_list\"),F=Symbol.for(\"react.memo\"),B=Symbol.for(\"react.lazy\"),Fe=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Te=\"@@iterator\";function we(e){if(e===null||typeof e!=\"object\")return null;var a=J&&e[J]||e[Te];return typeof a==\"function\"?a:null}var x=u.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function h(e){{for(var a=arguments.length,t=new Array(a>1?a-1:0),c=1;c=1&&m>=0&&o[d]!==f[m];)m--;for(;d>=1&&m>=0;d--,m--)if(o[d]!==f[m]){if(d!==1||m!==1)do if(d--,m--,m<0||o[d]!==f[m]){var b=`\n`+o[d].replace(\" at new \",\" at \");return e.displayName&&b.includes(\"\")&&(b=b.replace(\"\",e.displayName)),typeof e==\"function\"&&w.set(e,b),b}while(d>=1&&m>=0);break}}}finally{Y=!1,I.current=l,Ye(),Error.prepareStackTrace=i}var E=e?e.displayName||e.name:\"\",ge=E?T(E):\"\";return typeof e==\"function\"&&w.set(e,ge),ge}function Me(e,a,t){return ie(e,!1)}function Ve(e){var a=e.prototype;return!!(a&&a.isReactComponent)}function C(e,a,t){if(e==null)return\"\";if(typeof e==\"function\")return ie(e,Ve(e));if(typeof e==\"string\")return T(e);switch(e){case D:return T(\"Suspense\");case A:return T(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case R:return Me(e.render);case F:return C(e.type,a,t);case B:{var c=e,i=c._payload,l=c._init;try{return C(l(i),a,t)}catch{}}}return\"\"}var O=Object.prototype.hasOwnProperty,le={},ue=x.ReactDebugCurrentFrame;function P(e){if(e){var a=e._owner,t=C(e.type,e._source,a?a.type:null);ue.setExtraStackFrame(t)}else ue.setExtraStackFrame(null)}function Le(e,a,t,c,i){{var l=Function.call.bind(O);for(var s in e)if(l(e,s)){var o=void 0;try{if(typeof e[s]!=\"function\"){var f=Error((c||\"React class\")+\": \"+t+\" type `\"+s+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[s]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw f.name=\"Invariant Violation\",f}o=e[s](a,s,c,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(d){o=d}o&&!(o instanceof Error)&&(P(i),h(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",c||\"React class\",t,s,typeof o),P(null)),o instanceof Error&&!(o.message in le)&&(le[o.message]=!0,P(i),h(\"Failed %s type: %s\",t,o.message),P(null))}}}var qe=Array.isArray;function $(e){return qe(e)}function ze(e){{var a=typeof Symbol==\"function\"&&Symbol.toStringTag,t=a&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function Ge(e){try{return de(e),!1}catch{return!0}}function de(e){return\"\"+e}function me(e){if(Ge(e))return h(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",ze(e)),de(e)}var U=x.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},he,fe,M;M={};function Ke(e){if(O.call(e,\"ref\")){var a=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(a&&a.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(O.call(e,\"key\")){var a=Object.getOwnPropertyDescriptor(e,\"key\").get;if(a&&a.isReactWarning)return!1}return e.key!==void 0}function Je(e,a){if(typeof e.ref==\"string\"&&U.current&&a&&U.current.stateNode!==a){var t=_(U.current.type);M[t]||(h('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',_(U.current.type),e.ref),M[t]=!0)}}function Ze(e,a){{var t=function(){he||(he=!0,h(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,a){{var t=function(){fe||(fe=!0,h(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,a,t,c,i,l,s){var o={$$typeof:r,type:e,key:a,ref:t,props:s,_owner:l};return o._store={},Object.defineProperty(o._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(o,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:c}),Object.defineProperty(o,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(o.props),Object.freeze(o)),o};function rr(e,a,t,c,i){{var l,s={},o=null,f=null;t!==void 0&&(me(t),o=\"\"+t),He(a)&&(me(a.key),o=\"\"+a.key),Ke(a)&&(f=a.ref,Je(a,i));for(l in a)O.call(a,l)&&!Xe.hasOwnProperty(l)&&(s[l]=a[l]);if(e&&e.defaultProps){var d=e.defaultProps;for(l in d)s[l]===void 0&&(s[l]=d[l])}if(o||f){var m=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;o&&Ze(s,m),f&&Qe(s,m)}return er(e,o,f,i,c,U.current,s)}}var V=x.ReactCurrentOwner,be=x.ReactDebugCurrentFrame;function v(e){if(e){var a=e._owner,t=C(e.type,e._source,a?a.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var L;L=!1;function q(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===r}function pe(){{if(V.current){var e=_(V.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function nr(e){{if(e!==void 0){var a=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+a+\":\"+t+\".\"}return\"\"}}var _e={};function ar(e){{var a=pe();if(!a){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(a=`\n\nCheck the top-level render call using <`+t+\">.\")}return a}}function Ne(e,a){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=ar(a);if(_e[t])return;_e[t]=!0;var c=\"\";e&&e._owner&&e._owner!==V.current&&(c=\" It was passed a child from \"+_(e._owner.type)+\".\"),v(e),h('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,c),v(null)}}function ye(e,a){{if(typeof e!=\"object\")return;if($(e))for(var t=0;t\",o=\" Did you accidentally export a JSX literal instead of a component?\"):d=typeof e,h(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",d,o)}var m=rr(e,a,t,i,l);if(m==null)return m;if(s){var b=a.children;if(b!==void 0)if(c)if($(b)){for(var E=0;E{\"use strict\";je.exports=Ee()});var yr={};hr(yr,{default:()=>Nr,frontmatter:()=>pr});var n=fr(Ue()),pr={title:\"@upstash/ratelimit\",description:\"Ratelimiting library for serverless and edge runtimes. Built on top of Upstash Redis.\",date:\"2022-06-06\",url:\"https://upstash.com/ratelimit\",repository:\"upstash/ratelimit\",published:!0};function Re(u){let r=Object.assign({p:\"p\",code:\"code\",ul:\"ul\",li:\"li\",div:\"div\",pre:\"pre\",span:\"span\"},u.components);return(0,n.jsxDEV)(n.Fragment,{children:[(0,n.jsxDEV)(r.p,{children:\"In today's digital age, serverless computing has become increasingly popular due to its scalability and cost-efficiency. One of the challenges of serverless computing is to manage resources efficiently, and one critical aspect of this is rate limiting. Rate limiting is a technique that limits the number of requests a client can make to a server over a given period. This technique can prevent abuse, improve performance, and reduce costs. One npm package that helps implement rate limiting for serverless applications is @upstash/ratelimit, built on top of Upstash Redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:\"Upstash is a managed Redis-compatible database service designed for serverless applications.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[(0,n.jsxDEV)(r.code,{children:\"@upstash/ratelimit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:1},this),\" is an npm package that provides serverless rate limiting using Upstash Redis. The package offers a simple API that can be used to limit the number of requests a client can make within a given time frame. The following algorithms are supported:\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.ul,{children:[`\n`,(0,n.jsxDEV)(r.li,{children:\"Fixed window\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.li,{children:\"Sliding window\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.li,{children:\"Leaky bucket\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:19,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[\"Using \",(0,n.jsxDEV)(r.code,{children:\"@upstash/ratelimit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:22,columnNumber:7},this),\" is straightforward. First, you need to install the package using npm:\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:22,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(r.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(r.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"npm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:143},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"install\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:180},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:223},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"@upstash/ratelimit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:260},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:314},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"@upstash/redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:351},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:24,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:\"Then, you can use it in your application:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:27,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(r.pre,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(r.code,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" { Ratelimit } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:146},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:197},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:237},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"@upstash/ratelimit\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:274},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" { Redis } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:2,columnNumber:62},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:2,columnNumber:109},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:2,columnNumber:149},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"@upstash/redis\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:2,columnNumber:186},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:61},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"ratelimit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:98},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:143},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:180},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:217},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"new\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:254},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:293},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"Ratelimit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:330},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:375},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" redis: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"new\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:5,columnNumber:67},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:5,columnNumber:106},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"Redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:5,columnNumber:143},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:5,columnNumber:184},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" url: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:6,columnNumber:69},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:6,columnNumber:117},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" token: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:7,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:7,columnNumber:71},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" }),\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" limiter: Ratelimit.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:9,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"slidingWindow\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:9,columnNumber:79},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:9,columnNumber:128},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"10\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:9,columnNumber:165},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:9,columnNumber:203},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"10s\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:9,columnNumber:241},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"),\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:9,columnNumber:292},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" analytics: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:10,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"true\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:10,columnNumber:71},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:11,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#6A737D\"},children:\"// Check if the client has exceeded the rate limit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:14,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" { \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:61},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"success\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:100},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:143},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:182},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:219},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:256},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" ratelimit.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:297},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"limit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:344},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:385},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"identifier\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:422},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\")\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:480},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:15,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:29,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[\"In the code above, we initialize Upstash with our Upstash Redis credentials and define our rate limiting rules. We then call the \",(0,n.jsxDEV)(r.code,{children:\"limit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:47,columnNumber:130},this),\" function, passing the identifier. The function returns a Promise that resolves with \",(0,n.jsxDEV)(r.code,{children:\"success\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:47,columnNumber:222},this),\" and some other useful data.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:47,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[(0,n.jsxDEV)(r.code,{children:\"@upstash/ratelimit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:49,columnNumber:1},this),\" is a useful npm package for serverless rate limiting that simplifies the process of implementing rate limiting for serverless applications. The package is built on top of Upstash Redis, which provides a complete solution for serverless applications. With \",(0,n.jsxDEV)(r.code,{children:\"@upstash/ratelimit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:49,columnNumber:277},this),\", serverless developers can easily implement rate limiting, which can help prevent abuse, improve performance, and reduce costs.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:49,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\",lineNumber:1,columnNumber:1},this)}function _r(u={}){let{wrapper:r}=u.components||{};return r?(0,n.jsxDEV)(r,Object.assign({},u,{children:(0,n.jsxDEV)(Re,u,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-a6c12280-860e-43f1-8b4c-80ac401a77dc.mdx\"},this):Re(u)}var Nr=_r;return br(yr);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-ratelimit.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-ratelimit.mdx", - "sourceFileName": "upstash-ratelimit.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-ratelimit" - }, - "type": "Project", - "path": "/projects/upstash-ratelimit", - "slug": "upstash-ratelimit" -} \ No newline at end of file diff --git a/.contentlayer/generated/Project/projects__upstash-react-ui.mdx.json b/.contentlayer/generated/Project/projects__upstash-react-ui.mdx.json deleted file mode 100644 index 5b7dd26..0000000 --- a/.contentlayer/generated/Project/projects__upstash-react-ui.mdx.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "published": true, - "title": "React.js CLI", - "description": "A CLI React component to interact with Upstash Redis databases.", - "date": "2023-02-05T00:00:00.000Z", - "url": "https://upstash.com", - "repository": "upstash/react-ui", - "body": { - "raw": "\n\n`@upstash/react-ui` is powering the CLI in your browser on [console.upstash.com](https://comsole.upstash.com). It allows you to interact with your Upstash Redis database in a simple and intuitive way.", - "code": "var Component=(()=>{var sr=Object.create;var A=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var lr=Object.getOwnPropertyNames;var fr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(c,u)=>()=>(u||c((u={exports:{}}).exports,u),u.exports),vr=(c,u)=>{for(var b in u)A(c,b,{get:u[b],enumerable:!0})},_e=(c,u,b,E)=>{if(u&&typeof u==\"object\"||typeof u==\"function\")for(let g of lr(u))!dr.call(c,g)&&g!==b&&A(c,g,{get:()=>u[g],enumerable:!(E=cr(u,g))||E.enumerable});return c};var pr=(c,u,b)=>(b=c!=null?sr(fr(c)):{},_e(u||!c||!c.__esModule?A(b,\"default\",{value:c,enumerable:!0}):b,c)),br=c=>_e(A({},\"__esModule\",{value:!0}),c);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var c=Te(),u=Symbol.for(\"react.element\"),b=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),g=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),P=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),N=Symbol.for(\"react.suspense_list\"),j=Symbol.for(\"react.memo\"),Y=Symbol.for(\"react.lazy\"),je=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Se=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[Se];return typeof r==\"function\"?r:null}var _=c.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&f>=0&&a[l]!==v[f];)f--;for(;l>=1&&f>=0;l--,f--)if(a[l]!==v[f]){if(l!==1||f!==1)do if(l--,f--,f<0||a[l]!==v[f]){var p=`\n`+a[l].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&x.set(e,p),p}while(l>=1&&f>=0);break}}}finally{W=!1,$.current=s,We(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&x.set(e,ye),ye}function Me(e,r,t){return se(e,!1)}function Ve(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function k(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Ve(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case N:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case P:return Me(e.render);case j:return k(e.type,r,t);case Y:{var n=e,i=n._payload,s=n._init;try{return k(s(i),r,t)}catch{}}}return\"\"}var D=Object.prototype.hasOwnProperty,ce={},le=_.ReactDebugCurrentFrame;function F(e){if(e){var r=e._owner,t=k(e.type,e._source,r?r.type:null);le.setExtraStackFrame(t)}else le.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var s=Function.call.bind(D);for(var o in e)if(s(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(l){a=l}a&&!(a instanceof Error)&&(F(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),F(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,F(i),d(\"Failed %s type: %s\",t,a.message),F(null))}}}var Ge=Array.isArray;function L(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return fe(e),!1}catch{return!0}}function fe(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),fe(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,M;M={};function Ke(e){if(D.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(D.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=h(O.current.type);M[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',h(O.current.type),e.ref),M[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,s,o){var a={$$typeof:u,type:e,key:r,ref:t,props:o,_owner:s};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var s,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(s in r)D.call(r,s)&&!Xe.hasOwnProperty(s)&&(o[s]=r[s]);if(e&&e.defaultProps){var l=e.defaultProps;for(s in l)o[s]===void 0&&(o[s]=l[s])}if(a||v){var f=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,f),v&&Qe(o,f)}return er(e,a,v,i,n,O.current,o)}}var V=_.ReactCurrentOwner,be=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=k(e.type,e._source,r?r.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===u}function he(){{if(V.current){var e=h(V.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var me={};function nr(e){{var r=he();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function ge(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(me[t])return;me[t]=!0;var n=\"\";e&&e._owner&&e._owner!==V.current&&(n=\" It was passed a child from \"+h(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(L(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):l=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",l,a)}var f=rr(e,r,t,i,s);if(f==null)return f;if(o){var p=r.children;if(p!==void 0)if(n)if(L(p)){for(var T=0;T{\"use strict\";we.exports=Ce()});var Er={};vr(Er,{default:()=>gr,frontmatter:()=>hr});var C=pr(Oe()),hr={title:\"React.js CLI\",description:\"A CLI React component to interact with Upstash Redis databases.\",date:\"2023-02-05\",url:\"https://upstash.com\",repository:\"upstash/react-ui\",published:!0};function Pe(c){let u=Object.assign({p:\"p\",code:\"code\",a:\"a\"},c.components);return(0,C.jsxDEV)(u.p,{children:[(0,C.jsxDEV)(u.code,{children:\"@upstash/react-ui\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d18f6cb-fd44-423b-9018-b550a3b2d423.mdx\",lineNumber:12,columnNumber:1},this),\" is powering the CLI in your browser on \",(0,C.jsxDEV)(u.a,{href:\"https://comsole.upstash.com\",children:\"console.upstash.com\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d18f6cb-fd44-423b-9018-b550a3b2d423.mdx\",lineNumber:12,columnNumber:60},this),\". It allows you to interact with your Upstash Redis database in a simple and intuitive way.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d18f6cb-fd44-423b-9018-b550a3b2d423.mdx\",lineNumber:12,columnNumber:1},this)}function mr(c={}){let{wrapper:u}=c.components||{};return u?(0,C.jsxDEV)(u,Object.assign({},c,{children:(0,C.jsxDEV)(Pe,c,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d18f6cb-fd44-423b-9018-b550a3b2d423.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-8d18f6cb-fd44-423b-9018-b550a3b2d423.mdx\"},this):Pe(c)}var gr=mr;return br(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-react-ui.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-react-ui.mdx", - "sourceFileName": "upstash-react-ui.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-react-ui" - }, - "type": "Project", - "path": "/projects/upstash-react-ui", - "slug": "upstash-react-ui" -} \ No newline at end of file diff --git a/.contentlayer/generated/Project/projects__upstash-redis.mdx.json b/.contentlayer/generated/Project/projects__upstash-redis.mdx.json deleted file mode 100644 index 5933cbe..0000000 --- a/.contentlayer/generated/Project/projects__upstash-redis.mdx.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "published": true, - "title": "@upstash/redis", - "description": "A fully typed Redis client built for Upstash Redis and HTTP, perfect for serverless and edge runtimes.", - "date": "2022-03-14T00:00:00.000Z", - "url": "https://upstash.com/redis", - "repository": "upstash/upstash-redis", - "body": { - "raw": "\nUpstash is a cloud-based service provider that offers a Redis-compatible service. In addition to that, we have also created an npm package called `@upstash/redis`. This package provides a strongly typed Redis client that uses HTTP instead of TCP to communicate with the database, making it perfect for serverless and edge runtimes.\n\nRedis is a popular open-source, in-memory data structure store that can be used as a database, cache, and message broker. It is commonly used for web applications that require fast data access and manipulation. Redis clients communicate with Redis servers using the Redis protocol over TCP/IP.\n\nHowever, in some cases, TCP is not available. For example, edge functions run on cloud platforms, which often block TCP connections for various reasons. This is where `@upstash/redis` comes in handy. Instead of using TCP, it uses HTTP to communicate with the servers.\n\nThe package is designed to be easy to use and provides a simple API for Redis commands. It also includes support for Redis transactions and Lua scripting. It is written in TypeScript, which provides static typing and better code completion in modern editors.\n\nOne of the main benefits of using `@upstash/redis` is that it is strongly typed. This means that you get better type checking and error handling in your code. Additionally, the package is designed to be lightweight and optimized for performance. This makes it an excellent choice for applications that require fast data access and manipulation.\n\n```ts\nimport { Redis } from \"@upstash/redis\"\n\nconst redis = new Redis({\n url: ,\n token: ,\n})\n\n// string\nawait redis.set('key', 'value');\nlet data = await redis.get('key');\nconsole.log(data)\n\nawait redis.set('key2', 'value2', {ex: 1});\n\n// sorted set\nawait redis.zadd('scores', { score: 1, member: 'team1' })\ndata = await redis.zrange('scores', 0, 100 )\nconsole.log(data)\n\n// list\nawait redis.lpush('elements', 'magnesium')\ndata = await redis.lrange('elements', 0, 100 )\nconsole.log(data)\n```", - "code": "var Component=(()=>{var ir=Object.create;var O=Object.defineProperty;var lr=Object.getOwnPropertyDescriptor;var dr=Object.getOwnPropertyNames;var ur=Object.getPrototypeOf,mr=Object.prototype.hasOwnProperty;var z=(d,r)=>()=>(r||d((r={exports:{}}).exports,r),r.exports),br=(d,r)=>{for(var _ in r)O(d,_,{get:r[_],enumerable:!0})},xe=(d,r,_,k)=>{if(r&&typeof r==\"object\"||typeof r==\"function\")for(let y of dr(r))!mr.call(d,y)&&y!==_&&O(d,y,{get:()=>r[y],enumerable:!(k=lr(r,y))||k.enumerable});return d};var hr=(d,r,_)=>(_=d!=null?ir(ur(d)):{},xe(r||!d||!d.__esModule?O(_,\"default\",{value:d,enumerable:!0}):_,d)),fr=d=>xe(O({},\"__esModule\",{value:!0}),d);var Ee=z((xr,ge)=>{ge.exports=React});var ve=z(q=>{\"use strict\";(function(){\"use strict\";var d=Ee(),r=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),k=Symbol.for(\"react.fragment\"),y=Symbol.for(\"react.strict_mode\"),G=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),X=Symbol.for(\"react.context\"),F=Symbol.for(\"react.forward_ref\"),D=Symbol.for(\"react.suspense\"),A=Symbol.for(\"react.suspense_list\"),R=Symbol.for(\"react.memo\"),B=Symbol.for(\"react.lazy\"),Re=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Te=\"@@iterator\";function Ce(e){if(e===null||typeof e!=\"object\")return null;var t=J&&e[J]||e[Te];return typeof t==\"function\"?t:null}var g=d.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function b(e){{for(var t=arguments.length,a=new Array(t>1?t-1:0),o=1;o=1&&m>=0&&c[u]!==h[m];)m--;for(;u>=1&&m>=0;u--,m--)if(c[u]!==h[m]){if(u!==1||m!==1)do if(u--,m--,m<0||c[u]!==h[m]){var f=`\n`+c[u].replace(\" at new \",\" at \");return e.displayName&&f.includes(\"\")&&(f=f.replace(\"\",e.displayName)),typeof e==\"function\"&&C.set(e,f),f}while(u>=1&&m>=0);break}}}finally{$=!1,I.current=l,$e(),Error.prepareStackTrace=i}var v=e?e.displayName||e.name:\"\",ke=v?T(v):\"\";return typeof e==\"function\"&&C.set(e,ke),ke}function Me(e,t,a){return ie(e,!1)}function Ve(e){var t=e.prototype;return!!(t&&t.isReactComponent)}function w(e,t,a){if(e==null)return\"\";if(typeof e==\"function\")return ie(e,Ve(e));if(typeof e==\"string\")return T(e);switch(e){case D:return T(\"Suspense\");case A:return T(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case F:return Me(e.render);case R:return w(e.type,t,a);case B:{var o=e,i=o._payload,l=o._init;try{return w(l(i),t,a)}catch{}}}return\"\"}var P=Object.prototype.hasOwnProperty,le={},de=g.ReactDebugCurrentFrame;function S(e){if(e){var t=e._owner,a=w(e.type,e._source,t?t.type:null);de.setExtraStackFrame(a)}else de.setExtraStackFrame(null)}function Le(e,t,a,o,i){{var l=Function.call.bind(P);for(var s in e)if(l(e,s)){var c=void 0;try{if(typeof e[s]!=\"function\"){var h=Error((o||\"React class\")+\": \"+a+\" type `\"+s+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[s]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw h.name=\"Invariant Violation\",h}c=e[s](t,s,o,a,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(u){c=u}c&&!(c instanceof Error)&&(S(i),b(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",o||\"React class\",a,s,typeof c),S(null)),c instanceof Error&&!(c.message in le)&&(le[c.message]=!0,S(i),b(\"Failed %s type: %s\",a,c.message),S(null))}}}var He=Array.isArray;function W(e){return He(e)}function ze(e){{var t=typeof Symbol==\"function\"&&Symbol.toStringTag,a=t&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return a}}function qe(e){try{return ue(e),!1}catch{return!0}}function ue(e){return\"\"+e}function me(e){if(qe(e))return b(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",ze(e)),ue(e)}var U=g.ReactCurrentOwner,Ge={key:!0,ref:!0,__self:!0,__source:!0},be,he,M;M={};function Ke(e){if(P.call(e,\"ref\")){var t=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(t&&t.isReactWarning)return!1}return e.ref!==void 0}function Xe(e){if(P.call(e,\"key\")){var t=Object.getOwnPropertyDescriptor(e,\"key\").get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function Je(e,t){if(typeof e.ref==\"string\"&&U.current&&t&&U.current.stateNode!==t){var a=p(U.current.type);M[a]||(b('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(U.current.type),e.ref),M[a]=!0)}}function Ze(e,t){{var a=function(){be||(be=!0,b(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",t))};a.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:a,configurable:!0})}}function Qe(e,t){{var a=function(){he||(he=!0,b(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",t))};a.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:a,configurable:!0})}}var er=function(e,t,a,o,i,l,s){var c={$$typeof:r,type:e,key:t,ref:a,props:s,_owner:l};return c._store={},Object.defineProperty(c._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(c,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(c,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(c.props),Object.freeze(c)),c};function rr(e,t,a,o,i){{var l,s={},c=null,h=null;a!==void 0&&(me(a),c=\"\"+a),Xe(t)&&(me(t.key),c=\"\"+t.key),Ke(t)&&(h=t.ref,Je(t,i));for(l in t)P.call(t,l)&&!Ge.hasOwnProperty(l)&&(s[l]=t[l]);if(e&&e.defaultProps){var u=e.defaultProps;for(l in u)s[l]===void 0&&(s[l]=u[l])}if(c||h){var m=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;c&&Ze(s,m),h&&Qe(s,m)}return er(e,c,h,i,o,U.current,s)}}var V=g.ReactCurrentOwner,fe=g.ReactDebugCurrentFrame;function E(e){if(e){var t=e._owner,a=w(e.type,e._source,t?t.type:null);fe.setExtraStackFrame(a)}else fe.setExtraStackFrame(null)}var L;L=!1;function H(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===r}function _e(){{if(V.current){var e=p(V.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function nr(e){{if(e!==void 0){var t=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),a=e.lineNumber;return`\n\nCheck your code at `+t+\":\"+a+\".\"}return\"\"}}var pe={};function tr(e){{var t=_e();if(!t){var a=typeof e==\"string\"?e:e.displayName||e.name;a&&(t=`\n\nCheck the top-level render call using <`+a+\">.\")}return t}}function Ne(e,t){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var a=tr(t);if(pe[a])return;pe[a]=!0;var o=\"\";e&&e._owner&&e._owner!==V.current&&(o=\" It was passed a child from \"+p(e._owner.type)+\".\"),E(e),b('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',a,o),E(null)}}function ye(e,t){{if(typeof e!=\"object\")return;if(W(e))for(var a=0;a\",c=\" Did you accidentally export a JSX literal instead of a component?\"):u=typeof e,b(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",u,c)}var m=rr(e,t,a,i,l);if(m==null)return m;if(s){var f=t.children;if(f!==void 0)if(o)if(W(f)){for(var v=0;v{\"use strict\";je.exports=ve()});var yr={};br(yr,{default:()=>Nr,frontmatter:()=>_r});var n=hr(Ue()),_r={title:\"@upstash/redis\",description:\"A fully typed Redis client built for Upstash Redis and HTTP, perfect for serverless and edge runtimes.\",date:\"2022-03-14\",url:\"https://upstash.com/redis\",repository:\"upstash/upstash-redis\",published:!0};function Fe(d){let r=Object.assign({p:\"p\",code:\"code\",div:\"div\",pre:\"pre\",span:\"span\"},d.components);return(0,n.jsxDEV)(n.Fragment,{children:[(0,n.jsxDEV)(r.p,{children:[\"Upstash is a cloud-based service provider that offers a Redis-compatible service. In addition to that, we have also created an npm package called \",(0,n.jsxDEV)(r.code,{children:\"@upstash/redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:11,columnNumber:147},this),\". This package provides a strongly typed Redis client that uses HTTP instead of TCP to communicate with the database, making it perfect for serverless and edge runtimes.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:\"Redis is a popular open-source, in-memory data structure store that can be used as a database, cache, and message broker. It is commonly used for web applications that require fast data access and manipulation. Redis clients communicate with Redis servers using the Redis protocol over TCP/IP.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[\"However, in some cases, TCP is not available. For example, edge functions run on cloud platforms, which often block TCP connections for various reasons. This is where \",(0,n.jsxDEV)(r.code,{children:\"@upstash/redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:15,columnNumber:168},this),\" comes in handy. Instead of using TCP, it uses HTTP to communicate with the servers.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:\"The package is designed to be easy to use and provides a simple API for Redis commands. It also includes support for Redis transactions and Lua scripting. It is written in TypeScript, which provides static typing and better code completion in modern editors.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[\"One of the main benefits of using \",(0,n.jsxDEV)(r.code,{children:\"@upstash/redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:19,columnNumber:35},this),\" is that it is strongly typed. This means that you get better type checking and error handling in your code. Additionally, the package is designed to be lightweight and optimized for performance. This makes it an excellent choice for applications that require fast data access and manipulation.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(r.pre,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(r.code,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" { Redis } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:1,columnNumber:146},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:1,columnNumber:193},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:1,columnNumber:233},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"@upstash/redis\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:1,columnNumber:270},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:61},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:98},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:139},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:176},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:213},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"new\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:250},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:289},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"Redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:326},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:367},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" url: <\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"UPSTASH_REDIS_REST_URL\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:4,columnNumber:67},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\">,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:4,columnNumber:125},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" token: <\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"UPSTASH_REDIS_REST_TOKEN\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:5,columnNumber:69},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\">,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:5,columnNumber:129},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#6A737D\"},children:\"// string\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:9,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:9,columnNumber:61},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"set\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:9,columnNumber:104},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:9,columnNumber:143},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'key'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:9,columnNumber:180},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:9,columnNumber:229},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'value'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:9,columnNumber:267},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\");\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:9,columnNumber:318},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"let\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" data \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:59},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:101},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:138},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:175},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:216},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"get\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:259},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:298},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'key'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:335},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\");\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:384},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"console.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:11,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"log\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:11,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(data)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:11,columnNumber:103},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:61},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"set\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:104},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:143},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'key2'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:180},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:230},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'value2'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:268},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", {ex: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:320},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:363},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"});\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:400},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#6A737D\"},children:\"// sorted set\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:15,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:61},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"zadd\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:104},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:144},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'scores'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:181},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", { score: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:233},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:280},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", member: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:317},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'team1'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:363},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" })\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:414},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"data \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:61},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:98},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:135},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:176},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"zrange\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:219},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:261},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'scores'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:298},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:350},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"0\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:388},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:425},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"100\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:463},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" )\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:502},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"console.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:18,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"log\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:18,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(data)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:18,columnNumber:103},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#6A737D\"},children:\"// list\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:20,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:61},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"lpush\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:104},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:145},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'elements'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:182},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:236},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'magnesium'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:274},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\")\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:329},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"data \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:61},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:98},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:135},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:176},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"lrange\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:219},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:261},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:\"'elements'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:298},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:352},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"0\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:390},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:427},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:\"100\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:465},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" )\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:504},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:22,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"console.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:23,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"log\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:23,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"(data)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:23,columnNumber:103},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:23,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:21,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\",lineNumber:1,columnNumber:1},this)}function pr(d={}){let{wrapper:r}=d.components||{};return r?(0,n.jsxDEV)(r,Object.assign({},d,{children:(0,n.jsxDEV)(Fe,d,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4020c87-71eb-44e3-b2ae-09bf6c853639.mdx\"},this):Fe(d)}var Nr=pr;return fr(yr);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-redis.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-redis.mdx", - "sourceFileName": "upstash-redis.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-redis" - }, - "type": "Project", - "path": "/projects/upstash-redis", - "slug": "upstash-redis" -} \ No newline at end of file diff --git a/.contentlayer/generated/Project/projects__upstash-web-analytics.mdx.json b/.contentlayer/generated/Project/projects__upstash-web-analytics.mdx.json deleted file mode 100644 index d0fd40b..0000000 --- a/.contentlayer/generated/Project/projects__upstash-web-analytics.mdx.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "published": true, - "title": "Upstash Web Analytics", - "description": "A library to record and analyse web page traffic and user behaviour", - "repository": "upstash/web-analytics", - "body": { - "raw": "\nComing soon", - "code": "var Component=(()=>{var sr=Object.create;var A=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var fr=Object.getOwnPropertyNames;var lr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,c)=>()=>(c||s((c={exports:{}}).exports,c),c.exports),vr=(s,c)=>{for(var b in c)A(s,b,{get:c[b],enumerable:!0})},_e=(s,c,b,E)=>{if(c&&typeof c==\"object\"||typeof c==\"function\")for(let m of fr(c))!dr.call(s,m)&&m!==b&&A(s,m,{get:()=>c[m],enumerable:!(E=cr(c,m))||E.enumerable});return s};var pr=(s,c,b)=>(b=s!=null?sr(lr(s)):{},_e(c||!s||!s.__esModule?A(b,\"default\",{value:s,enumerable:!0}):b,s)),br=s=>_e(A({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),c=Symbol.for(\"react.element\"),b=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),O=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),W=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),Y=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n=1&&l>=0&&a[f]!==v[l];)l--;for(;f>=1&&l>=0;f--,l--)if(a[f]!==v[l]){if(f!==1||l!==1)do if(f--,l--,l<0||a[f]!==v[l]){var p=`\n`+a[f].replace(\" at new \",\" at \");return e.displayName&&p.includes(\"\")&&(p=p.replace(\"\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(f>=1&&l>=0);break}}}finally{M=!1,$.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case W:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case O:return Ue(e.render);case P:return x(e.type,r,t);case Y:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,ce={},fe=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){a=f}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return le(e),!1}catch{return!0}}function le(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),le(e)}var w=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&w.current&&r&&w.current.stateNode!==r){var t=h(w.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',h(w.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:c,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var f=e.defaultProps;for(u in f)o[u]===void 0&&(o[u]=f[u])}if(a||v){var l=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,l),v&&Qe(o,l)}return er(e,a,v,i,n,w.current,o)}}var L=_.ReactCurrentOwner,be=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===c}function he(){{if(L.current){var e=h(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=he();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+h(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t\",a=\" Did you accidentally export a JSX literal instead of a component?\"):f=typeof e,d(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",f,a)}var l=rr(e,r,t,i,u);if(l==null)return l;if(o){var p=r.children;if(p!==void 0)if(n)if(V(p)){for(var T=0;T{\"use strict\";we.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>hr});var F=pr(Oe()),hr={title:\"Upstash Web Analytics\",description:\"A library to record and analyse web page traffic and user behaviour\",repository:\"upstash/web-analytics\",published:!0};function Pe(s){let c=Object.assign({p:\"p\"},s.components);return(0,F.jsxDEV)(c.p,{children:\"Coming soon\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-5fa4787f-baae-4c3e-bcce-87c94c71b8e1.mdx\",lineNumber:8,columnNumber:1},this)}function gr(s={}){let{wrapper:c}=s.components||{};return c?(0,F.jsxDEV)(c,Object.assign({},s,{children:(0,F.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-5fa4787f-baae-4c3e-bcce-87c94c71b8e1.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-5fa4787f-baae-4c3e-bcce-87c94c71b8e1.mdx\"},this):Pe(s)}var mr=gr;return br(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;" - }, - "_id": "projects/upstash-web-analytics.mdx", - "_raw": { - "sourceFilePath": "projects/upstash-web-analytics.mdx", - "sourceFileName": "upstash-web-analytics.mdx", - "sourceFileDir": "projects", - "contentType": "mdx", - "flattenedPath": "projects/upstash-web-analytics" - }, - "type": "Project", - "path": "/projects/upstash-web-analytics", - "slug": "upstash-web-analytics" -} \ No newline at end of file diff --git a/.contentlayer/generated/index.d.ts b/.contentlayer/generated/index.d.ts deleted file mode 100644 index 5b3de12..0000000 --- a/.contentlayer/generated/index.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -// NOTE This file is auto-generated by Contentlayer - -import { Page, Project, DocumentTypes } from "./types"; - -export * from "./types"; - -export declare const allPages: Page[]; -export declare const allProjects: Project[]; - -export declare const allDocuments: DocumentTypes[]; diff --git a/.contentlayer/generated/index.mjs b/.contentlayer/generated/index.mjs deleted file mode 100644 index 301efc4..0000000 --- a/.contentlayer/generated/index.mjs +++ /dev/null @@ -1,12 +0,0 @@ -// NOTE This file is auto-generated by Contentlayer - -export { isType } from "contentlayer/client"; - -// NOTE During development Contentlayer imports from `.mjs` files to improve HMR speeds. -// During (production) builds Contentlayer it imports from `.json` files to improve build performance. -import allPages from "./Page/_index.json" assert { type: "json" }; -import allProjects from "./Project/_index.json" assert { type: "json" }; - -export { allPages, allProjects }; - -export const allDocuments = [...allPages, ...allProjects]; diff --git a/.contentlayer/generated/types.d.ts b/.contentlayer/generated/types.d.ts deleted file mode 100644 index e718afa..0000000 --- a/.contentlayer/generated/types.d.ts +++ /dev/null @@ -1,78 +0,0 @@ -// NOTE This file is auto-generated by Contentlayer - -import type { - Markdown, - MDX, - ImageFieldData, - IsoDateTimeString, -} from "contentlayer/core"; -import * as Local from "contentlayer/source-files"; - -export { isType } from "contentlayer/client"; - -export type { Markdown, MDX, ImageFieldData, IsoDateTimeString }; - -/** Document types */ -export type Page = { - /** File path relative to `contentDirPath` */ - _id: string; - _raw: Local.RawDocumentData; - type: "Page"; - title: string; - description?: string | undefined; - /** MDX file body */ - body: MDX; - path: string; - slug: string; -}; - -export type Project = { - /** File path relative to `contentDirPath` */ - _id: string; - _raw: Local.RawDocumentData; - type: "Project"; - published?: boolean | undefined; - title: string; - description: string; - date?: IsoDateTimeString | undefined; - url?: string | undefined; - repository?: string | undefined; - /** MDX file body */ - body: MDX; - path: string; - slug: string; -}; - -/** Nested types */ - -/** Helper types */ - -export type AllTypes = DocumentTypes | NestedTypes; -export type AllTypeNames = DocumentTypeNames | NestedTypeNames; - -export type DocumentTypes = Page | Project; -export type DocumentTypeNames = "Page" | "Project"; - -export type NestedTypes = never; -export type NestedTypeNames = never; - -export interface ContentlayerGenTypes { - documentTypes: DocumentTypes; - documentTypeMap: DocumentTypeMap; - documentTypeNames: DocumentTypeNames; - nestedTypes: NestedTypes; - nestedTypeMap: NestedTypeMap; - nestedTypeNames: NestedTypeNames; - allTypeNames: AllTypeNames; -} - -declare global { - interface ContentlayerGen extends ContentlayerGenTypes {} -} - -export type DocumentTypeMap = { - Page: Page; - Project: Project; -}; - -export type NestedTypeMap = {}; diff --git a/.contentlayer/package.json b/.contentlayer/package.json deleted file mode 100644 index 8f15644..0000000 --- a/.contentlayer/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "dot-contentlayer", - "description": "This package is auto-generated by Contentlayer", - "version": "0.0.0-AAEZAM7W", - "exports": { - "./generated": { - "import": "./generated/index.mjs" - } - }, - "typesVersions": { - "*": { - "generated": [ - "./generated" - ] - } - } -} \ No newline at end of file diff --git a/.gitignore b/.gitignore index c87c9b3..ed854fa 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,4 @@ yarn-error.log* # typescript *.tsbuildinfo next-env.d.ts + diff --git a/README.md b/README.md index a81e7a6..9c4f246 100644 --- a/README.md +++ b/README.md @@ -1,39 +1,8 @@ -This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). +
+

chronark.com

+
My stuff
+
-## Getting Started +
-First, run the development server: - -```bash -npm run dev -# or -yarn dev -# or -pnpm dev -``` - -Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. - -You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. - -[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.ts`. - -The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages. - -This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. - -## Learn More - -To learn more about Next.js, take a look at the following resources: - -- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. -- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. - -You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! - -## Deploy on Vercel - -The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. - -Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. -# chronark.com +My personal website, built with [Next.js](https://nextjs.org/), [Tailwind CSS](https://tailwindcss.com/), and deployed to [Vercel](https://vercel.com/). \ No newline at end of file diff --git a/app/layout.tsx b/app/layout.tsx index d44b028..aa767f4 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,5 +1,6 @@ import "../global.css"; -import { Inter, Hanken_Grotesk } from "@next/font/google"; +import { Inter } from "@next/font/google"; +import LocalFont from "@next/font/local"; import { Metadata } from "next"; export const metadata: Metadata = { @@ -48,10 +49,9 @@ const inter = Inter({ variable: "--font-inter", }); -const grotesk = Hanken_Grotesk({ - subsets: ["latin"], - variable: "--font-grotesk", - fallback: ["sans-serif"], +const calSans = LocalFont({ + src: "../public/fonts/CalSans-SemiBold.ttf", + variable: "--font-calsans", }); export default function RootLayout({ @@ -60,7 +60,7 @@ export default function RootLayout({ children: React.ReactNode; }) { return ( - + +
-

- CHRONARK + +

+ chronark

- Hi, i'm building serverless and open source solutions at{" "} + Hi, my name is Andreas, I'm building serverless and open source + solutions at{" "}
- and working on my startup{" "} + and working on{" "} = ({ project }) => {
-

+

{project.title}

diff --git a/app/projects/[slug]/page.tsx b/app/projects/[slug]/page.tsx index 7f5d541..48c8b4e 100644 --- a/app/projects/[slug]/page.tsx +++ b/app/projects/[slug]/page.tsx @@ -28,15 +28,13 @@ export default async function PostPage({ params }: Props) { } return ( -

+
-
-
- -
-
+
+ +
); } diff --git a/app/projects/page.tsx b/app/projects/page.tsx index 1a4442a..193f52b 100644 --- a/app/projects/page.tsx +++ b/app/projects/page.tsx @@ -56,7 +56,7 @@ export default function ProjectsPage() {

{featured.title}

diff --git a/content/projects/chronark.com.mdx b/content/projects/chronark.com.mdx new file mode 100644 index 0000000..6844368 --- /dev/null +++ b/content/projects/chronark.com.mdx @@ -0,0 +1,14 @@ +--- +title: chronark.com +description: The website you're looking at +repository: chronark/chronark.com +url: https://chronark.com +date: 2023-03-28 +published: true +--- + + +Like so many others, I just wanted a place to collect some projects I worked on. Maybe I'll add a blog, maybe I won't. I'm not sure yet. + +If you like the design, check out the Repository on GitHub. + diff --git a/content/projects/planetfall.mdx b/content/projects/planetfall.mdx index c86478d..4803173 100644 --- a/content/projects/planetfall.mdx +++ b/content/projects/planetfall.mdx @@ -8,5 +8,8 @@ published: true --- +[![](/planetfall.png)](https://planetfall.io) + Planetfall is a SaaS platform that provides global latency monitoring and synthetic monitoring for APIs. With over 60 regions to monitor from, customers can gain insights into the true performance of their API by checking latency from around the world. -Planetfall offers custom timeouts, threshold notifications, and real-time alerts for potential performance issues. Additionally, customers can create custom status pages to share with their customers, which can display availability and latency for every region. Planetfall offers a free tier that includes 100k checks per month and scales as customers grow. Overall, Planetfall helps customers stay in control of their API's performance, improve communication with their customers, and build trust. \ No newline at end of file +Planetfall offers custom timeouts, threshold notifications, and real-time alerts for potential performance issues. Additionally, customers can create custom status pages to share with their customers, which can display availability and latency for every region. Planetfall offers a free tier that includes 100k checks per month and scales as customers grow. Overall, Planetfall helps customers stay in control of their API's performance, improve communication with their customers, and build trust. + diff --git a/package.json b/package.json index c0b97bb..b525b7b 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "@types/react-dom": "18.0.11", "@upstash/redis": "^1.20.1", "@vercel/analytics": "^0.1.10", + "cal-sans": "^1.0.1", "contentlayer": "^0.3.0", "framer-motion": "^10.9.1", "lucide-react": "^0.127.0", diff --git a/pages/api/incr.ts b/pages/api/incr.ts index 8a4b505..d427401 100644 --- a/pages/api/incr.ts +++ b/pages/api/incr.ts @@ -27,7 +27,7 @@ export default async function incr(req: NextRequest): Promise { if (identifier) { // deduplicate the ip for each slug const isNew = await redis.set( - ["deduplicate", identifier,slug].join(":"), + ["deduplicate", identifier, slug].join(":"), true, { nx: true, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 77c0a3a..165b30f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,6 +12,7 @@ specifiers: '@upstash/redis': ^1.20.1 '@vercel/analytics': ^0.1.10 autoprefixer: ^10.4.13 + cal-sans: ^1.0.1 contentlayer: ^0.3.0 framer-motion: ^10.9.1 lucide-react: ^0.127.0 @@ -40,6 +41,7 @@ dependencies: '@types/react-dom': 18.0.11 '@upstash/redis': 1.20.1 '@vercel/analytics': 0.1.11_react@18.2.0 + cal-sans: 1.0.1 contentlayer: 0.3.0_e24fifms7lyt2dudodzemqbuwu framer-motion: 10.9.1_biqbaboplfbrettd7655fr4n2y lucide-react: 0.127.0_react@18.2.0 @@ -1233,6 +1235,10 @@ packages: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: false + /cal-sans/1.0.1: + resolution: {integrity: sha512-XwN3/7jez8WmFVcNnNqO2K9lh133KiIcURCyGFnSM+ZmNZ8zIcOTNfr3SpenLAkRceYsq+fQNX/PL4C1rIkEPQ==} + dev: false + /camel-case/4.1.2: resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} dependencies: diff --git a/public/fonts/CalSans-SemiBold.ttf b/public/fonts/CalSans-SemiBold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4a2950a0451f66f8d3d77e466ce2fd3fe0e507b6 GIT binary patch literal 148964 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 literal 0 HcmV?d00001 diff --git a/public/planetfall.png b/public/planetfall.png new file mode 100644 index 0000000000000000000000000000000000000000..b06b25c4bbe8145b53c50a569196b2b1d3392aad GIT binary patch literal 660729 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

M>a}Bu7SNd*0alpZM9SVcQJllc`SUrY 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�Pm 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%0D*N?HFK0qlZ>p-WkVMe9eJlEH}iGD1A3)9 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 yTULAc3~ac5Ew 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%0AFR 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%0AB5-DS6EpH=DMLjDqt$M8Z0GKC$s-x( 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 LrJugUA?W`A8`#=m diff --git a/tailwind.config.js b/tailwind.config.js index 4fc40bf..4579816 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -20,7 +20,7 @@ module.exports = { }, fontFamily: { sans: ["var(--font-inter)", ...defaultTheme.fontFamily.sans], - display: ["var(--font-grotesk)"], + display: ["var(--font-calsans)"], }, backgroundImage: { "gradient-radial": @@ -88,8 +88,6 @@ module.exports = { "100%": { "line-height": "100%", - "letter-spacing": "0.125em", - opacity: "100%", }, },