diff --git a/.contentlayer/.cache/v0.3.0/compiled-contentlayer-config-45X2WG6B.mjs b/.contentlayer/.cache/v0.3.0/compiled-contentlayer-config-45X2WG6B.mjs new file mode 100644 index 00000000..99708549 --- /dev/null +++ b/.contentlayer/.cache/v0.3.0/compiled-contentlayer-config-45X2WG6B.mjs @@ -0,0 +1,96 @@ +// 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 new file mode 100644 index 00000000..e0accc76 --- /dev/null +++ b/.contentlayer/.cache/v0.3.0/compiled-contentlayer-config-45X2WG6B.mjs.map @@ -0,0 +1,7 @@ +{ + "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-KFUTZ636.mjs b/.contentlayer/.cache/v0.3.0/compiled-contentlayer-config-KFUTZ636.mjs new file mode 100644 index 00000000..6be84a3f --- /dev/null +++ b/.contentlayer/.cache/v0.3.0/compiled-contentlayer-config-KFUTZ636.mjs @@ -0,0 +1,98 @@ +// 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", + 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-KFUTZ636.mjs.map diff --git a/.contentlayer/.cache/v0.3.0/compiled-contentlayer-config-KFUTZ636.mjs.map b/.contentlayer/.cache/v0.3.0/compiled-contentlayer-config-KFUTZ636.mjs.map new file mode 100644 index 00000000..e22368e1 --- /dev/null +++ b/.contentlayer/.cache/v0.3.0/compiled-contentlayer-config-KFUTZ636.mjs.map @@ -0,0 +1,7 @@ +{ + "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\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,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 new file mode 100644 index 00000000..2676605d --- /dev/null +++ b/.contentlayer/.cache/v0.3.0/data-4T6LNXCP.json @@ -0,0 +1,111 @@ +{ + "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 new file mode 100644 index 00000000..c29e9481 --- /dev/null +++ b/.contentlayer/.cache/v0.3.0/data-5GE3IMM2.json @@ -0,0 +1,214 @@ +{ + "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-IGZ3LN4S.json b/.contentlayer/.cache/v0.3.0/data-IGZ3LN4S.json new file mode 100644 index 00000000..47ae51f4 --- /dev/null +++ b/.contentlayer/.cache/v0.3.0/data-IGZ3LN4S.json @@ -0,0 +1,162 @@ +{ + "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 new file mode 100644 index 00000000..0724fbb6 --- /dev/null +++ b/.contentlayer/.cache/v0.3.0/data-KFUTZ636.json @@ -0,0 +1,402 @@ +{ + "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": "\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 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&&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 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 Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return k(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return k(u(i),r,t)}catch{}}}return\"\"}var x=Object.prototype.hasOwnProperty,ce={},fe=_.ReactDebugCurrentFrame;function D(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)&&(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(x.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(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\"&&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)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 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=k(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(we()),br={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 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-bc85a632-240c-40c2-96fe-829ddcc2f15f.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-bc85a632-240c-40c2-96fe-829ddcc2f15f.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-bc85a632-240c-40c2-96fe-829ddcc2f15f.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/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": "1677517732248", + "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![](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 sn=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),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))!bn.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?sn(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,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 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=i,Ve(),Error.prepareStackTrace=s}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 se(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 se(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,s=a._payload,i=a._init;try{return S(i(s),t,c)}catch{}}}return\"\"}var C=Object.prototype.hasOwnProperty,ie={},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,s){{var i=Function.call.bind(C);for(var d in e)if(i(e,d)){var o=void 0;try{if(typeof e[d]!=\"function\"){var h=Error((a||\"React class\")+\": \"+c+\" type `\"+d+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[d]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw h.name=\"Invariant Violation\",h}o=e[d](t,d,a,c,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(u){o=u}o&&!(o instanceof Error)&&(P(s),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).\",a||\"React class\",c,d,typeof o),P(null)),o instanceof Error&&!(o.message in ie)&&(ie[o.message]=!0,P(s),b(\"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 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 c=p(U.current.type);$[c]||(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),$[c]=!0)}}function Ze(e,t){{var c=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))};c.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:c,configurable:!0})}}function Qe(e,t){{var c=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))};c.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:c,configurable:!0})}}var en=function(e,t,c,a,s,i,d){var o={$$typeof:n,type:e,key:t,ref:c,props:d,_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:a}),Object.defineProperty(o,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:s}),Object.freeze&&(Object.freeze(o.props),Object.freeze(o)),o};function nn(e,t,c,a,s){{var i,d={},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,s));for(i in t)C.call(t,i)&&!qe.hasOwnProperty(i)&&(d[i]=t[i]);if(e&&e.defaultProps){var u=e.defaultProps;for(i in u)d[i]===void 0&&(d[i]=u[i])}if(o||h){var m=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;o&&Ze(d,m),h&&Qe(d,m)}return en(e,o,h,s,a,U.current,d)}}var M=g.ReactCurrentOwner,fe=g.ReactDebugCurrentFrame;function v(e){if(e){var t=e._owner,c=S(e.type,e._source,t?t.type:null);fe.setExtraStackFrame(c)}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(/^.*[\\\\\\/]/,\"\"),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),b('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,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,o)}var m=nn(e,t,c,s,i);if(m==null)return m;if(d){var f=t.children;if(f!==void 0)if(a)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(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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"Features\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:21,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:26,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"Built with\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:30,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:31,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:32,columnNumber:15},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:33,columnNumber:18},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:33,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"Deploy your own\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:37,columnNumber:36},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:42,columnNumber:2},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:42,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"Configuration\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"Environment Variables\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"Contributing\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:55,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"Docs\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"API\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"Store a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:67,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:83,columnNumber:28},this),\")\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:84,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:3,columnNumber:218},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:4,columnNumber:190},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:5,columnNumber:188},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:6,columnNumber:227},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:7,columnNumber:149},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:9,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"Retrieve a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:3,columnNumber:205},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:4,columnNumber:160},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:5,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:6,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:109,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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 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)A(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&&A(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?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 we=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\"),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&&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 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={},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 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=h(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',h(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 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,C.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\";Ce.exports=we()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>hr});var F=pr(Oe()),hr={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-2d7f47b8-0684-4b83-be98-e188c284cabc.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-2d7f47b8-0684-4b83-be98-e188c284cabc.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-2d7f47b8-0684-4b83-be98-e188c284cabc.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/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": "2022-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 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 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 cr(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(lr(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&&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 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=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: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 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,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 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 A=pr(we()),br={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 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-6314e297-378a-424f-b4ba-21ffcc9375d6.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)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-6314e297-378a-424f-b4ba-21ffcc9375d6.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-6314e297-378a-424f-b4ba-21ffcc9375d6.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/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": "1677518101031", + "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 h in f)F(s,h,{get:f[h],enumerable:!0})},_e=(s,f,h,y)=>{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:!(y=fr(f,m))||y.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\"),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=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: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,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 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?\"):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:()=>br});var A=pr(we()),br={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-e3d80f0e-9dd3-46e9-a84d-084e7203980a.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-e3d80f0e-9dd3-46e9-a84d-084e7203980a.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e3d80f0e-9dd3-46e9-a84d-084e7203980a.mdx\"},this):Pe(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/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 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\"),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=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(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:()=>hr});var A=pr(we()),hr={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-1b4d7431-b999-482b-8c74-8651810a5da9.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-1b4d7431-b999-482b-8c74-8651810a5da9.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1b4d7431-b999-482b-8c74-8651810a5da9.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/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 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": "\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 K=(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 lr(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(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=K((_r,Re)=>{Re.exports=React});var Ce=K(q=>{\"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\"),z=Symbol.for(\"react.profiler\"),X=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),P=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\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,ke=\"@@iterator\";function je(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[ke];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\"&&k.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\"&&k.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 j(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 P:return Ue(e.render);case w:return j(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return j(u(i),r,t)}catch{}}}return\"\"}var x=Object.prototype.hasOwnProperty,fe={},le=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=j(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(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(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 Ke(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function qe(e){try{return ce(e),!1}catch{return!0}}function ce(e){return\"\"+e}function de(e){if(qe(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Ke(e)),ce(e)}var O=_.ReactCurrentOwner,ze={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Xe(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 He(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\"&&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),Xe(r)&&(v=r.ref,Je(r,i));for(u in r)x.call(r,u)&&!ze.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,be=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=j(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?\"):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:()=>hr});var A=pr(Pe()),hr={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 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-0fb9065e-d09f-48b9-83a1-9b3402541545.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)(we,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0fb9065e-d09f-48b9-83a1-9b3402541545.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0fb9065e-d09f-48b9-83a1-9b3402541545.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-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": "1677517781656", + "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": "\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\"),H=Symbol.for(\"react.provider\"),K=Symbol.for(\"react.context\"),P=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\"),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 P: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={},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 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\"&&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),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 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(Pe()),br={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 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-1b74ddb6-f2a5-4108-a22e-9f22cd877684.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)(we,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1b74ddb6-f2a5-4108-a22e-9f22cd877684.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1b74ddb6-f2a5-4108-a22e-9f22cd877684.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-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": "1677517994411", + "hasWarnings": false, + "documentTypeName": "Project" + } + } +} diff --git a/.contentlayer/.cache/v0.3.0/data-XX52LLCN.json b/.contentlayer/.cache/v0.3.0/data-XX52LLCN.json new file mode 100644 index 00000000..8e59d667 --- /dev/null +++ b/.contentlayer/.cache/v0.3.0/data-XX52LLCN.json @@ -0,0 +1,85 @@ +{ + "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 new file mode 100644 index 00000000..0637a088 --- /dev/null +++ b/.contentlayer/generated/Page/_index.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/.contentlayer/generated/Page/_index.mjs b/.contentlayer/generated/Page/_index.mjs new file mode 100644 index 00000000..10fe12c4 --- /dev/null +++ b/.contentlayer/generated/Page/_index.mjs @@ -0,0 +1,5 @@ +// 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 new file mode 100644 index 00000000..7729813b --- /dev/null +++ b/.contentlayer/generated/Project/_index.json @@ -0,0 +1,325 @@ +[ + { + "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": "\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 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&&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 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 Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return k(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return k(u(i),r,t)}catch{}}}return\"\"}var x=Object.prototype.hasOwnProperty,ce={},fe=_.ReactDebugCurrentFrame;function D(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)&&(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(x.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(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\"&&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)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 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=k(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(we()),br={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 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-bc85a632-240c-40c2-96fe-829ddcc2f15f.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-bc85a632-240c-40c2-96fe-829ddcc2f15f.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-bc85a632-240c-40c2-96fe-829ddcc2f15f.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/access.mdx", + "_raw": { + "sourceFilePath": "projects/access.mdx", + "sourceFileName": "access.mdx", + "sourceFileDir": "projects", + "contentType": "mdx", + "flattenedPath": "projects/access" + }, + "type": "Project", + "path": "/projects/access", + "slug": "access" + }, + { + "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 sn=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),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))!bn.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?sn(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,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 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=i,Ve(),Error.prepareStackTrace=s}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 se(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 se(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,s=a._payload,i=a._init;try{return S(i(s),t,c)}catch{}}}return\"\"}var C=Object.prototype.hasOwnProperty,ie={},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,s){{var i=Function.call.bind(C);for(var d in e)if(i(e,d)){var o=void 0;try{if(typeof e[d]!=\"function\"){var h=Error((a||\"React class\")+\": \"+c+\" type `\"+d+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[d]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw h.name=\"Invariant Violation\",h}o=e[d](t,d,a,c,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(u){o=u}o&&!(o instanceof Error)&&(P(s),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).\",a||\"React class\",c,d,typeof o),P(null)),o instanceof Error&&!(o.message in ie)&&(ie[o.message]=!0,P(s),b(\"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 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 c=p(U.current.type);$[c]||(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),$[c]=!0)}}function Ze(e,t){{var c=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))};c.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:c,configurable:!0})}}function Qe(e,t){{var c=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))};c.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:c,configurable:!0})}}var en=function(e,t,c,a,s,i,d){var o={$$typeof:n,type:e,key:t,ref:c,props:d,_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:a}),Object.defineProperty(o,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:s}),Object.freeze&&(Object.freeze(o.props),Object.freeze(o)),o};function nn(e,t,c,a,s){{var i,d={},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,s));for(i in t)C.call(t,i)&&!qe.hasOwnProperty(i)&&(d[i]=t[i]);if(e&&e.defaultProps){var u=e.defaultProps;for(i in u)d[i]===void 0&&(d[i]=u[i])}if(o||h){var m=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;o&&Ze(d,m),h&&Qe(d,m)}return en(e,o,h,s,a,U.current,d)}}var M=g.ReactCurrentOwner,fe=g.ReactDebugCurrentFrame;function v(e){if(e){var t=e._owner,c=S(e.type,e._source,t?t.type:null);fe.setExtraStackFrame(c)}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(/^.*[\\\\\\/]/,\"\"),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),b('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,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,o)}var m=nn(e,t,c,s,i);if(m==null)return m;if(d){var f=t.children;if(f!==void 0)if(a)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(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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"Features\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:21,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:26,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"Built with\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:30,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:31,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:32,columnNumber:15},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:33,columnNumber:18},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:33,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"Deploy your own\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:37,columnNumber:36},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:42,columnNumber:2},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:42,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"Configuration\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"Environment Variables\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"Contributing\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:55,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"Docs\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"API\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"Store a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:67,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:83,columnNumber:28},this),\")\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:84,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:3,columnNumber:218},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:4,columnNumber:190},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:5,columnNumber:188},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:6,columnNumber:227},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:7,columnNumber:149},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:9,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"Retrieve a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:3,columnNumber:205},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:4,columnNumber:160},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:5,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:6,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:109,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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" + }, + { + "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 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)A(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&&A(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?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 we=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\"),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&&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 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={},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 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=h(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',h(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 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,C.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\";Ce.exports=we()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>hr});var F=pr(Oe()),hr={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-2d7f47b8-0684-4b83-be98-e188c284cabc.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-2d7f47b8-0684-4b83-be98-e188c284cabc.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-2d7f47b8-0684-4b83-be98-e188c284cabc.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/planetfall.mdx", + "_raw": { + "sourceFilePath": "projects/planetfall.mdx", + "sourceFileName": "planetfall.mdx", + "sourceFileDir": "projects", + "contentType": "mdx", + "flattenedPath": "projects/planetfall" + }, + "type": "Project", + "path": "/projects/planetfall", + "slug": "planetfall" + }, + { + "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": "\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 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 cr(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(lr(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&&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 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=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: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 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,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 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 A=pr(we()),br={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 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-6314e297-378a-424f-b4ba-21ffcc9375d6.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)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-6314e297-378a-424f-b4ba-21ffcc9375d6.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-6314e297-378a-424f-b4ba-21ffcc9375d6.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/qstash.mdx", + "_raw": { + "sourceFilePath": "projects/qstash.mdx", + "sourceFileName": "qstash.mdx", + "sourceFileDir": "projects", + "contentType": "mdx", + "flattenedPath": "projects/qstash" + }, + "type": "Project", + "path": "/projects/qstash", + "slug": "qstash" + }, + { + "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 h in f)F(s,h,{get:f[h],enumerable:!0})},_e=(s,f,h,y)=>{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:!(y=fr(f,m))||y.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\"),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=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: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,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 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?\"):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:()=>br});var A=pr(we()),br={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-e3d80f0e-9dd3-46e9-a84d-084e7203980a.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-e3d80f0e-9dd3-46e9-a84d-084e7203980a.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e3d80f0e-9dd3-46e9-a84d-084e7203980a.mdx\"},this):Pe(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/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" + }, + { + "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 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\"),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=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(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:()=>hr});var A=pr(we()),hr={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-1b4d7431-b999-482b-8c74-8651810a5da9.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-1b4d7431-b999-482b-8c74-8651810a5da9.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1b4d7431-b999-482b-8c74-8651810a5da9.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/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 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" + }, + { + "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" + }, + { + "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" + }, + { + "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" + }, + { + "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": "\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 K=(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 lr(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(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=K((_r,Re)=>{Re.exports=React});var Ce=K(q=>{\"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\"),z=Symbol.for(\"react.profiler\"),X=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),P=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\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,ke=\"@@iterator\";function je(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[ke];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\"&&k.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\"&&k.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 j(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 P:return Ue(e.render);case w:return j(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return j(u(i),r,t)}catch{}}}return\"\"}var x=Object.prototype.hasOwnProperty,fe={},le=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=j(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(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(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 Ke(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function qe(e){try{return ce(e),!1}catch{return!0}}function ce(e){return\"\"+e}function de(e){if(qe(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Ke(e)),ce(e)}var O=_.ReactCurrentOwner,ze={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Xe(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 He(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\"&&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),Xe(r)&&(v=r.ref,Je(r,i));for(u in r)x.call(r,u)&&!ze.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,be=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=j(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?\"):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:()=>hr});var A=pr(Pe()),hr={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 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-0fb9065e-d09f-48b9-83a1-9b3402541545.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)(we,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0fb9065e-d09f-48b9-83a1-9b3402541545.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0fb9065e-d09f-48b9-83a1-9b3402541545.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-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" + }, + { + "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" + }, + { + "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" + }, + { + "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" + }, + { + "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": "\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\"),H=Symbol.for(\"react.provider\"),K=Symbol.for(\"react.context\"),P=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\"),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 P: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={},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 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\"&&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),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 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(Pe()),br={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 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-1b74ddb6-f2a5-4108-a22e-9f22cd877684.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)(we,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1b74ddb6-f2a5-4108-a22e-9f22cd877684.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1b74ddb6-f2a5-4108-a22e-9f22cd877684.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-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/_index.mjs b/.contentlayer/generated/Project/_index.mjs new file mode 100644 index 00000000..85fe6698 --- /dev/null +++ b/.contentlayer/generated/Project/_index.mjs @@ -0,0 +1,19 @@ +// 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__redisQueryMdx from './projects__redis-query.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' } + +export const allProjects = [projects__accessMdx, projects__envshareMdx, projects__planetfallMdx, projects__qstashMdx, projects__redisQueryMdx, projects__terraformProviderVercelMdx, projects__upstashAuthAnalyticsMdx, projects__upstashCliMdx, projects__upstashCoreAnalyticsMdx, projects__upstashEdgeFlagsMdx, projects__upstashKafkaMdx, projects__upstashQstashSdkMdx, projects__upstashRatelimitMdx, projects__upstashReactUiMdx, projects__upstashRedisMdx] diff --git a/.contentlayer/generated/Project/projects__access.mdx.json b/.contentlayer/generated/Project/projects__access.mdx.json new file mode 100644 index 00000000..9db9cc70 --- /dev/null +++ b/.contentlayer/generated/Project/projects__access.mdx.json @@ -0,0 +1,21 @@ +{ + "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": "\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 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&&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 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 Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return k(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return k(u(i),r,t)}catch{}}}return\"\"}var x=Object.prototype.hasOwnProperty,ce={},fe=_.ReactDebugCurrentFrame;function D(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)&&(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(x.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(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\"&&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)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 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=k(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(we()),br={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 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-bc85a632-240c-40c2-96fe-829ddcc2f15f.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-bc85a632-240c-40c2-96fe-829ddcc2f15f.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-bc85a632-240c-40c2-96fe-829ddcc2f15f.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/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 new file mode 100644 index 00000000..91adc7d3 --- /dev/null +++ b/.contentlayer/generated/Project/projects__envshare copy.mdx.json @@ -0,0 +1,22 @@ +{ + "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 new file mode 100644 index 00000000..c8adbe87 --- /dev/null +++ b/.contentlayer/generated/Project/projects__envshare.mdx.json @@ -0,0 +1,22 @@ +{ + "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 sn=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),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))!bn.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?sn(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,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 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=i,Ve(),Error.prepareStackTrace=s}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 se(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 se(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,s=a._payload,i=a._init;try{return S(i(s),t,c)}catch{}}}return\"\"}var C=Object.prototype.hasOwnProperty,ie={},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,s){{var i=Function.call.bind(C);for(var d in e)if(i(e,d)){var o=void 0;try{if(typeof e[d]!=\"function\"){var h=Error((a||\"React class\")+\": \"+c+\" type `\"+d+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[d]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw h.name=\"Invariant Violation\",h}o=e[d](t,d,a,c,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(u){o=u}o&&!(o instanceof Error)&&(P(s),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).\",a||\"React class\",c,d,typeof o),P(null)),o instanceof Error&&!(o.message in ie)&&(ie[o.message]=!0,P(s),b(\"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 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 c=p(U.current.type);$[c]||(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),$[c]=!0)}}function Ze(e,t){{var c=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))};c.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:c,configurable:!0})}}function Qe(e,t){{var c=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))};c.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:c,configurable:!0})}}var en=function(e,t,c,a,s,i,d){var o={$$typeof:n,type:e,key:t,ref:c,props:d,_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:a}),Object.defineProperty(o,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:s}),Object.freeze&&(Object.freeze(o.props),Object.freeze(o)),o};function nn(e,t,c,a,s){{var i,d={},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,s));for(i in t)C.call(t,i)&&!qe.hasOwnProperty(i)&&(d[i]=t[i]);if(e&&e.defaultProps){var u=e.defaultProps;for(i in u)d[i]===void 0&&(d[i]=u[i])}if(o||h){var m=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;o&&Ze(d,m),h&&Qe(d,m)}return en(e,o,h,s,a,U.current,d)}}var M=g.ReactCurrentOwner,fe=g.ReactDebugCurrentFrame;function v(e){if(e){var t=e._owner,c=S(e.type,e._source,t?t.type:null);fe.setExtraStackFrame(c)}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(/^.*[\\\\\\/]/,\"\"),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),b('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,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,o)}var m=nn(e,t,c,s,i);if(m==null)return m;if(d){var f=t.children;if(f!==void 0)if(a)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(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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"Features\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:21,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:26,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"Built with\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:30,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:31,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:32,columnNumber:15},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:33,columnNumber:18},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:33,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"Deploy your own\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:37,columnNumber:36},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:42,columnNumber:2},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:42,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"Configuration\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"Environment Variables\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"Contributing\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:55,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"Docs\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"API\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"Store a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:67,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:83,columnNumber:28},this),\")\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:84,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:3,columnNumber:218},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:4,columnNumber:190},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:5,columnNumber:188},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:6,columnNumber:227},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:7,columnNumber:149},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:9,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this),\"Retrieve a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:3,columnNumber:205},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:4,columnNumber:160},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:5,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:6,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\",lineNumber:109,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-d4d2d8fb-41c5-4256-b52f-0c01563ce72b.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" +} \ 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 new file mode 100644 index 00000000..1b26eaeb --- /dev/null +++ b/.contentlayer/generated/Project/projects__planetfall copy.mdx.json @@ -0,0 +1,22 @@ +{ + "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 new file mode 100644 index 00000000..76a32933 --- /dev/null +++ b/.contentlayer/generated/Project/projects__planetfall.mdx.json @@ -0,0 +1,21 @@ +{ + "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 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)A(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&&A(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?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 we=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\"),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&&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 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={},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 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=h(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',h(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 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,C.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\";Ce.exports=we()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>hr});var F=pr(Oe()),hr={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-2d7f47b8-0684-4b83-be98-e188c284cabc.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-2d7f47b8-0684-4b83-be98-e188c284cabc.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-2d7f47b8-0684-4b83-be98-e188c284cabc.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/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 new file mode 100644 index 00000000..ad9ef0dc --- /dev/null +++ b/.contentlayer/generated/Project/projects__qstash.mdx.json @@ -0,0 +1,21 @@ +{ + "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": "\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 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 cr(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(lr(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&&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 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=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: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 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,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 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 A=pr(we()),br={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 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-6314e297-378a-424f-b4ba-21ffcc9375d6.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)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-6314e297-378a-424f-b4ba-21ffcc9375d6.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-6314e297-378a-424f-b4ba-21ffcc9375d6.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/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 new file mode 100644 index 00000000..96bdec2b --- /dev/null +++ b/.contentlayer/generated/Project/projects__redis-query.mdx.json @@ -0,0 +1,20 @@ +{ + "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 h in f)F(s,h,{get:f[h],enumerable:!0})},_e=(s,f,h,y)=>{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:!(y=fr(f,m))||y.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\"),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=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: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,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 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?\"):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:()=>br});var A=pr(we()),br={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-e3d80f0e-9dd3-46e9-a84d-084e7203980a.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-e3d80f0e-9dd3-46e9-a84d-084e7203980a.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e3d80f0e-9dd3-46e9-a84d-084e7203980a.mdx\"},this):Pe(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/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 new file mode 100644 index 00000000..e0c997e0 --- /dev/null +++ b/.contentlayer/generated/Project/projects__terraform-provider-vercel.mdx.json @@ -0,0 +1,21 @@ +{ + "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 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\"),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=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(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:()=>hr});var A=pr(we()),hr={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-1b4d7431-b999-482b-8c74-8651810a5da9.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-1b4d7431-b999-482b-8c74-8651810a5da9.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1b4d7431-b999-482b-8c74-8651810a5da9.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/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 new file mode 100644 index 00000000..eaeba260 --- /dev/null +++ b/.contentlayer/generated/Project/projects__upstash-auth-analytics.mdx.json @@ -0,0 +1,21 @@ +{ + "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" +} \ 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 new file mode 100644 index 00000000..83e83079 --- /dev/null +++ b/.contentlayer/generated/Project/projects__upstash-cli.mdx.json @@ -0,0 +1,22 @@ +{ + "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" +} \ 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 new file mode 100644 index 00000000..fa7728f4 --- /dev/null +++ b/.contentlayer/generated/Project/projects__upstash-core-analytics copy.mdx.json @@ -0,0 +1,22 @@ +{ + "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 new file mode 100644 index 00000000..a8ec0f3d --- /dev/null +++ b/.contentlayer/generated/Project/projects__upstash-core-analytics.mdx.json @@ -0,0 +1,22 @@ +{ + "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" +} \ 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 new file mode 100644 index 00000000..9a60a813 --- /dev/null +++ b/.contentlayer/generated/Project/projects__upstash-edge-flags.mdx.json @@ -0,0 +1,22 @@ +{ + "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" +} \ 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 new file mode 100644 index 00000000..accb8a19 --- /dev/null +++ b/.contentlayer/generated/Project/projects__upstash-kafka.mdx.json @@ -0,0 +1,22 @@ +{ + "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": "\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 K=(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 lr(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(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=K((_r,Re)=>{Re.exports=React});var Ce=K(q=>{\"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\"),z=Symbol.for(\"react.profiler\"),X=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),P=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\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,ke=\"@@iterator\";function je(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[ke];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\"&&k.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\"&&k.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 j(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 P:return Ue(e.render);case w:return j(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return j(u(i),r,t)}catch{}}}return\"\"}var x=Object.prototype.hasOwnProperty,fe={},le=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=j(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(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(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 Ke(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function qe(e){try{return ce(e),!1}catch{return!0}}function ce(e){return\"\"+e}function de(e){if(qe(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Ke(e)),ce(e)}var O=_.ReactCurrentOwner,ze={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Xe(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 He(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\"&&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),Xe(r)&&(v=r.ref,Je(r,i));for(u in r)x.call(r,u)&&!ze.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,be=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=j(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?\"):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:()=>hr});var A=pr(Pe()),hr={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 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-0fb9065e-d09f-48b9-83a1-9b3402541545.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)(we,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0fb9065e-d09f-48b9-83a1-9b3402541545.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-0fb9065e-d09f-48b9-83a1-9b3402541545.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-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 new file mode 100644 index 00000000..076cd333 --- /dev/null +++ b/.contentlayer/generated/Project/projects__upstash-qstash-sdk.mdx.json @@ -0,0 +1,22 @@ +{ + "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" +} \ 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 new file mode 100644 index 00000000..902729de --- /dev/null +++ b/.contentlayer/generated/Project/projects__upstash-qstash.mdx.json @@ -0,0 +1,22 @@ +{ + "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 new file mode 100644 index 00000000..ab2f9901 --- /dev/null +++ b/.contentlayer/generated/Project/projects__upstash-ratelimit.mdx.json @@ -0,0 +1,22 @@ +{ + "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" +} \ 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 new file mode 100644 index 00000000..0ab6e049 --- /dev/null +++ b/.contentlayer/generated/Project/projects__upstash-react-ui.mdx.json @@ -0,0 +1,22 @@ +{ + "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" +} \ 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 new file mode 100644 index 00000000..88433315 --- /dev/null +++ b/.contentlayer/generated/Project/projects__upstash-redis.mdx.json @@ -0,0 +1,22 @@ +{ + "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": "\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\"),H=Symbol.for(\"react.provider\"),K=Symbol.for(\"react.context\"),P=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\"),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 P: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={},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 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\"&&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),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 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(Pe()),br={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 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-1b74ddb6-f2a5-4108-a22e-9f22cd877684.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)(we,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1b74ddb6-f2a5-4108-a22e-9f22cd877684.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-1b74ddb6-f2a5-4108-a22e-9f22cd877684.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-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/index.d.ts b/.contentlayer/generated/index.d.ts new file mode 100644 index 00000000..5759d7b7 --- /dev/null +++ b/.contentlayer/generated/index.d.ts @@ -0,0 +1,11 @@ +// 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 new file mode 100644 index 00000000..3df43002 --- /dev/null +++ b/.contentlayer/generated/index.mjs @@ -0,0 +1,12 @@ +// 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 new file mode 100644 index 00000000..f60aeb6a --- /dev/null +++ b/.contentlayer/generated/types.d.ts @@ -0,0 +1,78 @@ +// 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' + 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 = { + +} + + \ No newline at end of file diff --git a/.contentlayer/package.json b/.contentlayer/package.json new file mode 100644 index 00000000..70f32107 --- /dev/null +++ b/.contentlayer/package.json @@ -0,0 +1,17 @@ +{ + "name": "dot-contentlayer", + "description": "This package is auto-generated by Contentlayer", + "version": "0.0.0-KFUTZ636", + "exports": { + "./generated": { + "import": "./generated/index.mjs" + } + }, + "typesVersions": { + "*": { + "generated": [ + "./generated" + ] + } + } +} \ No newline at end of file diff --git a/app/components/article-nav.tsx b/app/components/article-nav.tsx new file mode 100644 index 00000000..6669b769 --- /dev/null +++ b/app/components/article-nav.tsx @@ -0,0 +1,110 @@ +"use client"; +import { ArrowLeft } from "lucide-react"; +import Link from "next/link"; +import React, { useEffect, useMemo, useRef, useState } from "react"; +import { usePathname } from "next/navigation"; + +type Props = { + project: { + url?: string; + title: string; + description: string; + repository?: string; + }; +}; + +export const Navigation: React.FC = ({ project }) => { + const pathname = usePathname(); + const ref = useRef(null); + const [isIntersecting, setIntersecting] = useState(true); + + useEffect(() => { + if (!ref.current) return; + const observer = new IntersectionObserver(([entry]) => + setIntersecting(entry.isIntersecting), + ); + + observer.observe(ref.current); + return () => observer.disconnect(); + }, []); + + return ( +
+
+
+
+ + + GitHub + + +
+ + + + +
+
+
+
+
+
+

+ {project.title} +

+

+ {project.description}{" "} +

+
+
+
+
+ {project.url ? ( + + Website + + ) : null} + + {project.repository ? ( + + Repository + + ) : null} +
+
+
+ ); +}; diff --git a/app/components/mdx.tsx b/app/components/mdx.tsx new file mode 100644 index 00000000..03511216 --- /dev/null +++ b/app/components/mdx.tsx @@ -0,0 +1,178 @@ +// @ts-nocheck +import * as React from "react"; +import Image from "next/image"; +import Link from "next/link"; +import { useMDXComponent } from "next-contentlayer/hooks"; + +function clsx(...args: any) { + return args.filter(Boolean).join(" "); +} +const components = { + h1: ({ className, ...props }) => ( +

+ ), + h2: ({ className, ...props }) => ( +

+ ), + h3: ({ className, ...props }) => ( +

+ ), + h4: ({ className, ...props }) => ( +

+ ), + h5: ({ className, ...props }) => ( +

+ ), + h6: ({ className, ...props }) => ( +
+ ), + a: ({ className, ...props }) => ( + + ), + p: ({ className, ...props }) => ( +

+ ), + ul: ({ className, ...props }) => ( +

    + ), + ol: ({ className, ...props }) => ( +
      + ), + li: ({ className, ...props }) => ( +
    1. + ), + blockquote: ({ className, ...props }) => ( +
      *]:text-zinc-600", + className, + )} + {...props} + /> + ), + img: ({ + className, + alt, + ...props + }: React.ImgHTMLAttributes) => ( + // eslint-disable-next-line @next/next/no-img-element + {alt} + ), + hr: ({ ...props }) => ( +
      + ), + table: ({ className, ...props }: React.HTMLAttributes) => ( +
      + + + ), + tr: ({ className, ...props }: React.HTMLAttributes) => ( + + ), + th: ({ className, ...props }) => ( +
      + ), + td: ({ className, ...props }) => ( + + ), + pre: ({ className, ...props }) => ( +
      +	),
      +	code: ({ className, ...props }) => (
      +		
      +	),
      +	Image,
      +};
      +
      +interface MdxProps {
      +	code: string;
      +}
      +
      +export function Mdx({ code }: MdxProps) {
      +	const Component = useMDXComponent(code);
      +
      +	return (
      +		
      + +
      + ); +} diff --git a/app/components/nav.tsx b/app/components/nav.tsx new file mode 100644 index 00000000..9c0093ae --- /dev/null +++ b/app/components/nav.tsx @@ -0,0 +1,57 @@ +"use client"; +import { ArrowLeft } from "lucide-react"; +import Link from "next/link"; +import React, { useEffect, useRef, useState } from "react"; + +export const Navigation: React.FC = () => { + const ref = useRef(null); + const [isIntersecting, setIntersecting] = useState(true); + + useEffect(() => { + if (!ref.current) return; + const observer = new IntersectionObserver(([entry]) => + setIntersecting(entry.isIntersecting), + ); + + observer.observe(ref.current); + return () => observer.disconnect(); + }, []); + + return ( +
      +
      +
      +
      + + + Projects + + + + Contact + +
      + + + + +
      +
      +
      + ); +}; diff --git a/app/contact/page.tsx b/app/contact/page.tsx new file mode 100644 index 00000000..c42fc423 --- /dev/null +++ b/app/contact/page.tsx @@ -0,0 +1,70 @@ +"use client"; +import { Github, Mail, Twitter } from "lucide-react"; +import Link from "next/link"; +import { Navigation } from "../components/nav"; + +const socials = [ + { + icon: , + href: "https://twitter.com/chronark_", + label: "Twitter", + handle: "@chronark_", + }, + { + icon: , + href: "mailto:dev@chronark.com", + label: "Email", + handle: "dev@chronark.com", + }, + { + icon: , + href: "https://github.com/chronark", + label: "Github", + handle: "chronark", + }, +]; + +export default function Example() { + async function submit() { + const res = await fetch("/api/contact", { + method: "POST", + body: JSON.stringify({ + name: "John Doe", + email: "", + }), + }); + } + + return ( +
      + +
      +
      + {socials.map((s) => ( + +
      +
      +
      + ); +} diff --git a/app/page.tsx b/app/page.tsx index 7d5f534c..bc49700d 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -3,41 +3,40 @@ import Link from "next/link"; import React from "react"; const navigation = [ - { name: "Home", href: "/" }, - { name: "About", href: "/about" }, + // { name: "About", href: "/about" }, { name: "Projects", href: "/projects" }, - { name: "Blog", href: "/blog" }, + // { name: "Blog", href: "/blog" }, { name: "Contact", href: "/contact" }, ]; export default function Home() { return ( -
      +
      -
      -

      +
      +

      CHRONARK

      -
      -
      -

      +
      +
      +

      Hi, I'm building serverless and open source solutions at{" "} Upstash @@ -46,7 +45,7 @@ export default function Home() { and{" "} planetfall.io {" "} diff --git a/app/projects/[slug]/mdx.css b/app/projects/[slug]/mdx.css new file mode 100644 index 00000000..661c734c --- /dev/null +++ b/app/projects/[slug]/mdx.css @@ -0,0 +1,32 @@ +[data-rehype-pretty-code-fragment] code { + @apply grid min-w-full break-words rounded-none border-0 bg-transparent p-0 text-sm text-black; + counter-reset: line; + box-decoration-break: clone; + } + [data-rehype-pretty-code-fragment] .line { + @apply px-4 py-1; + } + [data-rehype-pretty-code-fragment] [data-line-numbers] > .line::before { + counter-increment: line; + content: counter(line); + display: inline-block; + width: 1rem; + margin-right: 1rem; + text-align: right; + color: gray; + } + [data-rehype-pretty-code-fragment] .line--highlighted { + @apply bg-zinc-300 bg-opacity-10; + } + [data-rehype-pretty-code-fragment] .line-highlighted span { + @apply relative; + } + [data-rehype-pretty-code-fragment] .word--highlighted { + @apply rounded-md bg-zinc-300 bg-opacity-10 p-1; + } + [data-rehype-pretty-code-title] { + @apply mt-4 py-2 px-4 text-sm font-medium; + } + [data-rehype-pretty-code-title] + pre { + @apply mt-0; + } \ No newline at end of file diff --git a/app/projects/[slug]/page.tsx b/app/projects/[slug]/page.tsx new file mode 100644 index 00000000..fb93b336 --- /dev/null +++ b/app/projects/[slug]/page.tsx @@ -0,0 +1,41 @@ +import { notFound } from "next/navigation"; +import { allProjects } from "contentlayer/generated"; +import { Mdx } from "@/app/components/mdx"; +import { Navigation } from "@/app/components/article-nav"; +import "./mdx.css"; +import Link from "next/link"; + +interface PostPageProps { + params: { + slug: string; + }; +} + +export async function generateStaticParams(): Promise< + PostPageProps["params"][] +> { + return allProjects.map((p) => ({ + slug: p.slug, + })); +} + +export default async function PostPage({ params }: PostPageProps) { + const slug = params?.slug; + const project = allProjects.find((project) => project.slug === slug); + + if (!project) { + notFound(); + } + + return ( +
      + + +
      +
      + +
      +
      +
      + ); +} diff --git a/app/projects/default/page.tsx b/app/projects/default/page.tsx deleted file mode 100644 index 791bb793..00000000 --- a/app/projects/default/page.tsx +++ /dev/null @@ -1,138 +0,0 @@ -const stats = [ - { label: "Founded", value: "2021" }, - { label: "Employees", value: "37" }, - { label: "Countries", value: "12" }, - { label: "Raised", value: "$25M" }, -]; - -export default function Example() { - return ( -
      -
      -
      -
      -
      - -
      - -
      - - -
      -

      - “Amet amet eget scelerisque tellus sit neque faucibus non - eleifend. Integer eu praesent at a. Ornare arcu gravida - natoque erat et cursus tortor.” -

      -
      -
      - - Judith Rogers, - {" "} - CEO at Workcation -
      -
      -
      -
      -
      -
      -

      - Company values -

      -

      - On a mission to empower remote teams -

      -
      -

      - Faucibus commodo massa rhoncus, volutpat. Dignissim sed eget - risus enim. Mattis mauris semper sed amet vitae sed turpis id. - Id dolor praesent donec est. Odio penatibus risus viverra - tellus varius sit neque erat velit. Faucibus commodo massa - rhoncus, volutpat. Dignissim sed eget risus enim. Mattis - mauris semper sed amet vitae sed turpis id. -

      -

      - Et vitae blandit facilisi magna lacus commodo. Vitae sapien - duis odio id et. Id blandit molestie auctor fermentum - dignissim. Lacus diam tincidunt ac cursus in vel. Mauris - varius vulputate et ultrices hac adipiscing egestas. Iaculis - convallis ac tempor et ut. Ac lorem vel integer orci. -

      -

      - Et vitae blandit facilisi magna lacus commodo. Vitae sapien - duis odio id et. Id blandit molestie auctor fermentum - dignissim. Lacus diam tincidunt ac cursus in vel. Mauris - varius vulputate et ultrices hac adipiscing egestas. Iaculis - convallis ac tempor et ut. Ac lorem vel integer orci. -

      -
      -
      -
      - {stats.map((stat, statIdx) => ( -
      -
      - {stat.label} -
      -
      - {stat.value} -
      -
      - ))} -
      - -
      -
      -
      -
      - ); -} diff --git a/app/projects/layout.tsx b/app/projects/layout.tsx index ca71fb92..f403849d 100644 --- a/app/projects/layout.tsx +++ b/app/projects/layout.tsx @@ -2,7 +2,7 @@ export default function ProjectsLayout({ children, }: { children: React.ReactNode }) { return ( -
      +
      {children}
      ); diff --git a/app/projects/page.tsx b/app/projects/page.tsx index 8079e86d..1aa01ba4 100644 --- a/app/projects/page.tsx +++ b/app/projects/page.tsx @@ -1,155 +1,15 @@ import Link from "next/link"; import React from "react"; - -type Project = { - slug: string; - title: string; - description: string; - href: string; - date?: string; -}; - -const projects: Project[] = [ - { - slug: "upstash-kafka", - title: "@upstash/kafka", - href: "https://github.com/upstash/upstash-kafka", - description: - "A fully typed Kafka client built for Upstash Kafka and HTTP, perfect for serverless and edge runtimes.", - date: "2022-01-08", - }, - { - slug: "upstash-redis", - title: "@upstash/redis", - href: "https://github.com/upstash/upstash-redis", - description: - "A fully typed Redis client built for Upstash Redis and HTTP, perfect for serverless and edge runtimes.", - date: "2022-03-14", - }, - { - slug: "upstash-redis", - title: "@upstash/ratelimit", - href: "https://github.com/upstash/ratelimit", - description: - "Ratelimiting library for serverless and edge runtimes. Built on top of Upstash Redis.", - date: "2020-06-06", - }, - { - slug: "upstash-edge-flags", - title: "@upstash/edge-flags", - href: "https://github.com/upstash/edge-flags", - description: "Feature flags for edge functions.", - date: "2022-12-12", - }, - { - slug: "upstash-cli", - title: "@upstash/cli", - href: "https://github.com/upstash/cli", - description: - "A CLI to provision and manage Upstash resources, including Redis and Kafka databases.", - date: "2022-05-16", - }, - { - slug: "upstash-react-ui", - title: "@upstash/react-cli", - href: "https://github.com/upstash/react-ui", - description: - "A CLI React component to interact with Upstash Redis databases.", - date: "2023-02-05", - }, - { - slug: "qstash", - title: "QStash", - href: "https://upstash.com/qstash", - description: - "QStash is a fully managed serverless queue and messaging service designed for the serverless era.", - date: "2022-07-18", - }, - { - slug: "upstash-qstash-sdk", - title: "@upstash/qstash", - href: "https://github.com/upstash/sdk-qstash-ts", - description: "A typescript client and consumer for QStash.", - date: "2020-07-18", - }, - { - slug: "upstash-core-analytics", - title: "@upstash/core-analytics", - href: "https://github.com/upstash/core-analytics", - description: - "Low level utilities to build analytics tools on top of Redis.", - date: "2023-02-13", - }, - { - slug: "upstash-auth-analytics", - title: "@upstash/auth-analytics", - href: "https://github.com/upstash/auth-analytics", - description: "A library to record and analyse Auth.js user behaviour", - }, - { - slug: "upstash-web-analytics", - title: "@upstash/web-analytics", - href: "https://github.com/upstash/auth-analytics", - description: - "A library to record and analyse web page traffic and user behaviour", - date: "2020-03-16", - }, - { - slug: "upstash-ratelimit-analytics", - title: "Ratelimit Analytics", - href: "https://github.com/upstash/ratelimit", - description: - "Near realtime analytics for your ratelimits. Integrated into the @upstash/ratelimit library.", - date: "2023-03-01", - }, - { - slug: "planetfall", - title: "Planetfall", - href: "https://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", - }, - { - slug: "terraform-provider-vercel", - title: "Vercel Terraform Provider", - href: "https://github.com/chronark/terraform-provider-vercel", - description: - "A Terraform provider for Vercel. It has been deprecated it when Vercel rolled out their official provider.", - date: "2021-03-16", - }, - { - slug: "envshare", - title: "EnvShare", - href: "https://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", - }, - { - slug: "redis-query", - title: "Redis Query", - href: "https://github.com/chronark/redis-query", - description: - "Client side secondary indexing for Redis. It allows you to query your Redis data efficiently. Inspired by FaunaDB indices.", - date: "2023-02-16", - }, - { - slug: "access", - title: "@chronark/access", - href: "https://github.com/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-13", - }, -]; +import { allProjects, Project } from "contentlayer/generated"; +import { Navigation } from "../components/nav"; export default function ProjectsPage() { - const featured = projects.find((project) => project.slug === "planetfall")!; - const top2 = projects.find((project) => project.slug === "envshare")!; - const top3 = projects.find((project) => project.slug === "qstash")!; - - const sorted = projects + const featured = allProjects.find( + (project) => project.slug === "planetfall", + )!; + const top2 = allProjects.find((project) => project.slug === "envshare")!; + const top3 = allProjects.find((project) => project.slug === "qstash")!; + const sorted = allProjects .filter( (project) => project.slug !== featured.slug && @@ -163,24 +23,25 @@ export default function ProjectsPage() { ); return ( -
      -
      -
      +
      + +
      +

      Projects

      -

      +

      Some of the projects are from work and some are on my own time.

      -
      +
      -
      -
      -
      +
      +
      +
      {featured.date ? ( ) : ( SOON @@ -188,11 +49,11 @@ export default function ProjectsPage() {

      {featured.title}

      -

      +

      {featured.description}

      @@ -204,15 +65,15 @@ export default function ProjectsPage() {
      -
      +
      {[top2, top3].map((project) => ( ))}
      -
      +
      -
      +
      {sorted.map((project) => ( ))} @@ -235,21 +96,21 @@ const Card: React.FC<{ project: Project; border?: boolean }> = ({ : "" } `} > -
      +
      {project.date ? ( ) : ( SOON )}
      -
      -

      +
      +

      {project.title}

      -

      +

      {project.description}

      diff --git a/content/projects/access.mdx b/content/projects/access.mdx new file mode 100644 index 00000000..c5aa8304 --- /dev/null +++ b/content/projects/access.mdx @@ -0,0 +1,9 @@ +--- +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" + +--- + +TODO: \ No newline at end of file diff --git a/content/projects/envshare.mdx b/content/projects/envshare.mdx new file mode 100644 index 00000000..a9ee9c32 --- /dev/null +++ b/content/projects/envshare.mdx @@ -0,0 +1,116 @@ +--- +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 + +--- + +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. + +## Features + +- **Shareable Links:** Share your environment variables securely by sending a + link +- **End-to-End Encryption:** AES-GCM encryption is used to encrypt your data + before sending it to the server +- **Limit number of reads:** Limit the number of times a link can be read +- **Auto Expire:** Automatically expire links and delete data after a certain + time + + + +![](img/envshare.png) + +## Built with + +- [Next.js](https://nextjs.org) +- [tailwindcss](https://tailwindcss.com) +- Deployed on [Vercel](https://vercel.com?utm_source=envshare) +- Data stored on [Upstash](https://upstash.com?utm_source=envshare) + +## Deploy your own + +Detailed instructions can be found [here](https://envshare.dev/deploy) + +All you need is a Redis database on Upstash and a Vercel account. Click the +button below to clone and deploy: + +[![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) + + + +## Configuration + +### Environment Variables + +`ENABLE_VERCEL_ANALYTICS` Any truthy value will enable Vercel Analytics. This is turned off by default + +## Contributing + +This repository uses `pnpm` to manage dependencies. Install it using +`npm install -g pnpm` + +Please run `pnpm fmt` before committing to format the code. + +## Docs + +Docs in the README are temporary and will be moved to the website soon. + +### API + +#### Store a secret + +**PLEASE NEVER EVER UPLOAD UNENCRYPTED SECRETS.** + +This endpoint is only meant to store **already encrypted** secrets. The +encrypted secrets are stored in plain text. + +```sh-session +$ curl -XPOST -s https://envshare.dev/api/v1/secret -d "already-encrypted-secret" +``` + +You can add optional headers to configure the ttl and number of reads. + +```sh-session +$ curl -XPOST -s https://envshare.dev/api/v1/secret -d "already-encrypted-secret" -H "envshare-ttl: 3600" -H "envshare-reads: 10" +``` + +- Omitting the `envshare-ttl` header will set a default of 30 days. Disable the + ttl by setting it to 0. (`envshare-ttl: 0`) +- Omitting the `envshare-reads` header will simply disable it and allow reading + for an unlimited number of times. + +This endpoint returns a JSON response with the secret id: + +```json +{ + "data": { + "id": "HdPbXgpvUvNk43oxSdK97u", + "ttl": 86400, + "reads": 2, + "expiresAt": "2023-01-19T20:47:28.383Z", + "url": "http://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u" + } +} +``` + +#### Retrieve a secret + +You need an id to retrieve a secret. The id is returned when you store a secret. + +```sh-session +$ curl -s https://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u +``` + +```json +{ + "data": { + "secret": "Hello", + "remainingReads": 1 + } +} +``` \ No newline at end of file diff --git a/content/projects/planetfall.mdx b/content/projects/planetfall.mdx new file mode 100644 index 00000000..a4d4675e --- /dev/null +++ b/content/projects/planetfall.mdx @@ -0,0 +1,8 @@ +--- +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 + +--- +TODO: \ No newline at end of file diff --git a/content/projects/qstash.mdx b/content/projects/qstash.mdx new file mode 100644 index 00000000..0c9d520f --- /dev/null +++ b/content/projects/qstash.mdx @@ -0,0 +1,9 @@ +--- +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 + +--- + +TODO: \ No newline at end of file diff --git a/content/projects/redis-query.mdx b/content/projects/redis-query.mdx new file mode 100644 index 00000000..1cdd6327 --- /dev/null +++ b/content/projects/redis-query.mdx @@ -0,0 +1,8 @@ +--- +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 + +--- + +TODO: \ No newline at end of file diff --git a/content/projects/terraform-provider-vercel.mdx b/content/projects/terraform-provider-vercel.mdx new file mode 100644 index 00000000..0dddb478 --- /dev/null +++ b/content/projects/terraform-provider-vercel.mdx @@ -0,0 +1,7 @@ +--- +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 +--- +TODO: \ No newline at end of file diff --git a/content/projects/upstash-auth-analytics.mdx b/content/projects/upstash-auth-analytics.mdx new file mode 100644 index 00000000..68dc478f --- /dev/null +++ b/content/projects/upstash-auth-analytics.mdx @@ -0,0 +1,9 @@ +--- +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 + +--- + +TODO: \ No newline at end of file diff --git a/content/projects/upstash-cli.mdx b/content/projects/upstash-cli.mdx new file mode 100644 index 00000000..61026b71 --- /dev/null +++ b/content/projects/upstash-cli.mdx @@ -0,0 +1,10 @@ +--- +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 + +--- + +TODO: \ No newline at end of file diff --git a/content/projects/upstash-core-analytics.mdx b/content/projects/upstash-core-analytics.mdx new file mode 100644 index 00000000..dc8ff66e --- /dev/null +++ b/content/projects/upstash-core-analytics.mdx @@ -0,0 +1,10 @@ +--- +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 + +--- + +TODO: \ No newline at end of file diff --git a/content/projects/upstash-edge-flags.mdx b/content/projects/upstash-edge-flags.mdx new file mode 100644 index 00000000..14c2ddb9 --- /dev/null +++ b/content/projects/upstash-edge-flags.mdx @@ -0,0 +1,10 @@ +--- +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 + +--- + +TODO: \ No newline at end of file diff --git a/content/projects/upstash-kafka.mdx b/content/projects/upstash-kafka.mdx new file mode 100644 index 00000000..2bf18931 --- /dev/null +++ b/content/projects/upstash-kafka.mdx @@ -0,0 +1,10 @@ +--- +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 + +--- + +TODO: \ No newline at end of file diff --git a/content/projects/upstash-qstash-sdk.mdx b/content/projects/upstash-qstash-sdk.mdx new file mode 100644 index 00000000..97cdb218 --- /dev/null +++ b/content/projects/upstash-qstash-sdk.mdx @@ -0,0 +1,9 @@ +--- +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 +--- + +TODO: \ No newline at end of file diff --git a/content/projects/upstash-ratelimit-analytics b/content/projects/upstash-ratelimit-analytics new file mode 100644 index 00000000..20d1ecd5 --- /dev/null +++ b/content/projects/upstash-ratelimit-analytics @@ -0,0 +1,10 @@ +--- +title: Upstash Ratelimit Analytics +description: Near realtime analytics for your ratelimits. Integrated into the @upstash/ratelimit library. +repository: upstash/ratelimit +date: "2023-03-01" +website: https://console.upstash.com/ratelimit + +--- + +TODO: \ No newline at end of file diff --git a/content/projects/upstash-ratelimit.mdx b/content/projects/upstash-ratelimit.mdx new file mode 100644 index 00000000..f7025386 --- /dev/null +++ b/content/projects/upstash-ratelimit.mdx @@ -0,0 +1,10 @@ +--- +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 + +--- + +TODO: \ No newline at end of file diff --git a/content/projects/upstash-react-ui.mdx b/content/projects/upstash-react-ui.mdx new file mode 100644 index 00000000..da422863 --- /dev/null +++ b/content/projects/upstash-react-ui.mdx @@ -0,0 +1,10 @@ +--- +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 + +--- + +TODO: \ No newline at end of file diff --git a/content/projects/upstash-redis.mdx b/content/projects/upstash-redis.mdx new file mode 100644 index 00000000..4b1dd130 --- /dev/null +++ b/content/projects/upstash-redis.mdx @@ -0,0 +1,10 @@ +--- +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 + +--- + +TODO: \ No newline at end of file diff --git a/content/projects/upstash-web-analytics b/content/projects/upstash-web-analytics new file mode 100644 index 00000000..c5b97692 --- /dev/null +++ b/content/projects/upstash-web-analytics @@ -0,0 +1,8 @@ +--- +title: Upstash Web Analytics +description: A library to record and analyse web page traffic and user behaviour +repository: upstash/web-analytics + +--- + +TODO: \ No newline at end of file diff --git a/contentlayer.config.js b/contentlayer.config.js new file mode 100644 index 00000000..8cf81047 --- /dev/null +++ b/contentlayer.config.js @@ -0,0 +1,99 @@ +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"; + +/** @type {import('contentlayer/source-files').ComputedFields} */ +const computedFields = { + path: { + type: "string", + resolve: (doc) => `/${doc._raw.flattenedPath}`, + }, + slug: { + type: "string", + resolve: (doc) => doc._raw.flattenedPath.split("/").slice(1).join("/"), + }, +}; + +export const Project = defineDocumentType(() => ({ + name: "Project", + filePathPattern: "./projects/**/*.mdx", + contentType: "mdx", + + fields: { + title: { + type: "string", + required: true, + }, + description: { + type: "string", + required: true, + }, + date: { + type: "date", + }, + url: { + type: "string", + }, + repository: { + type: "string", + }, + }, + computedFields, +})); + +export const Page = defineDocumentType(() => ({ + name: "Page", + filePathPattern: "pages/**/*.mdx", + contentType: "mdx", + fields: { + title: { + type: "string", + required: true, + }, + description: { + type: "string", + }, + }, + computedFields, +})); + +export default makeSource({ + contentDirPath: "./content", + documentTypes: [Page, Project], + mdx: { + remarkPlugins: [remarkGfm], + rehypePlugins: [ + rehypeSlug, + [ + rehypePrettyCode, + { + theme: "github-dark", + onVisitLine(node) { + // Prevent lines from collapsing in `display: grid` mode, and allow empty + // lines to be copy/pasted + 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", + }, + }, + ], + ], + }, +}); diff --git a/mdx-components.tsx b/mdx-components.tsx new file mode 100644 index 00000000..6d9d8516 --- /dev/null +++ b/mdx-components.tsx @@ -0,0 +1,17 @@ +import { PropsWithChildren } from "react"; + +// This file is required to use MDX in `app` directory. +export function useMDXComponents(components: any): any { + return { + // Allows customizing built-in components, e.g. to add styling. + h1: ({ children }: PropsWithChildren) => ( +

      + {children} +

      + ), + h2: ({ children }: PropsWithChildren) => ( +

      {children}

      + ), + ...components, + }; +} diff --git a/next.config.js b/next.config.js deleted file mode 100644 index 8d3bdd45..00000000 --- a/next.config.js +++ /dev/null @@ -1,11 +0,0 @@ -/** @type {import('next').NextConfig} */ -const nextConfig = { - experimental: { - appDir: true, - }, - images: { - domains: ["pbs.twimg.com"], - }, -}; - -module.exports = nextConfig; diff --git a/next.config.mjs b/next.config.mjs new file mode 100644 index 00000000..82c609af --- /dev/null +++ b/next.config.mjs @@ -0,0 +1,15 @@ +import { withContentlayer } from "next-contentlayer"; + +/** @type {import('next').NextConfig} */ +const nextConfig = { + pageExtensions: ["js", "jsx", "ts", "tsx", "md", "mdx"], + experimental: { + appDir: true, + mdxRs: true, + }, + images: { + domains: ["pbs.twimg.com"], + }, +}; + +export default withContentlayer(nextConfig); diff --git a/package.json b/package.json index ae0c36dc..b62901d1 100644 --- a/package.json +++ b/package.json @@ -10,14 +10,22 @@ }, "dependencies": { "@next/font": "^13.2.1", + "@next/mdx": "^13.2.1", "@types/node": "18.14.1", "@types/react": "18.0.28", "@types/react-dom": "18.0.11", "@vercel/analytics": "^0.1.10", + "contentlayer": "^0.3.0", "lucide-react": "^0.115.0", + "markdown-wasm": "^1.2.0", "next": "13.2.1", + "next-contentlayer": "^0.3.0", "react": "18.2.0", "react-dom": "18.2.0", + "rehype-autolink-headings": "^6.1.1", + "rehype-pretty-code": "^0.9.4", + "rehype-slug": "^5.1.0", + "remark-gfm": "^3.0.1", "typescript": "4.9.5" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8abaf015..acb8c155 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2,6 +2,7 @@ lockfileVersion: 5.4 specifiers: '@next/font': ^13.2.1 + '@next/mdx': ^13.2.1 '@tailwindcss/line-clamp': ^0.4.2 '@tailwindcss/typography': ^0.5.9 '@types/node': 18.14.1 @@ -9,12 +10,19 @@ specifiers: '@types/react-dom': 18.0.11 '@vercel/analytics': ^0.1.10 autoprefixer: ^10.4.13 + contentlayer: ^0.3.0 lucide-react: ^0.115.0 + markdown-wasm: ^1.2.0 next: 13.2.1 + next-contentlayer: ^0.3.0 postcss: ^8.4.21 postcss-nesting: ^11.2.1 react: 18.2.0 react-dom: 18.2.0 + rehype-autolink-headings: ^6.1.1 + rehype-pretty-code: ^0.9.4 + rehype-slug: ^5.1.0 + remark-gfm: ^3.0.1 rome: ^11.0.0 tailwindcss: ^3.2.7 tailwindcss-debug-screens: ^2.2.1 @@ -22,14 +30,22 @@ specifiers: dependencies: '@next/font': 13.2.1 + '@next/mdx': 13.2.1 '@types/node': 18.14.1 '@types/react': 18.0.28 '@types/react-dom': 18.0.11 '@vercel/analytics': 0.1.10_react@18.2.0 + contentlayer: 0.3.0_ui6uvxfppeck4ve6baobv322ca lucide-react: 0.115.0_react@18.2.0 - next: 13.2.1_biqbaboplfbrettd7655fr4n2y + markdown-wasm: 1.2.0 + next: 13.2.1_rfdx5ocjtvb4b2h5j5ipjicct4 + next-contentlayer: 0.3.0_scjb6dpb3mjs6ovmhgft7llkle react: 18.2.0 react-dom: 18.2.0_react@18.2.0 + rehype-autolink-headings: 6.1.1 + rehype-pretty-code: 0.9.4_shiki@0.14.1 + rehype-slug: 5.1.0 + remark-gfm: 3.0.1 typescript: 4.9.5 devDependencies: @@ -44,6 +60,134 @@ devDependencies: packages: + /@babel/runtime/7.21.0: + resolution: {integrity: sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.11 + dev: false + + /@contentlayer/cli/0.3.0_ui6uvxfppeck4ve6baobv322ca: + resolution: {integrity: sha512-Mqb6NlIKINt2qsPKft+o8m5tJhJXVgVSd0zP1BH+CQRmvR/zwTT3maz1bDCPHBYGKgGCQKtvgM66IjvH+dmC6Q==} + dependencies: + '@contentlayer/core': 0.3.0_ui6uvxfppeck4ve6baobv322ca + '@contentlayer/utils': 0.3.0 + clipanion: 3.2.0_typanion@3.12.1 + typanion: 3.12.1 + transitivePeerDependencies: + - '@effect-ts/otel-node' + - esbuild + - markdown-wasm + - supports-color + dev: false + + /@contentlayer/client/0.3.0_ui6uvxfppeck4ve6baobv322ca: + resolution: {integrity: sha512-yzDYiZtqOJwWrsykieA1LMnhKbaYcJhAy7s8Xs7zU5wFfyBTO258gvmK5dVi4LuzmOOPVMJn6FpEofT/RAKVtg==} + dependencies: + '@contentlayer/core': 0.3.0_ui6uvxfppeck4ve6baobv322ca + transitivePeerDependencies: + - '@effect-ts/otel-node' + - esbuild + - markdown-wasm + - supports-color + dev: false + + /@contentlayer/core/0.3.0_ui6uvxfppeck4ve6baobv322ca: + resolution: {integrity: sha512-5cL4W0nK9kNqxgBkIgauUko0SRAHf8oPoxRhdsSPQ7FSCgZGz2crMeSJOFmj3a3govh863/mKhXfkoUJBoDgnA==} + peerDependencies: + esbuild: 0.17.x + markdown-wasm: 1.x + peerDependenciesMeta: + esbuild: + optional: true + markdown-wasm: + optional: true + dependencies: + '@contentlayer/utils': 0.3.0 + camel-case: 4.1.2 + comment-json: 4.2.3 + esbuild: 0.17.10 + gray-matter: 4.0.3 + markdown-wasm: 1.2.0 + mdx-bundler: 9.2.1_esbuild@0.17.10 + rehype-stringify: 9.0.3 + remark-frontmatter: 4.0.1 + remark-parse: 10.0.1 + remark-rehype: 10.1.0 + source-map-support: 0.5.21 + type-fest: 3.6.1 + unified: 10.1.2 + transitivePeerDependencies: + - '@effect-ts/otel-node' + - supports-color + dev: false + + /@contentlayer/source-files/0.3.0_ui6uvxfppeck4ve6baobv322ca: + resolution: {integrity: sha512-6crNuRdWGYFec0Kn/DpbrzpOu8bttFmOmOpX1HIYQz4iPisg+8biybLBiNU7Y6aCUjEZLOnM7AaHpMFvhrYWsw==} + dependencies: + '@contentlayer/core': 0.3.0_ui6uvxfppeck4ve6baobv322ca + '@contentlayer/utils': 0.3.0 + chokidar: 3.5.3 + fast-glob: 3.2.12 + gray-matter: 4.0.3 + imagescript: 1.2.16 + micromatch: 4.0.5 + ts-pattern: 4.2.1 + unified: 10.1.2 + yaml: 1.10.2 + zod: 3.20.6 + transitivePeerDependencies: + - '@effect-ts/otel-node' + - esbuild + - markdown-wasm + - supports-color + dev: false + + /@contentlayer/source-remote-files/0.3.0_ui6uvxfppeck4ve6baobv322ca: + resolution: {integrity: sha512-4PnaK5cfQiduMUEO6nzqsD4ttD5RG4ffcyeSp5MLhpU0DTEZcfGXFRO777ddEI8PZ0/NJuhfz9MGbdO90QYlsw==} + dependencies: + '@contentlayer/core': 0.3.0_ui6uvxfppeck4ve6baobv322ca + '@contentlayer/source-files': 0.3.0_ui6uvxfppeck4ve6baobv322ca + '@contentlayer/utils': 0.3.0 + transitivePeerDependencies: + - '@effect-ts/otel-node' + - esbuild + - markdown-wasm + - supports-color + dev: false + + /@contentlayer/utils/0.3.0: + resolution: {integrity: sha512-GJF8Z67bf8KJbMqtZgt3G/m4Um93XrcryMJ+2Q1SUBRCEDuMcm8iLPaSbMQ0+gjxyW0GWHnR1oM+qyzaWTPgdg==} + peerDependencies: + '@effect-ts/otel-node': '*' + peerDependenciesMeta: + '@effect-ts/core': + optional: true + '@effect-ts/otel': + optional: true + '@effect-ts/otel-node': + optional: true + dependencies: + '@effect-ts/core': 0.60.5 + '@effect-ts/otel': 0.14.1_5u6uu645xsdgke5uan4tpxejte + '@effect-ts/otel-exporter-trace-otlp-grpc': 0.14.1_fmrvaem7w2f5ngmgqni7goprci + '@effect-ts/otel-sdk-trace-node': 0.14.1_hv2rnn6sth5zqevnyab6kulypq + '@js-temporal/polyfill': 0.4.3 + '@opentelemetry/api': 1.1.0 + '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/exporter-trace-otlp-grpc': 0.31.0_@opentelemetry+api@1.1.0 + '@opentelemetry/resources': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/sdk-trace-base': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/sdk-trace-node': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/semantic-conventions': 1.5.0 + chokidar: 3.5.3 + hash-wasm: 4.9.0 + inflection: 2.0.1 + oo-ascii-tree: 1.76.0 + ts-pattern: 4.2.1 + type-fest: 3.6.1 + dev: false + /@csstools/selector-specificity/2.1.1_wajs5nedgkikc5pcuwett7legi: resolution: {integrity: sha512-jwx+WCqszn53YHOfvFMJJRd/B2GqkCBt+1MJSG6o5/s8+ytHMvDZXsJgUEWLk12UnLd7HYKac4BYU5i/Ron1Cw==} engines: {node: ^14 || ^16 || >=18} @@ -55,6 +199,357 @@ packages: postcss-selector-parser: 6.0.11 dev: true + /@effect-ts/core/0.60.5: + resolution: {integrity: sha512-qi1WrtJA90XLMnj2hnUszW9Sx4dXP03ZJtCc5DiUBIOhF4Vw7plfb65/bdBySPoC9s7zy995TdUX1XBSxUkl5w==} + dependencies: + '@effect-ts/system': 0.57.5 + dev: false + + /@effect-ts/otel-exporter-trace-otlp-grpc/0.14.1_fmrvaem7w2f5ngmgqni7goprci: + resolution: {integrity: sha512-eb6dJhVKnjS1v8afdPm+wuZ3JeX2Gt3GJA9Vw5D2aESE7wa3mrpElsNNbDXn6rhgyjZq3VWYY/NXVtLAFOQIbQ==} + peerDependencies: + '@effect-ts/core': ^0.60.2 + '@opentelemetry/api': ^1.1.0 + '@opentelemetry/core': ^1.5.0 + '@opentelemetry/exporter-trace-otlp-grpc': ^0.31.0 + '@opentelemetry/sdk-trace-base': ^1.5.0 + dependencies: + '@effect-ts/core': 0.60.5 + '@effect-ts/otel': 0.14.1_5u6uu645xsdgke5uan4tpxejte + '@opentelemetry/api': 1.1.0 + '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/exporter-trace-otlp-grpc': 0.31.0_@opentelemetry+api@1.1.0 + '@opentelemetry/sdk-trace-base': 1.5.0_@opentelemetry+api@1.1.0 + dev: false + + /@effect-ts/otel-sdk-trace-node/0.14.1_hv2rnn6sth5zqevnyab6kulypq: + resolution: {integrity: sha512-j5ynRvd0H+Fp9aH/5NOtBd1ogNMpNB3r7uiXOKRPlfKUOtdx4KsCt2cPBjChMvyLstj8dkjtWE4loLSTYkWPuA==} + peerDependencies: + '@effect-ts/core': ^0.60.2 + '@opentelemetry/api': ^1.1.0 + '@opentelemetry/core': ^1.5.0 + '@opentelemetry/sdk-trace-base': ^1.5.0 + '@opentelemetry/sdk-trace-node': ^1.5.0 + dependencies: + '@effect-ts/core': 0.60.5 + '@effect-ts/otel': 0.14.1_5u6uu645xsdgke5uan4tpxejte + '@opentelemetry/api': 1.1.0 + '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/sdk-trace-base': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/sdk-trace-node': 1.5.0_@opentelemetry+api@1.1.0 + dev: false + + /@effect-ts/otel/0.14.1_5u6uu645xsdgke5uan4tpxejte: + resolution: {integrity: sha512-WtkxdoM1M8bl7F1mrSwBZQJAIaUXcupePrllL7iZnvSfUVhYXV98gRTV6EiVT+prX7rzCW4wPkF/XsyWbtMDtA==} + peerDependencies: + '@effect-ts/core': ^0.60.2 + '@opentelemetry/api': ^1.1.0 + '@opentelemetry/core': ^1.5.0 + '@opentelemetry/sdk-trace-base': ^1.5.0 + dependencies: + '@effect-ts/core': 0.60.5 + '@opentelemetry/api': 1.1.0 + '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/sdk-trace-base': 1.5.0_@opentelemetry+api@1.1.0 + dev: false + + /@effect-ts/system/0.57.5: + resolution: {integrity: sha512-/crHGujo0xnuHIYNc1VgP0HGJGFSoSqq88JFXe6FmFyXPpWt8Xu39LyLg7rchsxfXFeEdA9CrIZvLV5eswXV5g==} + dev: false + + /@esbuild-plugins/node-resolve/0.1.4_esbuild@0.17.10: + resolution: {integrity: sha512-haFQ0qhxEpqtWWY0kx1Y5oE3sMyO1PcoSiWEPrAw6tm/ZOOLXjSs6Q+v1v9eyuVF0nNt50YEvrcrvENmyoMv5g==} + peerDependencies: + esbuild: '*' + dependencies: + '@types/resolve': 1.20.2 + debug: 4.3.4 + esbuild: 0.17.10 + escape-string-regexp: 4.0.0 + resolve: 1.22.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@esbuild/android-arm/0.17.10: + resolution: {integrity: sha512-7YEBfZ5lSem9Tqpsz+tjbdsEshlO9j/REJrfv4DXgKTt1+/MHqGwbtlyxQuaSlMeUZLxUKBaX8wdzlTfHkmnLw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@esbuild/android-arm64/0.17.10: + resolution: {integrity: sha512-ht1P9CmvrPF5yKDtyC+z43RczVs4rrHpRqrmIuoSvSdn44Fs1n6DGlpZKdK6rM83pFLbVaSUwle8IN+TPmkv7g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@esbuild/android-x64/0.17.10: + resolution: {integrity: sha512-CYzrm+hTiY5QICji64aJ/xKdN70IK8XZ6iiyq0tZkd3tfnwwSWTYH1t3m6zyaaBxkuj40kxgMyj1km/NqdjQZA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@esbuild/darwin-arm64/0.17.10: + resolution: {integrity: sha512-3HaGIowI+nMZlopqyW6+jxYr01KvNaLB5znXfbyyjuo4lE0VZfvFGcguIJapQeQMS4cX/NEispwOekJt3gr5Dg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@esbuild/darwin-x64/0.17.10: + resolution: {integrity: sha512-J4MJzGchuCRG5n+B4EHpAMoJmBeAE1L3wGYDIN5oWNqX0tEr7VKOzw0ymSwpoeSpdCa030lagGUfnfhS7OvzrQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@esbuild/freebsd-arm64/0.17.10: + resolution: {integrity: sha512-ZkX40Z7qCbugeK4U5/gbzna/UQkM9d9LNV+Fro8r7HA7sRof5Rwxc46SsqeMvB5ZaR0b1/ITQ/8Y1NmV2F0fXQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + + /@esbuild/freebsd-x64/0.17.10: + resolution: {integrity: sha512-0m0YX1IWSLG9hWh7tZa3kdAugFbZFFx9XrvfpaCMMvrswSTvUZypp0NFKriUurHpBA3xsHVE9Qb/0u2Bbi/otg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-arm/0.17.10: + resolution: {integrity: sha512-whRdrrl0X+9D6o5f0sTZtDM9s86Xt4wk1bf7ltx6iQqrIIOH+sre1yjpcCdrVXntQPCNw/G+XqsD4HuxeS+2QA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-arm64/0.17.10: + resolution: {integrity: sha512-g1EZJR1/c+MmCgVwpdZdKi4QAJ8DCLP5uTgLWSAVd9wlqk9GMscaNMEViG3aE1wS+cNMzXXgdWiW/VX4J+5nTA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-ia32/0.17.10: + resolution: {integrity: sha512-1vKYCjfv/bEwxngHERp7huYfJ4jJzldfxyfaF7hc3216xiDA62xbXJfRlradiMhGZbdNLj2WA1YwYFzs9IWNPw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-loong64/0.17.10: + resolution: {integrity: sha512-mvwAr75q3Fgc/qz3K6sya3gBmJIYZCgcJ0s7XshpoqIAIBszzfXsqhpRrRdVFAyV1G9VUjj7VopL2HnAS8aHFA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-mips64el/0.17.10: + resolution: {integrity: sha512-XilKPgM2u1zR1YuvCsFQWl9Fc35BqSqktooumOY2zj7CSn5czJn279j9TE1JEqSqz88izJo7yE4x3LSf7oxHzg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-ppc64/0.17.10: + resolution: {integrity: sha512-kM4Rmh9l670SwjlGkIe7pYWezk8uxKHX4Lnn5jBZYBNlWpKMBCVfpAgAJqp5doLobhzF3l64VZVrmGeZ8+uKmQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-riscv64/0.17.10: + resolution: {integrity: sha512-r1m9ZMNJBtOvYYGQVXKy+WvWd0BPvSxMsVq8Hp4GzdMBQvfZRvRr5TtX/1RdN6Va8JMVQGpxqde3O+e8+khNJQ==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-s390x/0.17.10: + resolution: {integrity: sha512-LsY7QvOLPw9WRJ+fU5pNB3qrSfA00u32ND5JVDrn/xG5hIQo3kvTxSlWFRP0NJ0+n6HmhPGG0Q4jtQsb6PFoyg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-x64/0.17.10: + resolution: {integrity: sha512-zJUfJLebCYzBdIz/Z9vqwFjIA7iSlLCFvVi7glMgnu2MK7XYigwsonXshy9wP9S7szF+nmwrelNaP3WGanstEg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/netbsd-x64/0.17.10: + resolution: {integrity: sha512-lOMkailn4Ok9Vbp/q7uJfgicpDTbZFlXlnKT2DqC8uBijmm5oGtXAJy2ZZVo5hX7IOVXikV9LpCMj2U8cTguWA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: false + optional: true + + /@esbuild/openbsd-x64/0.17.10: + resolution: {integrity: sha512-/VE0Kx6y7eekqZ+ZLU4AjMlB80ov9tEz4H067Y0STwnGOYL8CsNg4J+cCmBznk1tMpxMoUOf0AbWlb1d2Pkbig==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: false + optional: true + + /@esbuild/sunos-x64/0.17.10: + resolution: {integrity: sha512-ERNO0838OUm8HfUjjsEs71cLjLMu/xt6bhOlxcJ0/1MG3hNqCmbWaS+w/8nFLa0DDjbwZQuGKVtCUJliLmbVgg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: false + optional: true + + /@esbuild/win32-arm64/0.17.10: + resolution: {integrity: sha512-fXv+L+Bw2AeK+XJHwDAQ9m3NRlNemG6Z6ijLwJAAVdu4cyoFbBWbEtyZzDeL+rpG2lWI51cXeMt70HA8g2MqIg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@esbuild/win32-ia32/0.17.10: + resolution: {integrity: sha512-3s+HADrOdCdGOi5lnh5DMQEzgbsFsd4w57L/eLKKjMnN0CN4AIEP0DCP3F3N14xnxh3ruNc32A0Na9zYe1Z/AQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@esbuild/win32-x64/0.17.10: + resolution: {integrity: sha512-oP+zFUjYNaMNmjTwlFtWep85hvwUu19cZklB3QsBOcZSs6y7hmH4LNCJ7075bsqzYaNvZFXJlAVaQ2ApITDXtw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@fal-works/esbuild-plugin-global-externals/2.1.2: + resolution: {integrity: sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==} + dev: false + + /@grpc/grpc-js/1.8.11: + resolution: {integrity: sha512-f/xC+6Z2QKsRJ+VSSFlt4hA5KSRm+PKvMWV8kMPkMgGlFidR6PeIkXrOasIY2roe+WROM6GFQLlgDKfeEZo2YQ==} + engines: {node: ^8.13.0 || >=10.10.0} + dependencies: + '@grpc/proto-loader': 0.7.5 + '@types/node': 18.14.1 + dev: false + + /@grpc/proto-loader/0.6.13: + resolution: {integrity: sha512-FjxPYDRTn6Ec3V0arm1FtSpmP6V50wuph2yILpyvTKzjc76oDdoihXqM1DzOW5ubvCC8GivfCnNtfaRE8myJ7g==} + engines: {node: '>=6'} + hasBin: true + dependencies: + '@types/long': 4.0.2 + lodash.camelcase: 4.3.0 + long: 4.0.0 + protobufjs: 6.11.3 + yargs: 16.2.0 + dev: false + + /@grpc/proto-loader/0.7.5: + resolution: {integrity: sha512-mfcTuMbFowq1wh/Rn5KQl6qb95M21Prej3bewD9dUQMurYGVckGO/Pbe2Ocwto6sD05b/mxZLspvqwx60xO2Rg==} + engines: {node: '>=6'} + hasBin: true + dependencies: + '@types/long': 4.0.2 + lodash.camelcase: 4.3.0 + long: 4.0.0 + protobufjs: 7.2.2 + yargs: 16.2.0 + dev: false + + /@js-temporal/polyfill/0.4.3: + resolution: {integrity: sha512-6Fmjo/HlkyVCmJzAPnvtEWlcbQUSRhi8qlN9EtJA/wP7FqXsevLLrlojR44kzNzrRkpf7eDJ+z7b4xQD/Ycypw==} + engines: {node: '>=12'} + dependencies: + jsbi: 4.3.0 + tslib: 2.5.0 + dev: false + + /@mdx-js/esbuild/2.3.0_esbuild@0.17.10: + resolution: {integrity: sha512-r/vsqsM0E+U4Wr0DK+0EfmABE/eg+8ITW4DjvYdh3ve/tK2safaqHArNnaqbOk1DjYGrhxtoXoGaM3BY8fGBTA==} + peerDependencies: + esbuild: '>=0.11.0' + dependencies: + '@mdx-js/mdx': 2.3.0 + esbuild: 0.17.10 + node-fetch: 3.3.0 + vfile: 5.3.7 + transitivePeerDependencies: + - supports-color + dev: false + + /@mdx-js/mdx/2.3.0: + resolution: {integrity: sha512-jLuwRlz8DQfQNiUCJR50Y09CGPq3fLtmtUQfVrj79E0JWu3dvsVcxVIcfhR5h0iXu+/z++zDrYeiJqifRynJkA==} + dependencies: + '@types/estree-jsx': 1.0.0 + '@types/mdx': 2.0.3 + estree-util-build-jsx: 2.2.2 + estree-util-is-identifier-name: 2.1.0 + estree-util-to-js: 1.2.0 + estree-walker: 3.0.3 + hast-util-to-estree: 2.3.2 + markdown-extensions: 1.1.1 + periscopic: 3.1.0 + remark-mdx: 2.3.0 + remark-parse: 10.0.1 + remark-rehype: 10.1.0 + unified: 10.1.2 + unist-util-position-from-estree: 1.1.2 + unist-util-stringify-position: 3.0.3 + unist-util-visit: 4.1.2 + vfile: 5.3.7 + transitivePeerDependencies: + - supports-color + dev: false + /@next/env/13.2.1: resolution: {integrity: sha512-Hq+6QZ6kgmloCg8Kgrix+4F0HtvLqVK3FZAnlAoS0eonaDemHe1Km4kwjSWRE3JNpJNcKxFHF+jsZrYo0SxWoQ==} dev: false @@ -63,6 +558,20 @@ packages: resolution: {integrity: sha512-4sergLt7xp9+mZuKME/xM4tLlHGTcmL7naCq0qCTcAlof6NnttshYgiLOdhSiy0NcI+/yM3BjvdEk++O96UzTg==} dev: false + /@next/mdx/13.2.1: + resolution: {integrity: sha512-kWriuAxU3euPUugwoOI7WEo596QeHsxrbneKvItwrfu4YYZZLKNPHSnkLHvF7tlO9TjiPbFqYlK2xHK02Lp2SA==} + peerDependencies: + '@mdx-js/loader': '>=0.15.0' + '@mdx-js/react': '>=0.15.0' + peerDependenciesMeta: + '@mdx-js/loader': + optional: true + '@mdx-js/react': + optional: true + dependencies: + source-map: 0.7.4 + dev: false + /@next/swc-android-arm-eabi/13.2.1: resolution: {integrity: sha512-Yua7mUpEd1wzIT6Jjl3dpRizIfGp9NR4F2xeRuQv+ae+SDI1Em2WyM9m46UL+oeW5GpMiEHoaBagr47RScZFmQ==} engines: {node: '>= 10'} @@ -186,12 +695,10 @@ packages: dependencies: '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 - dev: true /@nodelib/fs.stat/2.0.5: resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} - dev: true /@nodelib/fs.walk/1.2.8: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} @@ -199,36 +706,240 @@ packages: dependencies: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 - dev: true - /@rometools/cli-darwin-arm64/11.0.0: - resolution: {integrity: sha512-F3vkdY+s3FLIEnAjSbyHTuIPB88cLpccimW4ecid5I7S6GzGG3iUJI4xT00JhH73K4P/qW20/9r+kH1T9Du8Xg==} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true + /@opentelemetry/api-metrics/0.31.0: + resolution: {integrity: sha512-PcL1x0kZtMie7NsNy67OyMvzLEXqf3xd0TZJKHHPMGTe89oMpNVrD1zJB1kZcwXOxLlHHb6tz21G3vvXPdXyZg==} + engines: {node: '>=14'} + deprecated: Please use @opentelemetry/api >= 1.3.0 + dependencies: + '@opentelemetry/api': 1.1.0 + dev: false - /@rometools/cli-darwin-x64/11.0.0: - resolution: {integrity: sha512-X6jhtS6Iml4GOzgNtnLwIp/KXXhSdqeVyfv69m/AHnIzx3gQAjPZ7BPnJLvTCbhe4SKHL+uTZYFSCJpkUUKE6w==} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true + /@opentelemetry/api/1.1.0: + resolution: {integrity: sha512-hf+3bwuBwtXsugA2ULBc95qxrOqP2pOekLz34BJhcAKawt94vfeNyUKpYc0lZQ/3sCP6LqRa7UAdHA7i5UODzQ==} + engines: {node: '>=8.0.0'} + dev: false - /@rometools/cli-linux-arm64/11.0.0: - resolution: {integrity: sha512-dktTJJlTpmycBZ2TwhJBcAO8ztK8DdevdyZnFFxdYRvtmJgTjIsC2UFayf/SbKew8B8q1IhI0it+D6ihAeIpeg==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true + /@opentelemetry/context-async-hooks/1.5.0_@opentelemetry+api@1.1.0: + resolution: {integrity: sha512-mhBPP0BU0RaH2HB8U4MDd5OjWA1y7SoLOovCT0iEpJAltaq2z04uxRJVzIs91vkpNnV0utUZowQQD3KElgU+VA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.2.0' + dependencies: + '@opentelemetry/api': 1.1.0 + dev: false - /@rometools/cli-linux-x64/11.0.0: - resolution: {integrity: sha512-WVcnXPNdWGUWo0p4NU8YzuthjYR7q+b4vRcjdxtP1DlpphZmSsoC/RSE85nEqRAz8hChcKUansVzOPM8BSsuGA==} - cpu: [x64] - os: [linux] + /@opentelemetry/core/1.5.0_@opentelemetry+api@1.1.0: + resolution: {integrity: sha512-B3DIMkQN0DANrr7XrMLS4pR6d2o/jqT09x4nZJz6wSJ9SHr4eQIqeFBNeEUQG1I+AuOcH2UbJtgFm7fKxLqd+w==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.2.0' + dependencies: + '@opentelemetry/api': 1.1.0 + '@opentelemetry/semantic-conventions': 1.5.0 + dev: false + + /@opentelemetry/exporter-trace-otlp-grpc/0.31.0_@opentelemetry+api@1.1.0: + resolution: {integrity: sha512-WapHtHPLOFObRMvtfRJX/EBRZS4YLpRY8E/OtIQmmAqwImDMAnMVF9fAjP6DSE/thOIN3Ot0/PLK5zFZUVV8SA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@grpc/grpc-js': 1.8.11 + '@grpc/proto-loader': 0.6.13 + '@opentelemetry/api': 1.1.0 + '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/otlp-grpc-exporter-base': 0.31.0_@opentelemetry+api@1.1.0 + '@opentelemetry/otlp-transformer': 0.31.0_@opentelemetry+api@1.1.0 + '@opentelemetry/resources': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/sdk-trace-base': 1.5.0_@opentelemetry+api@1.1.0 + dev: false + + /@opentelemetry/otlp-exporter-base/0.31.0_@opentelemetry+api@1.1.0: + resolution: {integrity: sha512-MI+LtGo/ZYL/g7ldWTAY9vMjMqlcWMj2undgcnq8Y5BoDLI8oBwGn//Lizjk4NikF+SkcolKB3+U05nCeT5djg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.1.0 + '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 + dev: false + + /@opentelemetry/otlp-grpc-exporter-base/0.31.0_@opentelemetry+api@1.1.0: + resolution: {integrity: sha512-TfNZsQhWNd05CAaOwgN2lVthC8mkxvoArV6LfSyKyqSZ6srCnYPuW64yS/9buEhNvTkT3y63dzkVSnnv/1b3ow==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@grpc/grpc-js': 1.8.11 + '@grpc/proto-loader': 0.6.13 + '@opentelemetry/api': 1.1.0 + '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/otlp-exporter-base': 0.31.0_@opentelemetry+api@1.1.0 + dev: false + + /@opentelemetry/otlp-transformer/0.31.0_@opentelemetry+api@1.1.0: + resolution: {integrity: sha512-xCEsB0gTs7s/FMEv8+DWE6awfHJ5oHkFKSGePr6tT5Mh95rd1845WTefvLc++mYpewY8KnQ7tyo/zEfwywCIhw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.2.0' + dependencies: + '@opentelemetry/api': 1.1.0 + '@opentelemetry/api-metrics': 0.31.0 + '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/resources': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/sdk-metrics-base': 0.31.0_@opentelemetry+api@1.1.0 + '@opentelemetry/sdk-trace-base': 1.5.0_@opentelemetry+api@1.1.0 + dev: false + + /@opentelemetry/propagator-b3/1.5.0_@opentelemetry+api@1.1.0: + resolution: {integrity: sha512-38iGIScgU9OLhoPKAV3p2rEf4RmmQC/Lo4LvpQ6TaSQrRht/oDgnpsPJnmNQLFboklmukKataJO+FhAieOc7mg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.2.0' + dependencies: + '@opentelemetry/api': 1.1.0 + '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 + dev: false + + /@opentelemetry/propagator-jaeger/1.5.0_@opentelemetry+api@1.1.0: + resolution: {integrity: sha512-aSUH5RDEZj+lmy4PbXAJ26E+yJcZloyPUBWgqYX+JBS4NnbriIznCF/tXV5s/RUXeVABibi/+yAZndv+2XBg4w==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.2.0' + dependencies: + '@opentelemetry/api': 1.1.0 + '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 + dev: false + + /@opentelemetry/resources/1.5.0_@opentelemetry+api@1.1.0: + resolution: {integrity: sha512-YeEfC6IY54U3xL3P2+UAiom+r50ZF2jM0J47RV5uTFGF19Xjd5zazSwDPgmxtAd6DwLX0/5S5iqrsH4nEXMYoA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.2.0' + dependencies: + '@opentelemetry/api': 1.1.0 + '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/semantic-conventions': 1.5.0 + dev: false + + /@opentelemetry/sdk-metrics-base/0.31.0_@opentelemetry+api@1.1.0: + resolution: {integrity: sha512-4R2Bjl3wlqIGcq4bCoI9/pD49ld+tEoM9n85UfFzr/aUe+2huY2jTPq/BP9SVB8d2Zfg7mGTIFeapcEvAdKK7g==} + engines: {node: '>=14'} + deprecated: Please use @opentelemetry/sdk-metrics + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.1.0 + '@opentelemetry/api-metrics': 0.31.0 + '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/resources': 1.5.0_@opentelemetry+api@1.1.0 + lodash.merge: 4.6.2 + dev: false + + /@opentelemetry/sdk-trace-base/1.5.0_@opentelemetry+api@1.1.0: + resolution: {integrity: sha512-6lx7YDf67HSQYuWnvq3XgSrWikDJLiGCbrpUP6UWJ5Z47HLcJvwZPRH+cQGJu1DFS3dT2cV3GpAR75/OofPNHQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.2.0' + dependencies: + '@opentelemetry/api': 1.1.0 + '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/resources': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/semantic-conventions': 1.5.0 + dev: false + + /@opentelemetry/sdk-trace-node/1.5.0_@opentelemetry+api@1.1.0: + resolution: {integrity: sha512-MzS+urf2KufpwgaHbGcUgccHr6paxI98lHFMgJAkK6w76AmPYavsxSwjiVPrchy/24d2J9svDirSgui3NNZo8g==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.2.0' + dependencies: + '@opentelemetry/api': 1.1.0 + '@opentelemetry/context-async-hooks': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/propagator-b3': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/propagator-jaeger': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/sdk-trace-base': 1.5.0_@opentelemetry+api@1.1.0 + semver: 7.3.8 + dev: false + + /@opentelemetry/semantic-conventions/1.5.0: + resolution: {integrity: sha512-wlYG/U6ddW1ilXslnDLLQYJ8nd97W8JJTTfwkGhubx6dzW6SUkd+N4/MzTjjyZlrHQunxHtkHFvVpUKiROvFDw==} + engines: {node: '>=14'} + dev: false + + /@protobufjs/aspromise/1.1.2: + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + dev: false + + /@protobufjs/base64/1.1.2: + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + dev: false + + /@protobufjs/codegen/2.0.4: + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + dev: false + + /@protobufjs/eventemitter/1.1.0: + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + dev: false + + /@protobufjs/fetch/1.1.0: + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + dev: false + + /@protobufjs/float/1.0.2: + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + dev: false + + /@protobufjs/inquire/1.1.0: + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + dev: false + + /@protobufjs/path/1.1.2: + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + dev: false + + /@protobufjs/pool/1.1.0: + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + dev: false + + /@protobufjs/utf8/1.1.0: + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + dev: false + + /@rometools/cli-darwin-arm64/11.0.0: + resolution: {integrity: sha512-F3vkdY+s3FLIEnAjSbyHTuIPB88cLpccimW4ecid5I7S6GzGG3iUJI4xT00JhH73K4P/qW20/9r+kH1T9Du8Xg==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rometools/cli-darwin-x64/11.0.0: + resolution: {integrity: sha512-X6jhtS6Iml4GOzgNtnLwIp/KXXhSdqeVyfv69m/AHnIzx3gQAjPZ7BPnJLvTCbhe4SKHL+uTZYFSCJpkUUKE6w==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rometools/cli-linux-arm64/11.0.0: + resolution: {integrity: sha512-dktTJJlTpmycBZ2TwhJBcAO8ztK8DdevdyZnFFxdYRvtmJgTjIsC2UFayf/SbKew8B8q1IhI0it+D6ihAeIpeg==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rometools/cli-linux-x64/11.0.0: + resolution: {integrity: sha512-WVcnXPNdWGUWo0p4NU8YzuthjYR7q+b4vRcjdxtP1DlpphZmSsoC/RSE85nEqRAz8hChcKUansVzOPM8BSsuGA==} + cpu: [x64] + os: [linux] requiresBuild: true dev: true optional: true @@ -275,10 +986,60 @@ packages: tailwindcss: 3.2.7_postcss@8.4.21 dev: true + /@types/acorn/4.0.6: + resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} + dependencies: + '@types/estree': 1.0.0 + dev: false + + /@types/debug/4.1.7: + resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==} + dependencies: + '@types/ms': 0.7.31 + dev: false + + /@types/estree-jsx/1.0.0: + resolution: {integrity: sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ==} + dependencies: + '@types/estree': 1.0.0 + dev: false + + /@types/estree/1.0.0: + resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} + dev: false + + /@types/hast/2.3.4: + resolution: {integrity: sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==} + dependencies: + '@types/unist': 2.0.6 + dev: false + + /@types/long/4.0.2: + resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==} + dev: false + + /@types/mdast/3.0.10: + resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==} + dependencies: + '@types/unist': 2.0.6 + dev: false + + /@types/mdx/2.0.3: + resolution: {integrity: sha512-IgHxcT3RC8LzFLhKwP3gbMPeaK7BM9eBH46OdapPA7yvuIUJ8H6zHZV53J8hGZcTSnt95jANt+rTBNUUc22ACQ==} + dev: false + + /@types/ms/0.7.31: + resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} + dev: false + /@types/node/18.14.1: resolution: {integrity: sha512-QH+37Qds3E0eDlReeboBxfHbX9omAcBCXEzswCu6jySP642jiM3cYSIkU/REqwhCUqXdonHFuBfJDiAJxMNhaQ==} dev: false + /@types/parse5/6.0.3: + resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} + dev: false + /@types/prop-types/15.7.5: resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} dev: false @@ -297,10 +1058,18 @@ packages: csstype: 3.1.1 dev: false + /@types/resolve/1.20.2: + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + dev: false + /@types/scheduler/0.16.2: resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} dev: false + /@types/unist/2.0.6: + resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} + dev: false + /@vercel/analytics/0.1.10_react@18.2.0: resolution: {integrity: sha512-jjJ8GzcPnQp0cMxpfYoUycMRBtDiaIeyVjZPiEPe99Dj1PdjMzAFYEASiV/hpNsXHkpcNYCveDFh6jnmh0YSDQ==} peerDependencies: @@ -309,6 +1078,14 @@ packages: react: 18.2.0 dev: false + /acorn-jsx/5.3.2_acorn@8.8.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.8.2 + dev: false + /acorn-node/1.8.2: resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==} dependencies: @@ -328,18 +1105,58 @@ packages: hasBin: true dev: true + /acorn/8.8.2: + resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: false + + /ansi-regex/5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: false + + /ansi-sequence-parser/1.1.0: + resolution: {integrity: sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==} + dev: false + + /ansi-styles/4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: false + /anymatch/3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - dev: true /arg/5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} dev: true + /argparse/1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: false + + /argparse/2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: false + + /array-timsort/1.0.3: + resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==} + dev: false + + /astring/1.8.4: + resolution: {integrity: sha512-97a+l2LBU3Op3bBQEff79i/E4jMD2ZLFD8rHx9B6mXyB2uQwhJQYfiDqUwtfjF4QA1F2qs//N6Cw8LetMbQjcw==} + hasBin: true + dev: false + /autoprefixer/10.4.13_postcss@8.4.21: resolution: {integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==} engines: {node: ^10 || ^12 || >=14} @@ -356,17 +1173,19 @@ packages: postcss-value-parser: 4.2.0 dev: true + /bail/2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + dev: false + /binary-extensions/2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} - dev: true /braces/3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} dependencies: fill-range: 7.0.1 - dev: true /browserslist/4.21.5: resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} @@ -379,6 +1198,17 @@ packages: update-browserslist-db: 1.0.10_browserslist@4.21.5 dev: true + /buffer-from/1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: false + + /camel-case/4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + dependencies: + pascal-case: 3.1.2 + tslib: 2.5.0 + dev: false + /camelcase-css/2.0.1: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} @@ -387,6 +1217,26 @@ packages: /caniuse-lite/1.0.30001457: resolution: {integrity: sha512-SDIV6bgE1aVbK6XyxdURbUE89zY7+k1BBBaOwYwkNCglXlel/E7mELiHC64HQ+W0xSKlqWhV9Wh7iHxUjMs4fA==} + /ccount/2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + dev: false + + /character-entities-html4/2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + dev: false + + /character-entities-legacy/3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + dev: false + + /character-entities/2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + dev: false + + /character-reference-invalid/2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + dev: false + /chokidar/3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} @@ -400,15 +1250,74 @@ packages: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.2 - dev: true /client-only/0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} dev: false + /clipanion/3.2.0_typanion@3.12.1: + resolution: {integrity: sha512-XaPQiJQZKbyaaDbv5yR/cAt/ORfZfENkr4wGQj+Go/Uf/65ofTQBCPirgWFeJctZW24V3mxrFiEnEmqBflrJYA==} + peerDependencies: + typanion: '*' + dependencies: + typanion: 3.12.1 + dev: false + + /cliui/7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: false + + /color-convert/2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: false + /color-name/1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: true + + /comma-separated-tokens/2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + dev: false + + /comment-json/4.2.3: + resolution: {integrity: sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==} + engines: {node: '>= 6'} + dependencies: + array-timsort: 1.0.3 + core-util-is: 1.0.3 + esprima: 4.0.1 + has-own-prop: 2.0.0 + repeat-string: 1.6.1 + dev: false + + /contentlayer/0.3.0_ui6uvxfppeck4ve6baobv322ca: + resolution: {integrity: sha512-3LEF5HMHjSytlT8SErC3U59Pt2LP80a6Z2f/0mSIPeA4xty0LNChyHqzALySSM0osAEz32RY56Fifk5P+2dCIA==} + engines: {node: '>=14.18'} + hasBin: true + requiresBuild: true + dependencies: + '@contentlayer/cli': 0.3.0_ui6uvxfppeck4ve6baobv322ca + '@contentlayer/client': 0.3.0_ui6uvxfppeck4ve6baobv322ca + '@contentlayer/core': 0.3.0_ui6uvxfppeck4ve6baobv322ca + '@contentlayer/source-files': 0.3.0_ui6uvxfppeck4ve6baobv322ca + '@contentlayer/source-remote-files': 0.3.0_ui6uvxfppeck4ve6baobv322ca + '@contentlayer/utils': 0.3.0 + transitivePeerDependencies: + - '@effect-ts/otel-node' + - esbuild + - markdown-wasm + - supports-color + dev: false + + /core-util-is/1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + dev: false /cssesc/3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} @@ -420,10 +1329,38 @@ packages: resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} dev: false + /data-uri-to-buffer/4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} + engines: {node: '>= 12'} + dev: false + + /debug/4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: false + + /decode-named-character-reference/1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + dependencies: + character-entities: 2.0.2 + dev: false + /defined/1.0.1: resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==} dev: true + /dequal/2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: false + /detective/5.2.1: resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==} engines: {node: '>=0.8.0'} @@ -438,6 +1375,11 @@ packages: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} dev: true + /diff/5.1.0: + resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} + engines: {node: '>=0.3.1'} + dev: false + /dlv/1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} dev: true @@ -446,57 +1388,196 @@ packages: resolution: {integrity: sha512-/xlATgfwkm5uDDwLw5nt/MNEf7c1oazLURMZLy39vOioGYyYzLWIDT8fZMJak6qTiAJ7udFTy7JG7ziyjNutiA==} dev: true + /emoji-regex/8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: false + + /esbuild/0.17.10: + resolution: {integrity: sha512-n7V3v29IuZy5qgxx25TKJrEm0FHghAlS6QweUcyIgh/U0zYmQcvogWROitrTyZId1mHSkuhhuyEXtI9OXioq7A==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.17.10 + '@esbuild/android-arm64': 0.17.10 + '@esbuild/android-x64': 0.17.10 + '@esbuild/darwin-arm64': 0.17.10 + '@esbuild/darwin-x64': 0.17.10 + '@esbuild/freebsd-arm64': 0.17.10 + '@esbuild/freebsd-x64': 0.17.10 + '@esbuild/linux-arm': 0.17.10 + '@esbuild/linux-arm64': 0.17.10 + '@esbuild/linux-ia32': 0.17.10 + '@esbuild/linux-loong64': 0.17.10 + '@esbuild/linux-mips64el': 0.17.10 + '@esbuild/linux-ppc64': 0.17.10 + '@esbuild/linux-riscv64': 0.17.10 + '@esbuild/linux-s390x': 0.17.10 + '@esbuild/linux-x64': 0.17.10 + '@esbuild/netbsd-x64': 0.17.10 + '@esbuild/openbsd-x64': 0.17.10 + '@esbuild/sunos-x64': 0.17.10 + '@esbuild/win32-arm64': 0.17.10 + '@esbuild/win32-ia32': 0.17.10 + '@esbuild/win32-x64': 0.17.10 + dev: false + /escalade/3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} - dev: true - /fast-glob/3.2.12: - resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - dev: true + /escape-string-regexp/4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: false - /fastq/1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + /escape-string-regexp/5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: false + + /esprima/4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: false + + /estree-util-attach-comments/2.1.1: + resolution: {integrity: sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w==} dependencies: - reusify: 1.0.4 - dev: true + '@types/estree': 1.0.0 + dev: false - /fill-range/7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} + /estree-util-build-jsx/2.2.2: + resolution: {integrity: sha512-m56vOXcOBuaF+Igpb9OPAy7f9w9OIkb5yhjsZuaPm7HoGi4oTOQi0h2+yZ+AtKklYFZ+rPC4n0wYCJCEU1ONqg==} dependencies: - to-regex-range: 5.0.1 - dev: true + '@types/estree-jsx': 1.0.0 + estree-util-is-identifier-name: 2.1.0 + estree-walker: 3.0.3 + dev: false - /fraction.js/4.2.0: - resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} - dev: true + /estree-util-is-identifier-name/1.1.0: + resolution: {integrity: sha512-OVJZ3fGGt9By77Ix9NhaRbzfbDV/2rx9EP7YIDJTmsZSEc5kYn2vWcNccYyahJL2uAQZK2a5Or2i0wtIKTPoRQ==} + dev: false + + /estree-util-is-identifier-name/2.1.0: + resolution: {integrity: sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==} + dev: false + + /estree-util-to-js/1.2.0: + resolution: {integrity: sha512-IzU74r1PK5IMMGZXUVZbmiu4A1uhiPgW5hm1GjcOfr4ZzHaMPpLNJjR7HjXiIOzi25nZDrgFTobHTkV5Q6ITjA==} + dependencies: + '@types/estree-jsx': 1.0.0 + astring: 1.8.4 + source-map: 0.7.4 + dev: false + + /estree-util-value-to-estree/1.3.0: + resolution: {integrity: sha512-Y+ughcF9jSUJvncXwqRageavjrNPAI+1M/L3BI3PyLp1nmgYTGUXU6t5z1Y7OWuThoDdhPME07bQU+d5LxdJqw==} + engines: {node: '>=12.0.0'} + dependencies: + is-plain-obj: 3.0.0 + dev: false + + /estree-util-visit/1.2.1: + resolution: {integrity: sha512-xbgqcrkIVbIG+lI/gzbvd9SGTJL4zqJKBFttUl5pP27KhAjtMKbX/mQXJ7qgyXpMgVy/zvpm0xoQQaGL8OloOw==} + dependencies: + '@types/estree-jsx': 1.0.0 + '@types/unist': 2.0.6 + dev: false + + /estree-walker/3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + dependencies: + '@types/estree': 1.0.0 + dev: false + + /extend-shallow/2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: 0.1.1 + dev: false + + /extend/3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: false + + /fast-glob/3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + + /fastq/1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 + + /fault/2.0.1: + resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + dependencies: + format: 0.2.2 + dev: false + + /fetch-blob/3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.2.1 + dev: false + + /fill-range/7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + + /format/0.2.2: + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} + engines: {node: '>=0.4.x'} + dev: false + + /formdata-polyfill/4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} + dependencies: + fetch-blob: 3.2.0 + dev: false + + /fraction.js/4.2.0: + resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} + dev: true /fsevents/2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true - dev: true optional: true /function-bind/1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - dev: true + + /get-caller-file/2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: false + + /github-slugger/2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + dev: false /glob-parent/5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 - dev: true /glob-parent/6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} @@ -505,52 +1586,304 @@ packages: is-glob: 4.0.3 dev: true + /gray-matter/4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + dev: false + + /has-own-prop/2.0.0: + resolution: {integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==} + engines: {node: '>=8'} + dev: false + /has/1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} engines: {node: '>= 0.4.0'} dependencies: function-bind: 1.1.1 - dev: true + + /hash-obj/4.0.0: + resolution: {integrity: sha512-FwO1BUVWkyHasWDW4S8o0ssQXjvyghLV2rfVhnN36b2bbcj45eGiuzdn9XOvOpjV3TKQD7Gm2BWNXdE9V4KKYg==} + engines: {node: '>=12'} + dependencies: + is-obj: 3.0.0 + sort-keys: 5.0.0 + type-fest: 1.4.0 + dev: false + + /hash-wasm/4.9.0: + resolution: {integrity: sha512-7SW7ejyfnRxuOc7ptQHSf4LDoZaWOivfzqw+5rpcQku0nHfmicPKE51ra9BiRLAmT8+gGLestr1XroUkqdjL6w==} + dev: false + + /hast-util-from-parse5/7.1.2: + resolution: {integrity: sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==} + dependencies: + '@types/hast': 2.3.4 + '@types/unist': 2.0.6 + hastscript: 7.2.0 + property-information: 6.2.0 + vfile: 5.3.7 + vfile-location: 4.1.0 + web-namespaces: 2.0.1 + dev: false + + /hast-util-has-property/2.0.1: + resolution: {integrity: sha512-X2+RwZIMTMKpXUzlotatPzWj8bspCymtXH3cfG3iQKV+wPF53Vgaqxi/eLqGck0wKq1kS9nvoB1wchbCPEL8sg==} + dev: false + + /hast-util-heading-rank/2.1.1: + resolution: {integrity: sha512-iAuRp+ESgJoRFJbSyaqsfvJDY6zzmFoEnL1gtz1+U8gKtGGj1p0CVlysuUAUjq95qlZESHINLThwJzNGmgGZxA==} + dependencies: + '@types/hast': 2.3.4 + dev: false + + /hast-util-is-element/2.1.3: + resolution: {integrity: sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA==} + dependencies: + '@types/hast': 2.3.4 + '@types/unist': 2.0.6 + dev: false + + /hast-util-parse-selector/3.1.1: + resolution: {integrity: sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==} + dependencies: + '@types/hast': 2.3.4 + dev: false + + /hast-util-raw/7.2.3: + resolution: {integrity: sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==} + dependencies: + '@types/hast': 2.3.4 + '@types/parse5': 6.0.3 + hast-util-from-parse5: 7.1.2 + hast-util-to-parse5: 7.1.0 + html-void-elements: 2.0.1 + parse5: 6.0.1 + unist-util-position: 4.0.4 + unist-util-visit: 4.1.2 + vfile: 5.3.7 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + dev: false + + /hast-util-to-estree/2.3.2: + resolution: {integrity: sha512-YYDwATNdnvZi3Qi84iatPIl1lWpXba1MeNrNbDfJfVzEBZL8uUmtR7mt7bxKBC8kuAuvb0bkojXYZzsNHyHCLg==} + dependencies: + '@types/estree': 1.0.0 + '@types/estree-jsx': 1.0.0 + '@types/hast': 2.3.4 + '@types/unist': 2.0.6 + comma-separated-tokens: 2.0.3 + estree-util-attach-comments: 2.1.1 + estree-util-is-identifier-name: 2.1.0 + hast-util-whitespace: 2.0.1 + mdast-util-mdx-expression: 1.3.2 + mdast-util-mdxjs-esm: 1.3.1 + property-information: 6.2.0 + space-separated-tokens: 2.0.2 + style-to-object: 0.4.1 + unist-util-position: 4.0.4 + zwitch: 2.0.4 + transitivePeerDependencies: + - supports-color + dev: false + + /hast-util-to-html/8.0.4: + resolution: {integrity: sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==} + dependencies: + '@types/hast': 2.3.4 + '@types/unist': 2.0.6 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-raw: 7.2.3 + hast-util-whitespace: 2.0.1 + html-void-elements: 2.0.1 + property-information: 6.2.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.3 + zwitch: 2.0.4 + dev: false + + /hast-util-to-parse5/7.1.0: + resolution: {integrity: sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==} + dependencies: + '@types/hast': 2.3.4 + comma-separated-tokens: 2.0.3 + property-information: 6.2.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + dev: false + + /hast-util-to-string/2.0.0: + resolution: {integrity: sha512-02AQ3vLhuH3FisaMM+i/9sm4OXGSq1UhOOCpTLLQtHdL3tZt7qil69r8M8iDkZYyC0HCFylcYoP+8IO7ddta1A==} + dependencies: + '@types/hast': 2.3.4 + dev: false + + /hast-util-whitespace/2.0.1: + resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} + dev: false + + /hastscript/7.2.0: + resolution: {integrity: sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==} + dependencies: + '@types/hast': 2.3.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 3.1.1 + property-information: 6.2.0 + space-separated-tokens: 2.0.2 + dev: false + + /html-void-elements/2.0.1: + resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==} + dev: false + + /imagescript/1.2.16: + resolution: {integrity: sha512-hhy8OVNymU+cYYj8IwCbdNlXJRoMr4HRd7+efkH32eBVfybVU/5SbzDYf3ZSiiF9ye/ghfBrI/ujec/nwl+fOQ==} + engines: {node: '>=14.0.0'} + dev: false + + /inflection/2.0.1: + resolution: {integrity: sha512-wzkZHqpb4eGrOKBl34xy3umnYHx8Si5R1U4fwmdxLo5gdH6mEK8gclckTj/qWqy4Je0bsDYe/qazZYuO7xe3XQ==} + engines: {node: '>=14.0.0'} + dev: false + + /inline-style-parser/0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + dev: false + + /is-alphabetical/2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + dev: false + + /is-alphanumerical/2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + dev: false /is-binary-path/2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} dependencies: binary-extensions: 2.2.0 - dev: true + + /is-buffer/2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} + engines: {node: '>=4'} + dev: false /is-core-module/2.11.0: resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} dependencies: has: 1.0.3 - dev: true + + /is-decimal/2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + dev: false + + /is-extendable/0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + dev: false /is-extglob/2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - dev: true + + /is-fullwidth-code-point/3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: false /is-glob/4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 - dev: true + + /is-hexadecimal/2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + dev: false /is-number/7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - dev: true + + /is-obj/3.0.0: + resolution: {integrity: sha512-IlsXEHOjtKhpN8r/tRFj2nDyTmHvcfNeu/nrRIcXE17ROeatXchkojffa1SpdqW4cr/Fj6QkEf/Gn4zf6KKvEQ==} + engines: {node: '>=12'} + dev: false + + /is-plain-obj/3.0.0: + resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + engines: {node: '>=10'} + dev: false + + /is-plain-obj/4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + dev: false + + /is-reference/3.0.1: + resolution: {integrity: sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w==} + dependencies: + '@types/estree': 1.0.0 + dev: false /js-tokens/4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: false + /js-yaml/3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: false + + /js-yaml/4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: false + + /jsbi/4.3.0: + resolution: {integrity: sha512-SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g==} + dev: false + + /jsonc-parser/3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: false + + /kind-of/6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: false + + /kleur/4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + dev: false + /lilconfig/2.0.6: resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} engines: {node: '>=10'} dev: true + /lodash.camelcase/4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + dev: false + /lodash.castarray/4.4.0: resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} dev: true @@ -561,27 +1894,618 @@ packages: /lodash.merge/4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - dev: true + + /long/4.0.0: + resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==} + dev: false + + /long/5.2.1: + resolution: {integrity: sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==} + dev: false + + /longest-streak/3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + dev: false /loose-envify/1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true dependencies: - js-tokens: 4.0.0 + js-tokens: 4.0.0 + dev: false + + /lower-case/2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + dependencies: + tslib: 2.5.0 + dev: false + + /lru-cache/6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: false + + /lucide-react/0.115.0_react@18.2.0: + resolution: {integrity: sha512-VGL7jBKN6pEXi6peXoyn9t9O7olvinaAonnoe+iFi/F2q7/yQzAFM5KR1OY15u9PlrB3scI9HvcTFoOrIjUaVQ==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: false + + /markdown-extensions/1.1.1: + resolution: {integrity: sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==} + engines: {node: '>=0.10.0'} + dev: false + + /markdown-table/3.0.3: + resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + dev: false + + /markdown-wasm/1.2.0: + resolution: {integrity: sha512-S12OTkyXCkOgI1n1rZY9cg4bK/PGu80Emjpvwp8BEjwCxhPV3yddF0U6+QhCitdBsI1tzWcoeahmW7k0Pq81OA==} + dev: false + + /mdast-util-definitions/5.1.2: + resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==} + dependencies: + '@types/mdast': 3.0.10 + '@types/unist': 2.0.6 + unist-util-visit: 4.1.2 + dev: false + + /mdast-util-find-and-replace/2.2.2: + resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==} + dependencies: + '@types/mdast': 3.0.10 + escape-string-regexp: 5.0.0 + unist-util-is: 5.2.1 + unist-util-visit-parents: 5.1.3 + dev: false + + /mdast-util-from-markdown/1.3.0: + resolution: {integrity: sha512-HN3W1gRIuN/ZW295c7zi7g9lVBllMgZE40RxCX37wrTPWXCWtpvOZdfnuK+1WNpvZje6XuJeI3Wnb4TJEUem+g==} + dependencies: + '@types/mdast': 3.0.10 + '@types/unist': 2.0.6 + decode-named-character-reference: 1.0.2 + mdast-util-to-string: 3.1.1 + micromark: 3.1.0 + micromark-util-decode-numeric-character-reference: 1.0.0 + micromark-util-decode-string: 1.0.2 + micromark-util-normalize-identifier: 1.0.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + unist-util-stringify-position: 3.0.3 + uvu: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-frontmatter/1.0.1: + resolution: {integrity: sha512-JjA2OjxRqAa8wEG8hloD0uTU0kdn8kbtOWpPP94NBkfAlbxn4S8gCGf/9DwFtEeGPXrDcNXdiDjVaRdUFqYokw==} + dependencies: + '@types/mdast': 3.0.10 + mdast-util-to-markdown: 1.5.0 + micromark-extension-frontmatter: 1.0.1 + dev: false + + /mdast-util-gfm-autolink-literal/1.0.3: + resolution: {integrity: sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==} + dependencies: + '@types/mdast': 3.0.10 + ccount: 2.0.1 + mdast-util-find-and-replace: 2.2.2 + micromark-util-character: 1.1.0 + dev: false + + /mdast-util-gfm-footnote/1.0.2: + resolution: {integrity: sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==} + dependencies: + '@types/mdast': 3.0.10 + mdast-util-to-markdown: 1.5.0 + micromark-util-normalize-identifier: 1.0.0 + dev: false + + /mdast-util-gfm-strikethrough/1.0.3: + resolution: {integrity: sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==} + dependencies: + '@types/mdast': 3.0.10 + mdast-util-to-markdown: 1.5.0 + dev: false + + /mdast-util-gfm-table/1.0.7: + resolution: {integrity: sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==} + dependencies: + '@types/mdast': 3.0.10 + markdown-table: 3.0.3 + mdast-util-from-markdown: 1.3.0 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-gfm-task-list-item/1.0.2: + resolution: {integrity: sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==} + dependencies: + '@types/mdast': 3.0.10 + mdast-util-to-markdown: 1.5.0 + dev: false + + /mdast-util-gfm/2.0.2: + resolution: {integrity: sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==} + dependencies: + mdast-util-from-markdown: 1.3.0 + mdast-util-gfm-autolink-literal: 1.0.3 + mdast-util-gfm-footnote: 1.0.2 + mdast-util-gfm-strikethrough: 1.0.3 + mdast-util-gfm-table: 1.0.7 + mdast-util-gfm-task-list-item: 1.0.2 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-mdx-expression/1.3.2: + resolution: {integrity: sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==} + dependencies: + '@types/estree-jsx': 1.0.0 + '@types/hast': 2.3.4 + '@types/mdast': 3.0.10 + mdast-util-from-markdown: 1.3.0 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-mdx-jsx/2.1.2: + resolution: {integrity: sha512-o9vBCYQK5ZLGEj3tCGISJGjvafyHRVJlZmfJzSE7xjiogSzIeph/Z4zMY65q4WGRMezQBeAwPlrdymDYYYx0tA==} + dependencies: + '@types/estree-jsx': 1.0.0 + '@types/hast': 2.3.4 + '@types/mdast': 3.0.10 + '@types/unist': 2.0.6 + ccount: 2.0.1 + mdast-util-from-markdown: 1.3.0 + mdast-util-to-markdown: 1.5.0 + parse-entities: 4.0.1 + stringify-entities: 4.0.3 + unist-util-remove-position: 4.0.2 + unist-util-stringify-position: 3.0.3 + vfile-message: 3.1.4 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-mdx/2.0.1: + resolution: {integrity: sha512-38w5y+r8nyKlGvNjSEqWrhG0w5PmnRA+wnBvm+ulYCct7nsGYhFVb0lljS9bQav4psDAS1eGkP2LMVcZBi/aqw==} + dependencies: + mdast-util-from-markdown: 1.3.0 + mdast-util-mdx-expression: 1.3.2 + mdast-util-mdx-jsx: 2.1.2 + mdast-util-mdxjs-esm: 1.3.1 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-mdxjs-esm/1.3.1: + resolution: {integrity: sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w==} + dependencies: + '@types/estree-jsx': 1.0.0 + '@types/hast': 2.3.4 + '@types/mdast': 3.0.10 + mdast-util-from-markdown: 1.3.0 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-phrasing/3.0.1: + resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==} + dependencies: + '@types/mdast': 3.0.10 + unist-util-is: 5.2.1 + dev: false + + /mdast-util-to-hast/12.3.0: + resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==} + dependencies: + '@types/hast': 2.3.4 + '@types/mdast': 3.0.10 + mdast-util-definitions: 5.1.2 + micromark-util-sanitize-uri: 1.1.0 + trim-lines: 3.0.1 + unist-util-generated: 2.0.1 + unist-util-position: 4.0.4 + unist-util-visit: 4.1.2 + dev: false + + /mdast-util-to-markdown/1.5.0: + resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} + dependencies: + '@types/mdast': 3.0.10 + '@types/unist': 2.0.6 + longest-streak: 3.1.0 + mdast-util-phrasing: 3.0.1 + mdast-util-to-string: 3.1.1 + micromark-util-decode-string: 1.0.2 + unist-util-visit: 4.1.2 + zwitch: 2.0.4 + dev: false + + /mdast-util-to-string/3.1.1: + resolution: {integrity: sha512-tGvhT94e+cVnQt8JWE9/b3cUQZWS732TJxXHktvP+BYo62PpYD53Ls/6cC60rW21dW+txxiM4zMdc6abASvZKA==} + dependencies: + '@types/mdast': 3.0.10 + dev: false + + /mdx-bundler/9.2.1_esbuild@0.17.10: + resolution: {integrity: sha512-hWEEip1KU9MCNqeH2rqwzAZ1pdqPPbfkx9OTJjADqGPQz4t9BO85fhI7AP9gVYrpmfArf9/xJZUN0yBErg/G/Q==} + engines: {node: '>=14', npm: '>=6'} + peerDependencies: + esbuild: 0.* + dependencies: + '@babel/runtime': 7.21.0 + '@esbuild-plugins/node-resolve': 0.1.4_esbuild@0.17.10 + '@fal-works/esbuild-plugin-global-externals': 2.1.2 + '@mdx-js/esbuild': 2.3.0_esbuild@0.17.10 + esbuild: 0.17.10 + gray-matter: 4.0.3 + remark-frontmatter: 4.0.1 + remark-mdx-frontmatter: 1.1.1 + uuid: 8.3.2 + vfile: 5.3.7 + transitivePeerDependencies: + - supports-color + dev: false + + /merge2/1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + /micromark-core-commonmark/1.0.6: + resolution: {integrity: sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-factory-destination: 1.0.0 + micromark-factory-label: 1.0.2 + micromark-factory-space: 1.0.0 + micromark-factory-title: 1.0.2 + micromark-factory-whitespace: 1.0.0 + micromark-util-character: 1.1.0 + micromark-util-chunked: 1.0.0 + micromark-util-classify-character: 1.0.0 + micromark-util-html-tag-name: 1.1.0 + micromark-util-normalize-identifier: 1.0.0 + micromark-util-resolve-all: 1.0.0 + micromark-util-subtokenize: 1.0.2 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.6 + dev: false + + /micromark-extension-frontmatter/1.0.1: + resolution: {integrity: sha512-9OJhCXkrpj8qIXW5AAgRZGvS8Q4GTMdH5+Ljt98kV4XQVflRGeEhNRYp6O/zCvf8c8lZ+wc4uwmbly27pS/s4Q==} + dependencies: + fault: 2.0.1 + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + dev: false + + /micromark-extension-gfm-autolink-literal/1.0.3: + resolution: {integrity: sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==} + dependencies: + micromark-util-character: 1.1.0 + micromark-util-sanitize-uri: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.6 + dev: false + + /micromark-extension-gfm-footnote/1.0.4: + resolution: {integrity: sha512-E/fmPmDqLiMUP8mLJ8NbJWJ4bTw6tS+FEQS8CcuDtZpILuOb2kjLqPEeAePF1djXROHXChM/wPJw0iS4kHCcIg==} + dependencies: + micromark-core-commonmark: 1.0.6 + micromark-factory-space: 1.0.0 + micromark-util-character: 1.1.0 + micromark-util-normalize-identifier: 1.0.0 + micromark-util-sanitize-uri: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.6 + dev: false + + /micromark-extension-gfm-strikethrough/1.0.4: + resolution: {integrity: sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ==} + dependencies: + micromark-util-chunked: 1.0.0 + micromark-util-classify-character: 1.0.0 + micromark-util-resolve-all: 1.0.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.6 + dev: false + + /micromark-extension-gfm-table/1.0.5: + resolution: {integrity: sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==} + dependencies: + micromark-factory-space: 1.0.0 + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.6 + dev: false + + /micromark-extension-gfm-tagfilter/1.0.1: + resolution: {integrity: sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA==} + dependencies: + micromark-util-types: 1.0.2 + dev: false + + /micromark-extension-gfm-task-list-item/1.0.3: + resolution: {integrity: sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q==} + dependencies: + micromark-factory-space: 1.0.0 + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.6 + dev: false + + /micromark-extension-gfm/2.0.1: + resolution: {integrity: sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA==} + dependencies: + micromark-extension-gfm-autolink-literal: 1.0.3 + micromark-extension-gfm-footnote: 1.0.4 + micromark-extension-gfm-strikethrough: 1.0.4 + micromark-extension-gfm-table: 1.0.5 + micromark-extension-gfm-tagfilter: 1.0.1 + micromark-extension-gfm-task-list-item: 1.0.3 + micromark-util-combine-extensions: 1.0.0 + micromark-util-types: 1.0.2 + dev: false + + /micromark-extension-mdx-expression/1.0.4: + resolution: {integrity: sha512-TCgLxqW6ReQ3AJgtj1P0P+8ZThBTloLbeb7jNaqr6mCOLDpxUiBFE/9STgooMZttEwOQu5iEcCCa3ZSDhY9FGw==} + dependencies: + micromark-factory-mdx-expression: 1.0.7 + micromark-factory-space: 1.0.0 + micromark-util-character: 1.1.0 + micromark-util-events-to-acorn: 1.2.1 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.6 + dev: false + + /micromark-extension-mdx-jsx/1.0.3: + resolution: {integrity: sha512-VfA369RdqUISF0qGgv2FfV7gGjHDfn9+Qfiv5hEwpyr1xscRj/CiVRkU7rywGFCO7JwJ5L0e7CJz60lY52+qOA==} + dependencies: + '@types/acorn': 4.0.6 + estree-util-is-identifier-name: 2.1.0 + micromark-factory-mdx-expression: 1.0.7 + micromark-factory-space: 1.0.0 + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.6 + vfile-message: 3.1.4 + dev: false + + /micromark-extension-mdx-md/1.0.0: + resolution: {integrity: sha512-xaRAMoSkKdqZXDAoSgp20Azm0aRQKGOl0RrS81yGu8Hr/JhMsBmfs4wR7m9kgVUIO36cMUQjNyiyDKPrsv8gOw==} + dependencies: + micromark-util-types: 1.0.2 + dev: false + + /micromark-extension-mdxjs-esm/1.0.3: + resolution: {integrity: sha512-2N13ol4KMoxb85rdDwTAC6uzs8lMX0zeqpcyx7FhS7PxXomOnLactu8WI8iBNXW8AVyea3KIJd/1CKnUmwrK9A==} + dependencies: + micromark-core-commonmark: 1.0.6 + micromark-util-character: 1.1.0 + micromark-util-events-to-acorn: 1.2.1 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + unist-util-position-from-estree: 1.1.2 + uvu: 0.5.6 + vfile-message: 3.1.4 + dev: false + + /micromark-extension-mdxjs/1.0.0: + resolution: {integrity: sha512-TZZRZgeHvtgm+IhtgC2+uDMR7h8eTKF0QUX9YsgoL9+bADBpBY6SiLvWqnBlLbCEevITmTqmEuY3FoxMKVs1rQ==} + dependencies: + acorn: 8.8.2 + acorn-jsx: 5.3.2_acorn@8.8.2 + micromark-extension-mdx-expression: 1.0.4 + micromark-extension-mdx-jsx: 1.0.3 + micromark-extension-mdx-md: 1.0.0 + micromark-extension-mdxjs-esm: 1.0.3 + micromark-util-combine-extensions: 1.0.0 + micromark-util-types: 1.0.2 + dev: false + + /micromark-factory-destination/1.0.0: + resolution: {integrity: sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==} + dependencies: + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + dev: false + + /micromark-factory-label/1.0.2: + resolution: {integrity: sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==} + dependencies: + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.6 + dev: false + + /micromark-factory-mdx-expression/1.0.7: + resolution: {integrity: sha512-QAdFbkQagTZ/eKb8zDGqmjvgevgJH3+aQpvvKrXWxNJp3o8/l2cAbbrBd0E04r0Gx6nssPpqWIjnbHFvZu5qsQ==} + dependencies: + micromark-factory-space: 1.0.0 + micromark-util-character: 1.1.0 + micromark-util-events-to-acorn: 1.2.1 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + unist-util-position-from-estree: 1.1.2 + uvu: 0.5.6 + vfile-message: 3.1.4 + dev: false + + /micromark-factory-space/1.0.0: + resolution: {integrity: sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==} + dependencies: + micromark-util-character: 1.1.0 + micromark-util-types: 1.0.2 + dev: false + + /micromark-factory-title/1.0.2: + resolution: {integrity: sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==} + dependencies: + micromark-factory-space: 1.0.0 + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.6 + dev: false + + /micromark-factory-whitespace/1.0.0: + resolution: {integrity: sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==} + dependencies: + micromark-factory-space: 1.0.0 + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + dev: false + + /micromark-util-character/1.1.0: + resolution: {integrity: sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==} + dependencies: + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + dev: false + + /micromark-util-chunked/1.0.0: + resolution: {integrity: sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==} + dependencies: + micromark-util-symbol: 1.0.1 + dev: false + + /micromark-util-classify-character/1.0.0: + resolution: {integrity: sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==} + dependencies: + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + dev: false + + /micromark-util-combine-extensions/1.0.0: + resolution: {integrity: sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==} + dependencies: + micromark-util-chunked: 1.0.0 + micromark-util-types: 1.0.2 + dev: false + + /micromark-util-decode-numeric-character-reference/1.0.0: + resolution: {integrity: sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==} + dependencies: + micromark-util-symbol: 1.0.1 + dev: false + + /micromark-util-decode-string/1.0.2: + resolution: {integrity: sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 1.1.0 + micromark-util-decode-numeric-character-reference: 1.0.0 + micromark-util-symbol: 1.0.1 + dev: false + + /micromark-util-encode/1.0.1: + resolution: {integrity: sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==} + dev: false + + /micromark-util-events-to-acorn/1.2.1: + resolution: {integrity: sha512-mkg3BaWlw6ZTkQORrKVBW4o9ICXPxLtGz51vml5mQpKFdo9vqIX68CAx5JhTOdjQyAHH7JFmm4rh8toSPQZUmg==} + dependencies: + '@types/acorn': 4.0.6 + '@types/estree': 1.0.0 + estree-util-visit: 1.2.1 + micromark-util-types: 1.0.2 + uvu: 0.5.6 + vfile-location: 4.1.0 + vfile-message: 3.1.4 + dev: false + + /micromark-util-html-tag-name/1.1.0: + resolution: {integrity: sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==} + dev: false + + /micromark-util-normalize-identifier/1.0.0: + resolution: {integrity: sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==} + dependencies: + micromark-util-symbol: 1.0.1 + dev: false + + /micromark-util-resolve-all/1.0.0: + resolution: {integrity: sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==} + dependencies: + micromark-util-types: 1.0.2 + dev: false + + /micromark-util-sanitize-uri/1.1.0: + resolution: {integrity: sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg==} + dependencies: + micromark-util-character: 1.1.0 + micromark-util-encode: 1.0.1 + micromark-util-symbol: 1.0.1 dev: false - /lucide-react/0.115.0_react@18.2.0: - resolution: {integrity: sha512-VGL7jBKN6pEXi6peXoyn9t9O7olvinaAonnoe+iFi/F2q7/yQzAFM5KR1OY15u9PlrB3scI9HvcTFoOrIjUaVQ==} - peerDependencies: - react: ^16.5.1 || ^17.0.0 || ^18.0.0 + /micromark-util-subtokenize/1.0.2: + resolution: {integrity: sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==} dependencies: - react: 18.2.0 + micromark-util-chunked: 1.0.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.6 dev: false - /merge2/1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - dev: true + /micromark-util-symbol/1.0.1: + resolution: {integrity: sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==} + dev: false + + /micromark-util-types/1.0.2: + resolution: {integrity: sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==} + dev: false + + /micromark/3.1.0: + resolution: {integrity: sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA==} + dependencies: + '@types/debug': 4.1.7 + debug: 4.3.4 + decode-named-character-reference: 1.0.2 + micromark-core-commonmark: 1.0.6 + micromark-factory-space: 1.0.0 + micromark-util-character: 1.1.0 + micromark-util-chunked: 1.0.0 + micromark-util-combine-extensions: 1.0.0 + micromark-util-decode-numeric-character-reference: 1.0.0 + micromark-util-encode: 1.0.1 + micromark-util-normalize-identifier: 1.0.0 + micromark-util-resolve-all: 1.0.0 + micromark-util-sanitize-uri: 1.1.0 + micromark-util-subtokenize: 1.0.2 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: false /micromatch/4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} @@ -589,18 +2513,45 @@ packages: dependencies: braces: 3.0.2 picomatch: 2.3.1 - dev: true /minimist/1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: true + /mri/1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + dev: false + + /ms/2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: false + /nanoid/3.3.4: resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - /next/13.2.1_biqbaboplfbrettd7655fr4n2y: + /next-contentlayer/0.3.0_scjb6dpb3mjs6ovmhgft7llkle: + resolution: {integrity: sha512-vt+RaD3nIgZ6oXadtZH19a1mpxvGEoiifdtmXqBSz4rHMRcMA1YZCuSWyj+P9uX7MDmIL6JT6QSp+hvTBMaxiw==} + peerDependencies: + next: ^12 || ^13 + react: '*' + react-dom: '*' + dependencies: + '@contentlayer/core': 0.3.0_ui6uvxfppeck4ve6baobv322ca + '@contentlayer/utils': 0.3.0 + next: 13.2.1_rfdx5ocjtvb4b2h5j5ipjicct4 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + transitivePeerDependencies: + - '@effect-ts/otel-node' + - esbuild + - markdown-wasm + - supports-color + dev: false + + /next/13.2.1_rfdx5ocjtvb4b2h5j5ipjicct4: resolution: {integrity: sha512-qhgJlDtG0xidNViJUPeQHLGJJoT4zDj/El7fP3D3OzpxJDUfxsm16cK4WTMyvSX1ciIfAq05u+0HqFAa+VJ+Hg==} engines: {node: '>=14.6.0'} hasBin: true @@ -622,6 +2573,7 @@ packages: optional: true dependencies: '@next/env': 13.2.1 + '@opentelemetry/api': 1.1.0 '@swc/helpers': 0.4.14 caniuse-lite: 1.0.30001457 postcss: 8.4.14 @@ -647,6 +2599,27 @@ packages: - babel-plugin-macros dev: false + /no-case/3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + dependencies: + lower-case: 2.0.2 + tslib: 2.5.0 + dev: false + + /node-domexception/1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + dev: false + + /node-fetch/3.3.0: + resolution: {integrity: sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + data-uri-to-buffer: 4.0.1 + fetch-blob: 3.2.0 + formdata-polyfill: 4.0.10 + dev: false + /node-releases/2.0.10: resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} dev: true @@ -654,7 +2627,6 @@ packages: /normalize-path/3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - dev: true /normalize-range/0.1.2: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} @@ -666,9 +2638,49 @@ packages: engines: {node: '>= 6'} dev: true + /oo-ascii-tree/1.76.0: + resolution: {integrity: sha512-I/me4GK6Dybc9lsPYZJdnd1OOFbbnZtfEIIizrbTuFx/v1if375Y59w9ol/TJ75MlSAKs4aHj7Xm+A4E0JitSw==} + engines: {node: '>= 14.6.0'} + dev: false + + /parse-entities/4.0.1: + resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} + dependencies: + '@types/unist': 2.0.6 + character-entities: 2.0.2 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.0.2 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + dev: false + + /parse-numeric-range/1.3.0: + resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} + dev: false + + /parse5/6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + dev: false + + /pascal-case/3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + dependencies: + no-case: 3.0.4 + tslib: 2.5.0 + dev: false + /path-parse/1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: true + + /periscopic/3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + dependencies: + '@types/estree': 1.0.0 + estree-walker: 3.0.3 + is-reference: 3.0.1 + dev: false /picocolors/1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -676,7 +2688,6 @@ packages: /picomatch/2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - dev: true /pify/2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} @@ -781,9 +2792,51 @@ packages: source-map-js: 1.0.2 dev: true + /property-information/6.2.0: + resolution: {integrity: sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg==} + dev: false + + /protobufjs/6.11.3: + resolution: {integrity: sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==} + hasBin: true + requiresBuild: true + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/long': 4.0.2 + '@types/node': 18.14.1 + long: 4.0.0 + dev: false + + /protobufjs/7.2.2: + resolution: {integrity: sha512-++PrQIjrom+bFDPpfmqXfAGSQs40116JRrqqyf53dymUMvvb5d/LMRyicRoF1AUKoXVS1/IgJXlEgcpr4gTF3Q==} + engines: {node: '>=12.0.0'} + requiresBuild: true + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 18.14.1 + long: 5.2.1 + dev: false + /queue-microtask/1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: true /quick-lru/5.1.1: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} @@ -818,7 +2871,121 @@ packages: engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 - dev: true + + /regenerator-runtime/0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + dev: false + + /rehype-autolink-headings/6.1.1: + resolution: {integrity: sha512-NMYzZIsHM3sA14nC5rAFuUPIOfg+DFmf9EY1YMhaNlB7+3kK/ZlE6kqPfuxr1tsJ1XWkTrMtMoyHosU70d35mA==} + dependencies: + '@types/hast': 2.3.4 + extend: 3.0.2 + hast-util-has-property: 2.0.1 + hast-util-heading-rank: 2.1.1 + hast-util-is-element: 2.1.3 + unified: 10.1.2 + unist-util-visit: 4.1.2 + dev: false + + /rehype-pretty-code/0.9.4_shiki@0.14.1: + resolution: {integrity: sha512-3m4aQT15n8C+UizcZL0enaahoZwCDm5K1qKQ3DGgHE7U8l/DEEEJ/hm+uDe9yyK4sxVOSfZcRIMHrpJwLQi+Rg==} + engines: {node: ^12.16.0 || >=13.2.0} + peerDependencies: + shiki: '*' + dependencies: + hash-obj: 4.0.0 + parse-numeric-range: 1.3.0 + shiki: 0.14.1 + dev: false + + /rehype-slug/5.1.0: + resolution: {integrity: sha512-Gf91dJoXneiorNEnn+Phx97CO7oRMrpi+6r155tTxzGuLtm+QrI4cTwCa9e1rtePdL4i9tSO58PeSS6HWfgsiw==} + dependencies: + '@types/hast': 2.3.4 + github-slugger: 2.0.0 + hast-util-has-property: 2.0.1 + hast-util-heading-rank: 2.1.1 + hast-util-to-string: 2.0.0 + unified: 10.1.2 + unist-util-visit: 4.1.2 + dev: false + + /rehype-stringify/9.0.3: + resolution: {integrity: sha512-kWiZ1bgyWlgOxpqD5HnxShKAdXtb2IUljn3hQAhySeak6IOQPPt6DeGnsIh4ixm7yKJWzm8TXFuC/lPfcWHJqw==} + dependencies: + '@types/hast': 2.3.4 + hast-util-to-html: 8.0.4 + unified: 10.1.2 + dev: false + + /remark-frontmatter/4.0.1: + resolution: {integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==} + dependencies: + '@types/mdast': 3.0.10 + mdast-util-frontmatter: 1.0.1 + micromark-extension-frontmatter: 1.0.1 + unified: 10.1.2 + dev: false + + /remark-gfm/3.0.1: + resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} + dependencies: + '@types/mdast': 3.0.10 + mdast-util-gfm: 2.0.2 + micromark-extension-gfm: 2.0.1 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + /remark-mdx-frontmatter/1.1.1: + resolution: {integrity: sha512-7teX9DW4tI2WZkXS4DBxneYSY7NHiXl4AKdWDO9LXVweULlCT8OPWsOjLEnMIXViN1j+QcY8mfbq3k0EK6x3uA==} + engines: {node: '>=12.2.0'} + dependencies: + estree-util-is-identifier-name: 1.1.0 + estree-util-value-to-estree: 1.3.0 + js-yaml: 4.1.0 + toml: 3.0.0 + dev: false + + /remark-mdx/2.3.0: + resolution: {integrity: sha512-g53hMkpM0I98MU266IzDFMrTD980gNF3BJnkyFcmN+dD873mQeD5rdMO3Y2X+x8umQfbSE0PcoEDl7ledSA+2g==} + dependencies: + mdast-util-mdx: 2.0.1 + micromark-extension-mdxjs: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /remark-parse/10.0.1: + resolution: {integrity: sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==} + dependencies: + '@types/mdast': 3.0.10 + mdast-util-from-markdown: 1.3.0 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + /remark-rehype/10.1.0: + resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} + dependencies: + '@types/hast': 2.3.4 + '@types/mdast': 3.0.10 + mdast-util-to-hast: 12.3.0 + unified: 10.1.2 + dev: false + + /repeat-string/1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + dev: false + + /require-directory/2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: false /resolve/1.22.1: resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} @@ -827,12 +2994,10 @@ packages: is-core-module: 2.11.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - dev: true /reusify/1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: true /rome/11.0.0: resolution: {integrity: sha512-rRo6JOwpMLc3OkeTDRXkrmrDqnxDvZ75GS4f0jLDBNmRgDXWbu0F8eVnJoRn+VbK2AE7vWvhVOMBjnWowcopkQ==} @@ -852,7 +3017,13 @@ packages: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 - dev: true + + /sade/1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + dependencies: + mri: 1.2.0 + dev: false /scheduler/0.23.0: resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} @@ -860,10 +3031,101 @@ packages: loose-envify: 1.4.0 dev: false + /section-matter/1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + dev: false + + /semver/7.3.8: + resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: false + + /shiki/0.14.1: + resolution: {integrity: sha512-+Jz4nBkCBe0mEDqo1eKRcCdjRtrCjozmcbTUjbPTX7OOJfEbTZzlUWlZtGe3Gb5oV1/jnojhG//YZc3rs9zSEw==} + dependencies: + ansi-sequence-parser: 1.1.0 + jsonc-parser: 3.2.0 + vscode-oniguruma: 1.7.0 + vscode-textmate: 8.0.0 + dev: false + + /sort-keys/5.0.0: + resolution: {integrity: sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==} + engines: {node: '>=12'} + dependencies: + is-plain-obj: 4.1.0 + dev: false + /source-map-js/1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} + /source-map-support/0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: false + + /source-map/0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: false + + /source-map/0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + dev: false + + /space-separated-tokens/2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + dev: false + + /sprintf-js/1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: false + + /string-width/4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: false + + /stringify-entities/4.0.3: + resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + dev: false + + /strip-ansi/6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: false + + /strip-bom-string/1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + dev: false + + /style-to-object/0.4.1: + resolution: {integrity: sha512-HFpbb5gr2ypci7Qw+IOhnP2zOU7e77b+rzM+wTzXzfi1PrtBCX0E7Pk4wL4iTLnhzZ+JgEGAhX81ebTg/aYjQw==} + dependencies: + inline-style-parser: 0.1.1 + dev: false + /styled-jsx/5.1.1_react@18.2.0: resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} engines: {node: '>= 12.0.0'} @@ -884,7 +3146,6 @@ packages: /supports-preserve-symlinks-flag/1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - dev: true /tailwindcss-debug-screens/2.2.1_tailwindcss@3.2.7: resolution: {integrity: sha512-EMyA0CYBzqcZJHtVDvBfmYzfx3NxuK4qDyVO5wnzcGOrmJsv25D9xPpWefVTORTvhE6pCh90Z1WYnLUKsg3yMw==} @@ -933,18 +3194,109 @@ packages: engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 - dev: true + + /toml/3.0.0: + resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==} + dev: false + + /trim-lines/3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + dev: false + + /trough/2.1.0: + resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} + dev: false + + /ts-pattern/4.2.1: + resolution: {integrity: sha512-lXCmHZb01QOM9HdCLvisCGUH9ATdKPON9UaUvwe007gJAhuSBhRWIAIowys5QqNxEq6odWctfMIdI96vzjnOMQ==} + dev: false /tslib/2.5.0: resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} dev: false + /typanion/3.12.1: + resolution: {integrity: sha512-3SJF/czpzqq6G3lprGFLa6ps12yb1uQ1EmitNnep2fDMNh1aO/Zbq9sWY+3lem0zYb2oHJnQWyabTGUZ+L1ScQ==} + dev: false + + /type-fest/1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + dev: false + + /type-fest/3.6.1: + resolution: {integrity: sha512-htXWckxlT6U4+ilVgweNliPqlsVSSucbxVexRYllyMVJDtf5rTjv6kF/s+qAd4QSL1BZcnJPEJavYBPQiWuZDA==} + engines: {node: '>=14.16'} + dev: false + /typescript/4.9.5: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} hasBin: true dev: false + /unified/10.1.2: + resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} + dependencies: + '@types/unist': 2.0.6 + bail: 2.0.2 + extend: 3.0.2 + is-buffer: 2.0.5 + is-plain-obj: 4.1.0 + trough: 2.1.0 + vfile: 5.3.7 + dev: false + + /unist-util-generated/2.0.1: + resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==} + dev: false + + /unist-util-is/5.2.1: + resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} + dependencies: + '@types/unist': 2.0.6 + dev: false + + /unist-util-position-from-estree/1.1.2: + resolution: {integrity: sha512-poZa0eXpS+/XpoQwGwl79UUdea4ol2ZuCYguVaJS4qzIOMDzbqz8a3erUCOmubSZkaOuGamb3tX790iwOIROww==} + dependencies: + '@types/unist': 2.0.6 + dev: false + + /unist-util-position/4.0.4: + resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==} + dependencies: + '@types/unist': 2.0.6 + dev: false + + /unist-util-remove-position/4.0.2: + resolution: {integrity: sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ==} + dependencies: + '@types/unist': 2.0.6 + unist-util-visit: 4.1.2 + dev: false + + /unist-util-stringify-position/3.0.3: + resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} + dependencies: + '@types/unist': 2.0.6 + dev: false + + /unist-util-visit-parents/5.1.3: + resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} + dependencies: + '@types/unist': 2.0.6 + unist-util-is: 5.2.1 + dev: false + + /unist-util-visit/4.1.2: + resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} + dependencies: + '@types/unist': 2.0.6 + unist-util-is: 5.2.1 + unist-util-visit-parents: 5.1.3 + dev: false + /update-browserslist-db/1.0.10_browserslist@4.21.5: resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} hasBin: true @@ -960,12 +3312,111 @@ packages: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true + /uuid/8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + dev: false + + /uvu/0.5.6: + resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} + engines: {node: '>=8'} + hasBin: true + dependencies: + dequal: 2.0.3 + diff: 5.1.0 + kleur: 4.1.5 + sade: 1.8.1 + dev: false + + /vfile-location/4.1.0: + resolution: {integrity: sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==} + dependencies: + '@types/unist': 2.0.6 + vfile: 5.3.7 + dev: false + + /vfile-message/3.1.4: + resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} + dependencies: + '@types/unist': 2.0.6 + unist-util-stringify-position: 3.0.3 + dev: false + + /vfile/5.3.7: + resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} + dependencies: + '@types/unist': 2.0.6 + is-buffer: 2.0.5 + unist-util-stringify-position: 3.0.3 + vfile-message: 3.1.4 + dev: false + + /vscode-oniguruma/1.7.0: + resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} + dev: false + + /vscode-textmate/8.0.0: + resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} + dev: false + + /web-namespaces/2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + dev: false + + /web-streams-polyfill/3.2.1: + resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} + engines: {node: '>= 8'} + dev: false + + /wrap-ansi/7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: false + /xtend/4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} dev: true + /y18n/5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: false + + /yallist/4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: false + /yaml/1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} - dev: true + + /yargs-parser/20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: false + + /yargs/16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + dev: false + + /zod/3.20.6: + resolution: {integrity: sha512-oyu0m54SGCtzh6EClBVqDDlAYRz4jrVtKwQ7ZnsEmMI9HnzuZFj8QFwAY1M5uniIYACdGvv0PBWPF2kO0aNofA==} + dev: false + + /zwitch/2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + dev: false diff --git a/tailwind.config.js b/tailwind.config.js index ef6ec3f8..dd2bf5ea 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -2,7 +2,7 @@ const defaultTheme = require("tailwindcss/defaultTheme"); /** @type {import('tailwindcss').Config} */ module.exports = { - content: ["./app/**/*.{js,ts,jsx,tsx}"], + content: ["./app/**/*.{js,ts,jsx,tsx}", "./mdx-components.tsx"], theme: { extend: { diff --git a/tsconfig.json b/tsconfig.json index 597f483b..9852c621 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -21,7 +21,9 @@ ], "baseUrl": ".", "paths": { - "@/*": ["./*"] + "@/*": ["./*"], + "contentlayer/generated": ["./.contentlayer/generated"] + } }, "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], diff --git a/types/mdx.d.ts b/types/mdx.d.ts new file mode 100644 index 00000000..d92ef528 --- /dev/null +++ b/types/mdx.d.ts @@ -0,0 +1,5 @@ +// types/mdx.d.ts +declare module "*.mdx" { + let MDXComponent: (props) => JSX.Element; + export default MDXComponent; +}