Andreas Thomas d13531c222
redesign
2023-03-26 12:29:53 +02:00

418 lines
542 KiB
JSON

{
"cacheItemsMap": {
"projects/access.mdx": {
"document": {
"published": true,
"title": "@chronark/access",
"description": "A minimal library for access control. It is designed to be used together with opaque access tokens by providing a simple interface to define roles with different access permissions and verifying requests to resources.",
"date": "2022-11-13T00:00:00.000Z",
"repository": "chronark/access",
"body": {
"raw": "A minimal library for access control. It is designed to be used together with opaque access tokens by providing a simple interface to define roles with different access permissions and verifying requests to resources.\n\n- Fully typed\n- Zero dependencies\n- Serializable to store in a database\n\n## Install\n\n```sh-session\nnpm i @chronark/access\n```\n\n## Usage\n\n```ts\nimport { AccessControl, Role } from \"@chronark/access\";\n\n/**\n * Define all your resources and their access patterns\n *\n * key => resource\n * value => array of access types\n */\ntype Statements = {\n user: [\"read\", \"write\", \"dance\"];\n team: [\"read\", \"write\"];\n};\n\n/**\n * Create an access control instance and pass the Statements type to enjoy full\n * type safety\n */\nconst ac = new AccessControl<Statements>();\n\n/**\n * Now you can define one or more roles by specifying the access permissions\n *\n * This is already fully typed and typescript will let you know if you try to\n * use anything, that is not defined in the Statements type.\n */\nconst role = ac.newRole({\n user: [\"read\", \"write\"],\n team: [\"read\"],\n});\n\n/**\n * Simulate storing and retrieving the role in a database\n *\n * The idea here is, that you can store permissions alongside an API token.\n * Now, when you verify the token, you can also verify the access permissions.\n */\nconst serialized = role.toString();\n\n/**\n * Note how you can pass in the Statements type again, to get full type safety\n */\nconst recovered = Role.fromString<Statements>(serialized);\n\n/**\n * Validate the role by specifying the resource and the required access\n *\n * everything is fully typed\n */\nconst res = recovered.authorize({\"team\", [\"read\"]});\n\n// res.success => boolean\n// res.error => string | undefined provides a reason for failure\n```",
"code": "var Component=(()=>{var sn=Object.create;var S=Object.defineProperty;var ln=Object.getOwnPropertyDescriptor;var mn=Object.getOwnPropertyNames;var un=Object.getPrototypeOf,fn=Object.prototype.hasOwnProperty;var z=(l,e)=>()=>(e||l((e={exports:{}}).exports,e),e.exports),hn=(l,e)=>{for(var _ in e)S(l,_,{get:e[_],enumerable:!0})},xe=(l,e,_,k)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let y of mn(e))!fn.call(l,y)&&y!==_&&S(l,y,{get:()=>e[y],enumerable:!(k=ln(e,y))||k.enumerable});return l};var bn=(l,e,_)=>(_=l!=null?sn(un(l)):{},xe(e||!l||!l.__esModule?S(_,\"default\",{value:l,enumerable:!0}):_,l)),_n=l=>xe(S({},\"__esModule\",{value:!0}),l);var Ee=z((gn,ge)=>{ge.exports=React});var je=z(G=>{\"use strict\";(function(){\"use strict\";var l=Ee(),e=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),k=Symbol.for(\"react.fragment\"),y=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),F=Symbol.for(\"react.forward_ref\"),O=Symbol.for(\"react.suspense\"),P=Symbol.for(\"react.suspense_list\"),R=Symbol.for(\"react.memo\"),B=Symbol.for(\"react.lazy\"),Re=Symbol.for(\"react.offscreen\"),Z=Symbol.iterator,Ce=\"@@iterator\";function De(n){if(n===null||typeof n!=\"object\")return null;var a=Z&&n[Z]||n[Ce];return typeof a==\"function\"?a:null}var g=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function f(n){{for(var a=arguments.length,d=new Array(a>1?a-1:0),c=1;c<a;c++)d[c-1]=arguments[c];we(\"error\",n,d)}}function we(n,a,d){{var c=g.ReactDebugCurrentFrame,s=c.getStackAddendum();s!==\"\"&&(a+=\"%s\",d=d.concat([s]));var i=d.map(function(o){return String(o)});i.unshift(\"Warning: \"+a),Function.prototype.apply.call(console[n],console,i)}}var Te=!1,Ae=!1,Se=!1,Oe=!1,Pe=!1,J;J=Symbol.for(\"react.module.reference\");function Be(n){return!!(typeof n==\"string\"||typeof n==\"function\"||n===k||n===X||Pe||n===y||n===O||n===P||Oe||n===Re||Te||Ae||Se||typeof n==\"object\"&&n!==null&&(n.$$typeof===B||n.$$typeof===R||n.$$typeof===K||n.$$typeof===H||n.$$typeof===F||n.$$typeof===J||n.getModuleId!==void 0))}function Ie(n,a,d){var c=n.displayName;if(c)return c;var s=a.displayName||a.name||\"\";return s!==\"\"?d+\"(\"+s+\")\":d}function Q(n){return n.displayName||\"Context\"}function p(n){if(n==null)return null;if(typeof n.tag==\"number\"&&f(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"),typeof n==\"function\")return n.displayName||n.name||null;if(typeof n==\"string\")return n;switch(n){case k:return\"Fragment\";case _:return\"Portal\";case X:return\"Profiler\";case y:return\"StrictMode\";case O:return\"Suspense\";case P:return\"SuspenseList\"}if(typeof n==\"object\")switch(n.$$typeof){case H:var a=n;return Q(a)+\".Consumer\";case K:var d=n;return Q(d._context)+\".Provider\";case F:return Ie(n,n.render,\"ForwardRef\");case R:var c=n.displayName||null;return c!==null?c:p(n.type)||\"Memo\";case B:{var s=n,i=s._payload,o=s._init;try{return p(o(i))}catch{return null}}}return null}var x=Object.assign,U=0,ee,ne,re,ae,de,ce,te;function oe(){}oe.__reactDisabledLog=!0;function Ye(){{if(U===0){ee=console.log,ne=console.info,re=console.warn,ae=console.error,de=console.group,ce=console.groupCollapsed,te=console.groupEnd;var n={configurable:!0,enumerable:!0,value:oe,writable:!0};Object.defineProperties(console,{info:n,log:n,warn:n,error:n,group:n,groupCollapsed:n,groupEnd:n})}U++}}function $e(){{if(U--,U===0){var n={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:x({},n,{value:ee}),info:x({},n,{value:ne}),warn:x({},n,{value:re}),error:x({},n,{value:ae}),group:x({},n,{value:de}),groupCollapsed:x({},n,{value:ce}),groupEnd:x({},n,{value:te})})}U<0&&f(\"disabledDepth fell below zero. This is a bug in React. Please file an issue.\")}}var I=g.ReactCurrentDispatcher,Y;function C(n,a,d){{if(Y===void 0)try{throw Error()}catch(s){var c=s.stack.trim().match(/\\n( *(at )?)/);Y=c&&c[1]||\"\"}return`\n`+Y+n}}var $=!1,D;{var We=typeof WeakMap==\"function\"?WeakMap:Map;D=new We}function se(n,a){if(!n||$)return\"\";{var d=D.get(n);if(d!==void 0)return d}var c;$=!0;var s=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var i;i=I.current,I.current=null,Ye();try{if(a){var o=function(){throw Error()};if(Object.defineProperty(o.prototype,\"props\",{set:function(){throw Error()}}),typeof Reflect==\"object\"&&Reflect.construct){try{Reflect.construct(o,[])}catch(N){c=N}Reflect.construct(n,[],o)}else{try{o.call()}catch(N){c=N}n.call(o.prototype)}}else{try{throw Error()}catch(N){c=N}n()}}catch(N){if(N&&c&&typeof N.stack==\"string\"){for(var t=N.stack.split(`\n`),h=c.stack.split(`\n`),m=t.length-1,u=h.length-1;m>=1&&u>=0&&t[m]!==h[u];)u--;for(;m>=1&&u>=0;m--,u--)if(t[m]!==h[u]){if(m!==1||u!==1)do if(m--,u--,u<0||t[m]!==h[u]){var b=`\n`+t[m].replace(\" at new \",\" at \");return n.displayName&&b.includes(\"<anonymous>\")&&(b=b.replace(\"<anonymous>\",n.displayName)),typeof n==\"function\"&&D.set(n,b),b}while(m>=1&&u>=0);break}}}finally{$=!1,I.current=i,$e(),Error.prepareStackTrace=s}var j=n?n.displayName||n.name:\"\",ke=j?C(j):\"\";return typeof n==\"function\"&&D.set(n,ke),ke}function Ve(n,a,d){return se(n,!1)}function Me(n){var a=n.prototype;return!!(a&&a.isReactComponent)}function w(n,a,d){if(n==null)return\"\";if(typeof n==\"function\")return se(n,Me(n));if(typeof n==\"string\")return C(n);switch(n){case O:return C(\"Suspense\");case P:return C(\"SuspenseList\")}if(typeof n==\"object\")switch(n.$$typeof){case F:return Ve(n.render);case R:return w(n.type,a,d);case B:{var c=n,s=c._payload,i=c._init;try{return w(i(s),a,d)}catch{}}}return\"\"}var T=Object.prototype.hasOwnProperty,ie={},le=g.ReactDebugCurrentFrame;function A(n){if(n){var a=n._owner,d=w(n.type,n._source,a?a.type:null);le.setExtraStackFrame(d)}else le.setExtraStackFrame(null)}function Le(n,a,d,c,s){{var i=Function.call.bind(T);for(var o in n)if(i(n,o)){var t=void 0;try{if(typeof n[o]!=\"function\"){var h=Error((c||\"React class\")+\": \"+d+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof n[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw h.name=\"Invariant Violation\",h}t=n[o](a,o,c,d,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(m){t=m}t&&!(t instanceof Error)&&(A(s),f(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",c||\"React class\",d,o,typeof t),A(null)),t instanceof Error&&!(t.message in ie)&&(ie[t.message]=!0,A(s),f(\"Failed %s type: %s\",d,t.message),A(null))}}}var qe=Array.isArray;function W(n){return qe(n)}function ze(n){{var a=typeof Symbol==\"function\"&&Symbol.toStringTag,d=a&&n[Symbol.toStringTag]||n.constructor.name||\"Object\";return d}}function Ge(n){try{return me(n),!1}catch{return!0}}function me(n){return\"\"+n}function ue(n){if(Ge(n))return f(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",ze(n)),me(n)}var v=g.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},fe,he,V;V={};function Ke(n){if(T.call(n,\"ref\")){var a=Object.getOwnPropertyDescriptor(n,\"ref\").get;if(a&&a.isReactWarning)return!1}return n.ref!==void 0}function He(n){if(T.call(n,\"key\")){var a=Object.getOwnPropertyDescriptor(n,\"key\").get;if(a&&a.isReactWarning)return!1}return n.key!==void 0}function Ze(n,a){if(typeof n.ref==\"string\"&&v.current&&a&&v.current.stateNode!==a){var d=p(v.current.type);V[d]||(f('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(v.current.type),n.ref),V[d]=!0)}}function Je(n,a){{var d=function(){fe||(fe=!0,f(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};d.isReactWarning=!0,Object.defineProperty(n,\"key\",{get:d,configurable:!0})}}function Qe(n,a){{var d=function(){he||(he=!0,f(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};d.isReactWarning=!0,Object.defineProperty(n,\"ref\",{get:d,configurable:!0})}}var en=function(n,a,d,c,s,i,o){var t={$$typeof:e,type:n,key:a,ref:d,props:o,_owner:i};return t._store={},Object.defineProperty(t._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(t,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:c}),Object.defineProperty(t,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:s}),Object.freeze&&(Object.freeze(t.props),Object.freeze(t)),t};function nn(n,a,d,c,s){{var i,o={},t=null,h=null;d!==void 0&&(ue(d),t=\"\"+d),He(a)&&(ue(a.key),t=\"\"+a.key),Ke(a)&&(h=a.ref,Ze(a,s));for(i in a)T.call(a,i)&&!Xe.hasOwnProperty(i)&&(o[i]=a[i]);if(n&&n.defaultProps){var m=n.defaultProps;for(i in m)o[i]===void 0&&(o[i]=m[i])}if(t||h){var u=typeof n==\"function\"?n.displayName||n.name||\"Unknown\":n;t&&Je(o,u),h&&Qe(o,u)}return en(n,t,h,s,c,v.current,o)}}var M=g.ReactCurrentOwner,be=g.ReactDebugCurrentFrame;function E(n){if(n){var a=n._owner,d=w(n.type,n._source,a?a.type:null);be.setExtraStackFrame(d)}else be.setExtraStackFrame(null)}var L;L=!1;function q(n){return typeof n==\"object\"&&n!==null&&n.$$typeof===e}function _e(){{if(M.current){var n=p(M.current.type);if(n)return`\n\nCheck the render method of \\``+n+\"`.\"}return\"\"}}function rn(n){{if(n!==void 0){var a=n.fileName.replace(/^.*[\\\\\\/]/,\"\"),d=n.lineNumber;return`\n\nCheck your code at `+a+\":\"+d+\".\"}return\"\"}}var pe={};function an(n){{var a=_e();if(!a){var d=typeof n==\"string\"?n:n.displayName||n.name;d&&(a=`\n\nCheck the top-level render call using <`+d+\">.\")}return a}}function Ne(n,a){{if(!n._store||n._store.validated||n.key!=null)return;n._store.validated=!0;var d=an(a);if(pe[d])return;pe[d]=!0;var c=\"\";n&&n._owner&&n._owner!==M.current&&(c=\" It was passed a child from \"+p(n._owner.type)+\".\"),E(n),f('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',d,c),E(null)}}function ye(n,a){{if(typeof n!=\"object\")return;if(W(n))for(var d=0;d<n.length;d++){var c=n[d];q(c)&&Ne(c,a)}else if(q(n))n._store&&(n._store.validated=!0);else if(n){var s=De(n);if(typeof s==\"function\"&&s!==n.entries)for(var i=s.call(n),o;!(o=i.next()).done;)q(o.value)&&Ne(o.value,a)}}}function dn(n){{var a=n.type;if(a==null||typeof a==\"string\")return;var d;if(typeof a==\"function\")d=a.propTypes;else if(typeof a==\"object\"&&(a.$$typeof===F||a.$$typeof===R))d=a.propTypes;else return;if(d){var c=p(a);Le(d,n.props,\"prop\",c,n)}else if(a.PropTypes!==void 0&&!L){L=!0;var s=p(a);f(\"Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?\",s||\"Unknown\")}typeof a.getDefaultProps==\"function\"&&!a.getDefaultProps.isReactClassApproved&&f(\"getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.\")}}function cn(n){{for(var a=Object.keys(n.props),d=0;d<a.length;d++){var c=a[d];if(c!==\"children\"&&c!==\"key\"){E(n),f(\"Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.\",c),E(null);break}}n.ref!==null&&(E(n),f(\"Invalid attribute `ref` supplied to `React.Fragment`.\"),E(null))}}function tn(n,a,d,c,s,i){{var o=Be(n);if(!o){var t=\"\";(n===void 0||typeof n==\"object\"&&n!==null&&Object.keys(n).length===0)&&(t+=\" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.\");var h=rn(s);h?t+=h:t+=_e();var m;n===null?m=\"null\":W(n)?m=\"array\":n!==void 0&&n.$$typeof===e?(m=\"<\"+(p(n.type)||\"Unknown\")+\" />\",t=\" Did you accidentally export a JSX literal instead of a component?\"):m=typeof n,f(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",m,t)}var u=nn(n,a,d,s,i);if(u==null)return u;if(o){var b=a.children;if(b!==void 0)if(c)if(W(b)){for(var j=0;j<b.length;j++)ye(b[j],n);Object.freeze&&Object.freeze(b)}else f(\"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\");else ye(b,n)}return n===k?cn(u):dn(u),u}}var on=tn;G.Fragment=k,G.jsxDEV=on})()});var ve=z((jn,Ue)=>{\"use strict\";Ue.exports=je()});var kn={};hn(kn,{default:()=>yn,frontmatter:()=>pn});var r=bn(ve()),pn={title:\"@chronark/access\",description:\"A minimal library for access control. It is designed to be used together with opaque access tokens by providing a simple interface to define roles with different access permissions and verifying requests to resources.\",repository:\"chronark/access\",date:\"2022-11-13\",published:!0};function Fe(l){let e=Object.assign({p:\"p\",ul:\"ul\",li:\"li\",h2:\"h2\",a:\"a\",span:\"span\",div:\"div\",pre:\"pre\",code:\"code\"},l.components);return(0,r.jsxDEV)(r.Fragment,{children:[(0,r.jsxDEV)(e.p,{children:\"A minimal library for access control. It is designed to be used together with opaque access tokens by providing a simple interface to define roles with different access permissions and verifying requests to resources.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ul,{children:[`\n`,(0,r.jsxDEV)(e.li,{children:\"Fully typed\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:\"Zero dependencies\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:\"Serializable to store in a database\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:13,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h2,{id:\"install\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#install\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\"},this),\"Install\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\"npm i @chronark/access\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h2,{id:\"usage\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#usage\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\"},this),\"Usage\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:21,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:104},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" { AccessControl, Role } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:146},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:207},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:247},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"@chronark/access\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:284},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\";\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:348},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:3,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Define all your resources and their access patterns\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:4,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" *\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:5,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * key => resource\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * value => array of access types\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"type\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:60},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"Statements\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:97},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:143},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:180},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:217},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\"user\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:58},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\":\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:135},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:173},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:225},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"write\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:263},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:316},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"dance\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:354},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"];\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:407},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\"team\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:58},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\":\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:135},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:173},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:225},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"write\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:263},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"];\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:316},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"};\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:12,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:14,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Create an access control instance and pass the Statements type to enjoy full\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:15,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * type safety\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:16,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:17,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"ac\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:136},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:173},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:210},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"new\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:247},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:286},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"AccessControl\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:323},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"<\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:372},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"Statements\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:412},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\">();\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:458},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:20,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Now you can define one or more roles by specifying the access permissions\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:21,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:21,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" *\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:22,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:22,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * This is already fully typed and typescript will let you know if you try to\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:23,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:23,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * use anything, that is not defined in the Statements type.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:24,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:24,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:25,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:25,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"role\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:138},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:175},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" ac.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:212},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"newRole\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:252},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:295},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:26,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" user: [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:27,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:27,columnNumber:65},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:27,columnNumber:117},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"write\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:27,columnNumber:155},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"],\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:27,columnNumber:208},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:27,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" team: [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:28,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:28,columnNumber:65},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"],\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:28,columnNumber:117},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:28,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"});\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:29,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:29,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:31,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Simulate storing and retrieving the role in a database\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:32,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:32,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" *\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:33,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:33,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * The idea here is, that you can store permissions alongside an API token.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:34,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:34,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Now, when you verify the token, you can also verify the access permissions.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:35,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:36,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:36,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"serialized\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:144},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:181},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" role.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:218},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"toString\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:260},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"();\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:304},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:37,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:38,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:39,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:39,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Note how you can pass in the Statements type again, to get full type safety\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:40,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:40,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:41,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:41,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"recovered\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:143},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:180},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" Role.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:217},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"fromString\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:259},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"<\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:305},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"Statements\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:345},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\">(serialized);\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:391},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:42,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:43,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"/**\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:44,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:44,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * Validate the role by specifying the resource and the required access\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:45,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:45,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" *\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:46,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:46,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" * everything is fully typed\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:47,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:47,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\" */\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:48,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:48,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:61},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"res\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:98},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:137},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:174},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" recovered.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:211},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"authorize\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:258},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:303},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"team\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:341},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:393},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"read\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:432},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"]});\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:484},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:49,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:50,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// res.success => boolean\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:51,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:51,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{className:\"line\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// res.error => string | undefined provides a reason for failure\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:52,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:52,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:23,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\",lineNumber:1,columnNumber:1},this)}function Nn(l={}){let{wrapper:e}=l.components||{};return e?(0,r.jsxDEV)(e,Object.assign({},l,{children:(0,r.jsxDEV)(Fe,l,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-675c5a23-2c19-43e7-afcf-8bdd7ed1d19d.mdx\"},this):Fe(l)}var yn=Nn;return _n(kn);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;"
},
"_id": "projects/access.mdx",
"_raw": {
"sourceFilePath": "projects/access.mdx",
"sourceFileName": "access.mdx",
"sourceFileDir": "projects",
"contentType": "mdx",
"flattenedPath": "projects/access"
},
"type": "Project",
"path": "/projects/access",
"slug": "access"
},
"documentHash": "1679819558148",
"hasWarnings": false,
"documentTypeName": "Project"
},
"projects/envshare.mdx": {
"document": {
"published": true,
"title": "envshare.dev",
"description": "EnvShare is a simple tool to share environment variables securely. It uses AES-GCM to encrypt your data before sending it to the server. The encryption key never leaves your browser.",
"date": "2023-01-16T00:00:00.000Z",
"url": "https://envshare.dev",
"repository": "chronark/envshare",
"body": {
"raw": "\nEnvShare is a simple tool to share environment variables securely. It uses\n**AES-GCM** to encrypt your data before sending it to the server. The encryption\nkey never leaves your browser.\n\n## Features\n\n- **Shareable Links:** Share your environment variables securely by sending a\n link\n- **End-to-End Encryption:** AES-GCM encryption is used to encrypt your data\n before sending it to the server\n- **Limit number of reads:** Limit the number of times a link can be read\n- **Auto Expire:** Automatically expire links and delete data after a certain\n time\n\n\n\n![](https://github.com/chronark/envshare/raw/main/img/envshare.png)\n\n## Built with\n\n- [Next.js](https://nextjs.org)\n- [tailwindcss](https://tailwindcss.com)\n- Deployed on [Vercel](https://vercel.com?utm_source=envshare)\n- Data stored on [Upstash](https://upstash.com?utm_source=envshare)\n\n## Deploy your own\n\nDetailed instructions can be found [here](https://envshare.dev/deploy)\n\nAll you need is a Redis database on Upstash and a Vercel account. Click the\nbutton below to clone and deploy:\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?demo-title=EnvShare&demo-description=Simple%20Next.js%20%2B%20Upstash%20app%20to%20share%20environment%20variables%20securely%20using%20AES-GCM%20encryption.&demo-url=https%3A%2F%2Fenvshare.dev%2F&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5SaFBHXp5FBFJbsTzVqIJ3%2Ff0f8382369b7642fd8103debb9025c11%2Fenvshare.png&project-name=EnvShare&repository-name=envshare&repository-url=https%3A%2F%2Fgithub.com%2Fchronark%2Fenvshare&from=templates&integration-ids=oac_V3R1GIpkoJorr6fqyiwdhl17)\n\n\n\n## Configuration\n\n### Environment Variables\n\n`ENABLE_VERCEL_ANALYTICS` Any truthy value will enable Vercel Analytics. This is turned off by default\n\n## Contributing\n\nThis repository uses `pnpm` to manage dependencies. Install it using\n`npm install -g pnpm`\n\nPlease run `pnpm fmt` before committing to format the code.\n\n## Docs\n\nDocs in the README are temporary and will be moved to the website soon.\n\n### API\n\n#### Store a secret\n\n**PLEASE NEVER EVER UPLOAD UNENCRYPTED SECRETS.**\n\nThis endpoint is only meant to store **already encrypted** secrets. The\nencrypted secrets are stored in plain text.\n\n```sh-session\n$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\"\n```\n\nYou can add optional headers to configure the ttl and number of reads.\n\n```sh-session\n$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\" -H \"envshare-ttl: 3600\" -H \"envshare-reads: 10\"\n```\n\n- Omitting the `envshare-ttl` header will set a default of 30 days. Disable the\n ttl by setting it to 0. (`envshare-ttl: 0`)\n- Omitting the `envshare-reads` header will simply disable it and allow reading\n for an unlimited number of times.\n\nThis endpoint returns a JSON response with the secret id:\n\n```json\n{\n \"data\": {\n \"id\": \"HdPbXgpvUvNk43oxSdK97u\",\n \"ttl\": 86400,\n \"reads\": 2,\n \"expiresAt\": \"2023-01-19T20:47:28.383Z\",\n \"url\": \"http://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"\n }\n}\n```\n\n#### Retrieve a secret\n\nYou need an id to retrieve a secret. The id is returned when you store a secret.\n\n```sh-session\n$ curl -s https://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\n```\n\n```json\n{\n \"data\": {\n \"secret\": \"Hello\",\n \"remainingReads\": 1\n }\n}\n```",
"code": "var Component=(()=>{var ln=Object.create;var O=Object.defineProperty;var dn=Object.getOwnPropertyDescriptor;var un=Object.getOwnPropertyNames;var mn=Object.getPrototypeOf,bn=Object.prototype.hasOwnProperty;var X=(d,n)=>()=>(n||d((n={exports:{}}).exports,n),n.exports),hn=(d,n)=>{for(var _ in n)O(d,_,{get:n[_],enumerable:!0})},ye=(d,n,_,x)=>{if(n&&typeof n==\"object\"||typeof n==\"function\")for(let k of un(n))!bn.call(d,k)&&k!==_&&O(d,k,{get:()=>n[k],enumerable:!(x=dn(n,k))||x.enumerable});return d};var fn=(d,n,_)=>(_=d!=null?ln(mn(d)):{},ye(n||!d||!d.__esModule?O(_,\"default\",{value:d,enumerable:!0}):_,d)),_n=d=>ye(O({},\"__esModule\",{value:!0}),d);var ve=X((gn,ge)=>{ge.exports=React});var Ee=X(H=>{\"use strict\";(function(){\"use strict\";var d=ve(),n=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),x=Symbol.for(\"react.fragment\"),k=Symbol.for(\"react.strict_mode\"),q=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),z=Symbol.for(\"react.context\"),R=Symbol.for(\"react.forward_ref\"),A=Symbol.for(\"react.suspense\"),D=Symbol.for(\"react.suspense_list\"),F=Symbol.for(\"react.memo\"),L=Symbol.for(\"react.lazy\"),Fe=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Te=\"@@iterator\";function we(e){if(e===null||typeof e!=\"object\")return null;var t=J&&e[J]||e[Te];return typeof t==\"function\"?t:null}var g=d.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function b(e){{for(var t=arguments.length,a=new Array(t>1?t-1:0),o=1;o<t;o++)a[o-1]=arguments[o];Se(\"error\",e,a)}}function Se(e,t,a){{var o=g.ReactDebugCurrentFrame,c=o.getStackAddendum();c!==\"\"&&(t+=\"%s\",a=a.concat([c]));var l=a.map(function(i){return String(i)});l.unshift(\"Warning: \"+t),Function.prototype.apply.call(console[e],console,l)}}var Ce=!1,Pe=!1,Oe=!1,Ae=!1,De=!1,Z;Z=Symbol.for(\"react.module.reference\");function Le(e){return!!(typeof e==\"string\"||typeof e==\"function\"||e===x||e===q||De||e===k||e===A||e===D||Ae||e===Fe||Ce||Pe||Oe||typeof e==\"object\"&&e!==null&&(e.$$typeof===L||e.$$typeof===F||e.$$typeof===K||e.$$typeof===z||e.$$typeof===R||e.$$typeof===Z||e.getModuleId!==void 0))}function Ie(e,t,a){var o=e.displayName;if(o)return o;var c=t.displayName||t.name||\"\";return c!==\"\"?a+\"(\"+c+\")\":a}function Q(e){return e.displayName||\"Context\"}function p(e){if(e==null)return null;if(typeof e.tag==\"number\"&&b(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"),typeof e==\"function\")return e.displayName||e.name||null;if(typeof e==\"string\")return e;switch(e){case x:return\"Fragment\";case _:return\"Portal\";case q:return\"Profiler\";case k:return\"StrictMode\";case A:return\"Suspense\";case D:return\"SuspenseList\"}if(typeof e==\"object\")switch(e.$$typeof){case z:var t=e;return Q(t)+\".Consumer\";case K:var a=e;return Q(a._context)+\".Provider\";case R:return Ie(e,e.render,\"ForwardRef\");case F:var o=e.displayName||null;return o!==null?o:p(e.type)||\"Memo\";case L:{var c=e,l=c._payload,i=c._init;try{return p(i(l))}catch{return null}}}return null}var y=Object.assign,j=0,ee,ne,re,te,ae,oe,se;function ie(){}ie.__reactDisabledLog=!0;function Be(){{if(j===0){ee=console.log,ne=console.info,re=console.warn,te=console.error,ae=console.group,oe=console.groupCollapsed,se=console.groupEnd;var e={configurable:!0,enumerable:!0,value:ie,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}j++}}function Ve(){{if(j--,j===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:y({},e,{value:ee}),info:y({},e,{value:ne}),warn:y({},e,{value:re}),error:y({},e,{value:te}),group:y({},e,{value:ae}),groupCollapsed:y({},e,{value:oe}),groupEnd:y({},e,{value:se})})}j<0&&b(\"disabledDepth fell below zero. This is a bug in React. Please file an issue.\")}}var I=g.ReactCurrentDispatcher,B;function T(e,t,a){{if(B===void 0)try{throw Error()}catch(c){var o=c.stack.trim().match(/\\n( *(at )?)/);B=o&&o[1]||\"\"}return`\n`+B+e}}var V=!1,w;{var Ye=typeof WeakMap==\"function\"?WeakMap:Map;w=new Ye}function ce(e,t){if(!e||V)return\"\";{var a=w.get(e);if(a!==void 0)return a}var o;V=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var l;l=I.current,I.current=null,Be();try{if(t){var i=function(){throw Error()};if(Object.defineProperty(i.prototype,\"props\",{set:function(){throw Error()}}),typeof Reflect==\"object\"&&Reflect.construct){try{Reflect.construct(i,[])}catch(N){o=N}Reflect.construct(e,[],i)}else{try{i.call()}catch(N){o=N}e.call(i.prototype)}}else{try{throw Error()}catch(N){o=N}e()}}catch(N){if(N&&o&&typeof N.stack==\"string\"){for(var s=N.stack.split(`\n`),h=o.stack.split(`\n`),u=s.length-1,m=h.length-1;u>=1&&m>=0&&s[u]!==h[m];)m--;for(;u>=1&&m>=0;u--,m--)if(s[u]!==h[m]){if(u!==1||m!==1)do if(u--,m--,m<0||s[u]!==h[m]){var f=`\n`+s[u].replace(\" at new \",\" at \");return e.displayName&&f.includes(\"<anonymous>\")&&(f=f.replace(\"<anonymous>\",e.displayName)),typeof e==\"function\"&&w.set(e,f),f}while(u>=1&&m>=0);break}}}finally{V=!1,I.current=l,Ve(),Error.prepareStackTrace=c}var E=e?e.displayName||e.name:\"\",xe=E?T(E):\"\";return typeof e==\"function\"&&w.set(e,xe),xe}function $e(e,t,a){return ce(e,!1)}function Me(e){var t=e.prototype;return!!(t&&t.isReactComponent)}function S(e,t,a){if(e==null)return\"\";if(typeof e==\"function\")return ce(e,Me(e));if(typeof e==\"string\")return T(e);switch(e){case A:return T(\"Suspense\");case D:return T(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case R:return $e(e.render);case F:return S(e.type,t,a);case L:{var o=e,c=o._payload,l=o._init;try{return S(l(c),t,a)}catch{}}}return\"\"}var C=Object.prototype.hasOwnProperty,le={},de=g.ReactDebugCurrentFrame;function P(e){if(e){var t=e._owner,a=S(e.type,e._source,t?t.type:null);de.setExtraStackFrame(a)}else de.setExtraStackFrame(null)}function We(e,t,a,o,c){{var l=Function.call.bind(C);for(var i in e)if(l(e,i)){var s=void 0;try{if(typeof e[i]!=\"function\"){var h=Error((o||\"React class\")+\": \"+a+\" type `\"+i+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[i]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw h.name=\"Invariant Violation\",h}s=e[i](t,i,o,a,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(u){s=u}s&&!(s instanceof Error)&&(P(c),b(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",o||\"React class\",a,i,typeof s),P(null)),s instanceof Error&&!(s.message in le)&&(le[s.message]=!0,P(c),b(\"Failed %s type: %s\",a,s.message),P(null))}}}var Ge=Array.isArray;function Y(e){return Ge(e)}function Xe(e){{var t=typeof Symbol==\"function\"&&Symbol.toStringTag,a=t&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return a}}function He(e){try{return ue(e),!1}catch{return!0}}function ue(e){return\"\"+e}function me(e){if(He(e))return b(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Xe(e)),ue(e)}var U=g.ReactCurrentOwner,qe={key:!0,ref:!0,__self:!0,__source:!0},be,he,$;$={};function Ke(e){if(C.call(e,\"ref\")){var t=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(t&&t.isReactWarning)return!1}return e.ref!==void 0}function ze(e){if(C.call(e,\"key\")){var t=Object.getOwnPropertyDescriptor(e,\"key\").get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function Je(e,t){if(typeof e.ref==\"string\"&&U.current&&t&&U.current.stateNode!==t){var a=p(U.current.type);$[a]||(b('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(U.current.type),e.ref),$[a]=!0)}}function Ze(e,t){{var a=function(){be||(be=!0,b(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",t))};a.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:a,configurable:!0})}}function Qe(e,t){{var a=function(){he||(he=!0,b(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",t))};a.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:a,configurable:!0})}}var en=function(e,t,a,o,c,l,i){var s={$$typeof:n,type:e,key:t,ref:a,props:i,_owner:l};return s._store={},Object.defineProperty(s._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(s,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(s,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:c}),Object.freeze&&(Object.freeze(s.props),Object.freeze(s)),s};function nn(e,t,a,o,c){{var l,i={},s=null,h=null;a!==void 0&&(me(a),s=\"\"+a),ze(t)&&(me(t.key),s=\"\"+t.key),Ke(t)&&(h=t.ref,Je(t,c));for(l in t)C.call(t,l)&&!qe.hasOwnProperty(l)&&(i[l]=t[l]);if(e&&e.defaultProps){var u=e.defaultProps;for(l in u)i[l]===void 0&&(i[l]=u[l])}if(s||h){var m=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;s&&Ze(i,m),h&&Qe(i,m)}return en(e,s,h,c,o,U.current,i)}}var M=g.ReactCurrentOwner,fe=g.ReactDebugCurrentFrame;function v(e){if(e){var t=e._owner,a=S(e.type,e._source,t?t.type:null);fe.setExtraStackFrame(a)}else fe.setExtraStackFrame(null)}var W;W=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===n}function _e(){{if(M.current){var e=p(M.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function rn(e){{if(e!==void 0){var t=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),a=e.lineNumber;return`\n\nCheck your code at `+t+\":\"+a+\".\"}return\"\"}}var pe={};function tn(e){{var t=_e();if(!t){var a=typeof e==\"string\"?e:e.displayName||e.name;a&&(t=`\n\nCheck the top-level render call using <`+a+\">.\")}return t}}function Ne(e,t){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var a=tn(t);if(pe[a])return;pe[a]=!0;var o=\"\";e&&e._owner&&e._owner!==M.current&&(o=\" It was passed a child from \"+p(e._owner.type)+\".\"),v(e),b('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',a,o),v(null)}}function ke(e,t){{if(typeof e!=\"object\")return;if(Y(e))for(var a=0;a<e.length;a++){var o=e[a];G(o)&&Ne(o,t)}else if(G(e))e._store&&(e._store.validated=!0);else if(e){var c=we(e);if(typeof c==\"function\"&&c!==e.entries)for(var l=c.call(e),i;!(i=l.next()).done;)G(i.value)&&Ne(i.value,t)}}}function an(e){{var t=e.type;if(t==null||typeof t==\"string\")return;var a;if(typeof t==\"function\")a=t.propTypes;else if(typeof t==\"object\"&&(t.$$typeof===R||t.$$typeof===F))a=t.propTypes;else return;if(a){var o=p(t);We(a,e.props,\"prop\",o,e)}else if(t.PropTypes!==void 0&&!W){W=!0;var c=p(t);b(\"Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?\",c||\"Unknown\")}typeof t.getDefaultProps==\"function\"&&!t.getDefaultProps.isReactClassApproved&&b(\"getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.\")}}function on(e){{for(var t=Object.keys(e.props),a=0;a<t.length;a++){var o=t[a];if(o!==\"children\"&&o!==\"key\"){v(e),b(\"Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.\",o),v(null);break}}e.ref!==null&&(v(e),b(\"Invalid attribute `ref` supplied to `React.Fragment`.\"),v(null))}}function sn(e,t,a,o,c,l){{var i=Le(e);if(!i){var s=\"\";(e===void 0||typeof e==\"object\"&&e!==null&&Object.keys(e).length===0)&&(s+=\" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.\");var h=rn(c);h?s+=h:s+=_e();var u;e===null?u=\"null\":Y(e)?u=\"array\":e!==void 0&&e.$$typeof===n?(u=\"<\"+(p(e.type)||\"Unknown\")+\" />\",s=\" Did you accidentally export a JSX literal instead of a component?\"):u=typeof e,b(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",u,s)}var m=nn(e,t,a,c,l);if(m==null)return m;if(i){var f=t.children;if(f!==void 0)if(o)if(Y(f)){for(var E=0;E<f.length;E++)ke(f[E],e);Object.freeze&&Object.freeze(f)}else b(\"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\");else ke(f,e)}return e===x?on(m):an(m),m}}var cn=sn;H.Fragment=x,H.jsxDEV=cn})()});var Ue=X((En,je)=>{\"use strict\";je.exports=Ee()});var xn={};hn(xn,{default:()=>kn,frontmatter:()=>pn});var r=fn(Ue()),pn={title:\"envshare.dev\",description:\"EnvShare is a simple tool to share environment variables securely. It uses AES-GCM to encrypt your data before sending it to the server. The encryption key never leaves your browser.\",date:\"2023-01-16\",url:\"https://envshare.dev\",repository:\"chronark/envshare\",published:!0};function Re(d){let n=Object.assign({p:\"p\",strong:\"strong\",h2:\"h2\",a:\"a\",span:\"span\",ul:\"ul\",li:\"li\",img:\"img\",h3:\"h3\",code:\"code\",h4:\"h4\",div:\"div\",pre:\"pre\"},d.components);return(0,r.jsxDEV)(r.Fragment,{children:[(0,r.jsxDEV)(n.p,{children:[`EnvShare is a simple tool to share environment variables securely. It uses\n`,(0,r.jsxDEV)(n.strong,{children:\"AES-GCM\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:11,columnNumber:1},this),` to encrypt your data before sending it to the server. The encryption\nkey never leaves your browser.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"features\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#features\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Features\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Shareable Links:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:16,columnNumber:3},this),` Share your environment variables securely by sending a\nlink`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"End-to-End Encryption:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:18,columnNumber:3},this),` AES-GCM encryption is used to encrypt your data\nbefore sending it to the server`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Limit number of reads:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:20,columnNumber:3},this),\" Limit the number of times a link can be read\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[(0,r.jsxDEV)(n.strong,{children:\"Auto Expire:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:21,columnNumber:3},this),` Automatically expire links and delete data after a certain\ntime`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:21,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.img,{src:\"https://github.com/chronark/envshare/raw/main/img/envshare.png\",alt:\"\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:26,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:26,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"built-with\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#built-with\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Built with\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:28,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:(0,r.jsxDEV)(n.a,{href:\"https://nextjs.org\",children:\"Next.js\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:30,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:(0,r.jsxDEV)(n.a,{href:\"https://tailwindcss.com\",children:\"tailwindcss\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:31,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Deployed on \",(0,r.jsxDEV)(n.a,{href:\"https://vercel.com?utm_source=envshare\",children:\"Vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:32,columnNumber:15},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:32,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Data stored on \",(0,r.jsxDEV)(n.a,{href:\"https://upstash.com?utm_source=envshare\",children:\"Upstash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:33,columnNumber:18},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:33,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"deploy-your-own\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#deploy-your-own\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Deploy your own\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"Detailed instructions can be found \",(0,r.jsxDEV)(n.a,{href:\"https://envshare.dev/deploy\",children:\"here\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:37,columnNumber:36},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:37,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:`All you need is a Redis database on Upstash and a Vercel account. Click the\nbutton below to clone and deploy:`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:39,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.a,{href:\"https://vercel.com/new/clone?demo-title=EnvShare&demo-description=Simple%20Next.js%20%2B%20Upstash%20app%20to%20share%20environment%20variables%20securely%20using%20AES-GCM%20encryption.&demo-url=https%3A%2F%2Fenvshare.dev%2F&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5SaFBHXp5FBFJbsTzVqIJ3%2Ff0f8382369b7642fd8103debb9025c11%2Fenvshare.png&project-name=EnvShare&repository-name=envshare&repository-url=https%3A%2F%2Fgithub.com%2Fchronark%2Fenvshare&from=templates&integration-ids=oac_V3R1GIpkoJorr6fqyiwdhl17\",children:(0,r.jsxDEV)(n.img,{src:\"https://vercel.com/button\",alt:\"Deploy with Vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:42,columnNumber:2},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:42,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:42,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"configuration\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#configuration\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Configuration\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:46,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h3,{id:\"environment-variables\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#environment-variables\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Environment Variables\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:48,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[(0,r.jsxDEV)(n.code,{children:\"ENABLE_VERCEL_ANALYTICS\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:50,columnNumber:1},this),\" Any truthy value will enable Vercel Analytics. This is turned off by default\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:50,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"contributing\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#contributing\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Contributing\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:52,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"This repository uses \",(0,r.jsxDEV)(n.code,{children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:54,columnNumber:22},this),` to manage dependencies. Install it using\n`,(0,r.jsxDEV)(n.code,{children:\"npm install -g pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:55,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:54,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"Please run \",(0,r.jsxDEV)(n.code,{children:\"pnpm fmt\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:57,columnNumber:12},this),\" before committing to format the code.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:57,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h2,{id:\"docs\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#docs\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Docs\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:59,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"Docs in the README are temporary and will be moved to the website soon.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:61,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h3,{id:\"api\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#api\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"API\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:63,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h4,{id:\"store-a-secret\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#store-a-secret\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Store a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:65,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:(0,r.jsxDEV)(n.strong,{children:\"PLEASE NEVER EVER UPLOAD UNENCRYPTED SECRETS.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:67,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:67,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:[\"This endpoint is only meant to store \",(0,r.jsxDEV)(n.strong,{children:\"already encrypted\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:69,columnNumber:38},this),` secrets. The\nencrypted secrets are stored in plain text.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:69,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:'$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:72,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"You can add optional headers to configure the ttl and number of reads.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:76,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:'$ curl -XPOST -s https://envshare.dev/api/v1/secret -d \"already-encrypted-secret\" -H \"envshare-ttl: 3600\" -H \"envshare-reads: 10\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:78,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.ul,{children:[`\n`,(0,r.jsxDEV)(n.li,{children:[\"Omitting the \",(0,r.jsxDEV)(n.code,{children:\"envshare-ttl\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:82,columnNumber:16},this),` header will set a default of 30 days. Disable the\nttl by setting it to 0. (`,(0,r.jsxDEV)(n.code,{children:\"envshare-ttl: 0\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:83,columnNumber:28},this),\")\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.li,{children:[\"Omitting the \",(0,r.jsxDEV)(n.code,{children:\"envshare-reads\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:84,columnNumber:16},this),` header will simply disable it and allow reading\nfor an unlimited number of times.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:84,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"This endpoint returns a JSON response with the secret id:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:87,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"json\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"json\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"data\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"id\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:110},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"HdPbXgpvUvNk43oxSdK97u\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:148},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:218},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"ttl\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:111},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"86400\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:149},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:190},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"reads\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:113},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"2\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:151},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:188},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"expiresAt\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:117},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"2023-01-19T20:47:28.383Z\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:155},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:227},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:7,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"url\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:7,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:7,columnNumber:111},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"http://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:7,columnNumber:149},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:9,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:89,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.h4,{id:\"retrieve-a-secret\",children:[(0,r.jsxDEV)(n.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#retrieve-a-secret\",children:(0,r.jsxDEV)(n.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this),\"Retrieve a secret\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:101,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.p,{children:\"You need an id to retrieve a secret. The id is returned when you store a secret.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:103,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"sh-session\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#e1e4e8\"},children:\"$ curl -s https://envshare.dev/api/v1/secret/HdPbXgpvUvNk43oxSdK97u\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:105,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(n.pre,{\"data-language\":\"json\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(n.code,{\"data-language\":\"json\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"data\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"secret\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:114},this),(0,r.jsxDEV)(n.span,{style:{color:\"#9ECBFF\"},children:'\"Hello\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:152},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:205},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:[(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:'\"remainingReads\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:60},this),(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\": \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:122},this),(0,r.jsxDEV)(n.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:160},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(n.span,{className:\"line\",children:(0,r.jsxDEV)(n.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:6,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:109,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\",lineNumber:1,columnNumber:1},this)}function Nn(d={}){let{wrapper:n}=d.components||{};return n?(0,r.jsxDEV)(n,Object.assign({},d,{children:(0,r.jsxDEV)(Re,d,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-9f80b318-b24e-4507-94a3-cb5b48624568.mdx\"},this):Re(d)}var kn=Nn;return _n(xn);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;"
},
"_id": "projects/envshare.mdx",
"_raw": {
"sourceFilePath": "projects/envshare.mdx",
"sourceFileName": "envshare.mdx",
"sourceFileDir": "projects",
"contentType": "mdx",
"flattenedPath": "projects/envshare"
},
"type": "Project",
"path": "/projects/envshare",
"slug": "envshare"
},
"documentHash": "1679819564284",
"hasWarnings": false,
"documentTypeName": "Project"
},
"projects/planetfall.mdx": {
"document": {
"published": true,
"title": "planetfall.io",
"description": "I'm building a SAAS providing global latency monitoring for your APIs and websites from edge locations around the world. Have you ever wondered how fast your API is in any part of the world? Planetfall allows you to find out and monitor it continuously.",
"date": "2023-04-01T00:00:00.000Z",
"url": "https://planetfall.io",
"body": {
"raw": "\n\nPlanetfall is a SaaS platform that provides global latency monitoring and synthetic monitoring for APIs. With over 60 regions to monitor from, customers can gain insights into the true performance of their API by checking latency from around the world. \nPlanetfall offers custom timeouts, threshold notifications, and real-time alerts for potential performance issues. Additionally, customers can create custom status pages to share with their customers, which can display availability and latency for every region. Planetfall offers a free tier that includes 100k checks per month and scales as customers grow. Overall, Planetfall helps customers stay in control of their API's performance, improve communication with their customers, and build trust.",
"code": "var Component=(()=>{var sr=Object.create;var D=Object.defineProperty;var lr=Object.getOwnPropertyDescriptor;var fr=Object.getOwnPropertyNames;var cr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,l)=>()=>(l||s((l={exports:{}}).exports,l),l.exports),vr=(s,l)=>{for(var h in l)D(s,h,{get:l[h],enumerable:!0})},_e=(s,l,h,y)=>{if(l&&typeof l==\"object\"||typeof l==\"function\")for(let b of fr(l))!dr.call(s,b)&&b!==h&&D(s,b,{get:()=>l[b],enumerable:!(y=lr(l,b))||y.enumerable});return s};var pr=(s,l,h)=>(h=s!=null?sr(cr(s)):{},_e(l||!s||!s.__esModule?D(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(D({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var we=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),l=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),y=Symbol.for(\"react.fragment\"),b=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),H=Symbol.for(\"react.provider\"),K=Symbol.for(\"react.context\"),C=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),W=Symbol.for(\"react.suspense_list\"),O=Symbol.for(\"react.memo\"),Y=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function ke(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n<r;n++)t[n-1]=arguments[n];xe(\"error\",e,t)}}function xe(e,r,t){{var n=_.ReactDebugCurrentFrame,i=n.getStackAddendum();i!==\"\"&&(r+=\"%s\",t=t.concat([i]));var u=t.map(function(o){return String(o)});u.unshift(\"Warning: \"+r),Function.prototype.apply.call(console[e],console,u)}}var Ae=!1,De=!1,Fe=!1,Ie=!1,We=!1,Z;Z=Symbol.for(\"react.module.reference\");function Ye(e){return!!(typeof e==\"string\"||typeof e==\"function\"||e===y||e===X||We||e===b||e===I||e===W||Ie||e===Se||Ae||De||Fe||typeof e==\"object\"&&e!==null&&(e.$$typeof===Y||e.$$typeof===O||e.$$typeof===H||e.$$typeof===K||e.$$typeof===C||e.$$typeof===Z||e.getModuleId!==void 0))}function $e(e,r,t){var n=e.displayName;if(n)return n;var i=r.displayName||r.name||\"\";return i!==\"\"?t+\"(\"+i+\")\":t}function Q(e){return e.displayName||\"Context\"}function m(e){if(e==null)return null;if(typeof e.tag==\"number\"&&d(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"),typeof e==\"function\")return e.displayName||e.name||null;if(typeof e==\"string\")return e;switch(e){case y:return\"Fragment\";case h:return\"Portal\";case X:return\"Profiler\";case b:return\"StrictMode\";case I:return\"Suspense\";case W:return\"SuspenseList\"}if(typeof e==\"object\")switch(e.$$typeof){case K:var r=e;return Q(r)+\".Consumer\";case H:var t=e;return Q(t._context)+\".Provider\";case C:return $e(e,e.render,\"ForwardRef\");case O:var n=e.displayName||null;return n!==null?n:m(e.type)||\"Memo\";case Y:{var i=e,u=i._payload,o=i._init;try{return m(o(u))}catch{return null}}}return null}var E=Object.assign,w=0,ee,re,te,ne,ae,oe,ie;function ue(){}ue.__reactDisabledLog=!0;function Ne(){{if(w===0){ee=console.log,re=console.info,te=console.warn,ne=console.error,ae=console.group,oe=console.groupCollapsed,ie=console.groupEnd;var e={configurable:!0,enumerable:!0,value:ue,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}w++}}function Me(){{if(w--,w===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:E({},e,{value:ee}),info:E({},e,{value:re}),warn:E({},e,{value:te}),error:E({},e,{value:ne}),group:E({},e,{value:ae}),groupCollapsed:E({},e,{value:oe}),groupEnd:E({},e,{value:ie})})}w<0&&d(\"disabledDepth fell below zero. This is a bug in React. Please file an issue.\")}}var $=_.ReactCurrentDispatcher,N;function S(e,r,t){{if(N===void 0)try{throw Error()}catch(i){var n=i.stack.trim().match(/\\n( *(at )?)/);N=n&&n[1]||\"\"}return`\n`+N+e}}var M=!1,j;{var Ve=typeof WeakMap==\"function\"?WeakMap:Map;j=new Ve}function se(e,r){if(!e||M)return\"\";{var t=j.get(e);if(t!==void 0)return t}var n;M=!0;var i=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var u;u=$.current,$.current=null,Ne();try{if(r){var o=function(){throw Error()};if(Object.defineProperty(o.prototype,\"props\",{set:function(){throw Error()}}),typeof Reflect==\"object\"&&Reflect.construct){try{Reflect.construct(o,[])}catch(g){n=g}Reflect.construct(e,[],o)}else{try{o.call()}catch(g){n=g}e.call(o.prototype)}}else{try{throw Error()}catch(g){n=g}e()}}catch(g){if(g&&n&&typeof g.stack==\"string\"){for(var a=g.stack.split(`\n`),v=n.stack.split(`\n`),f=a.length-1,c=v.length-1;f>=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(\"<anonymous>\")&&(p=p.replace(\"<anonymous>\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(f>=1&&c>=0);break}}}finally{M=!1,$.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",Ee=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,Ee),Ee}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function k(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case W:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case C:return Ue(e.render);case O:return k(e.type,r,t);case Y:{var n=e,i=n._payload,u=n._init;try{return k(u(i),r,t)}catch{}}}return\"\"}var x=Object.prototype.hasOwnProperty,le={},fe=_.ReactDebugCurrentFrame;function A(e){if(e){var r=e._owner,t=k(e.type,e._source,r?r.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(x);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){a=f}a&&!(a instanceof Error)&&(A(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),A(null)),a instanceof Error&&!(a.message in le)&&(le[a.message]=!0,A(i),d(\"Failed %s type: %s\",t,a.message),A(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return ce(e),!1}catch{return!0}}function ce(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),ce(e)}var P=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function He(e){if(x.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function Ke(e){if(x.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&P.current&&r&&P.current.stateNode!==r){var t=m(P.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',m(P.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:l,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),Ke(r)&&(de(r.key),a=\"\"+r.key),He(r)&&(v=r.ref,Je(r,i));for(u in r)x.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var f=e.defaultProps;for(u in f)o[u]===void 0&&(o[u]=f[u])}if(a||v){var c=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,c),v&&Qe(o,c)}return er(e,a,v,i,n,P.current,o)}}var L=_.ReactCurrentOwner,he=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=k(e.type,e._source,r?r.type:null);he.setExtraStackFrame(t)}else he.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===l}function me(){{if(L.current){var e=m(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=me();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function be(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+m(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function ye(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t<e.length;t++){var n=e[t];G(n)&&be(n,r)}else if(G(e))e._store&&(e._store.validated=!0);else if(e){var i=ke(e);if(typeof i==\"function\"&&i!==e.entries)for(var u=i.call(e),o;!(o=u.next()).done;)G(o.value)&&be(o.value,r)}}}function ar(e){{var r=e.type;if(r==null||typeof r==\"string\")return;var t;if(typeof r==\"function\")t=r.propTypes;else if(typeof r==\"object\"&&(r.$$typeof===C||r.$$typeof===O))t=r.propTypes;else return;if(t){var n=m(r);Be(t,e.props,\"prop\",n,e)}else if(r.PropTypes!==void 0&&!B){B=!0;var i=m(r);d(\"Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?\",i||\"Unknown\")}typeof r.getDefaultProps==\"function\"&&!r.getDefaultProps.isReactClassApproved&&d(\"getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.\")}}function or(e){{for(var r=Object.keys(e.props),t=0;t<r.length;t++){var n=r[t];if(n!==\"children\"&&n!==\"key\"){R(e),d(\"Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.\",n),R(null);break}}e.ref!==null&&(R(e),d(\"Invalid attribute `ref` supplied to `React.Fragment`.\"),R(null))}}function ir(e,r,t,n,i,u){{var o=Ye(e);if(!o){var a=\"\";(e===void 0||typeof e==\"object\"&&e!==null&&Object.keys(e).length===0)&&(a+=\" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.\");var v=tr(i);v?a+=v:a+=me();var f;e===null?f=\"null\":V(e)?f=\"array\":e!==void 0&&e.$$typeof===l?(f=\"<\"+(m(e.type)||\"Unknown\")+\" />\",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<p.length;T++)ye(p[T],e);Object.freeze&&Object.freeze(p)}else d(\"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\");else ye(p,e)}return e===y?or(c):ar(c),c}}var ur=ir;z.Fragment=y,z.jsxDEV=ur})()});var Ce=q((Tr,Pe)=>{\"use strict\";Pe.exports=we()});var yr={};vr(yr,{default:()=>br,frontmatter:()=>mr});var F=pr(Ce()),mr={title:\"planetfall.io\",description:\"I'm building a SAAS providing global latency monitoring for your APIs and websites from edge locations around the world. Have you ever wondered how fast your API is in any part of the world? Planetfall allows you to find out and monitor it continuously.\",date:\"2023-04-01\",url:\"https://planetfall.io\",published:!0};function Oe(s){let l=Object.assign({p:\"p\"},s.components);return(0,F.jsxDEV)(l.p,{children:`Planetfall is a SaaS platform that provides global latency monitoring and synthetic monitoring for APIs. With over 60 regions to monitor from, customers can gain insights into the true performance of their API by checking latency from around the world.\nPlanetfall offers custom timeouts, threshold notifications, and real-time alerts for potential performance issues. Additionally, customers can create custom status pages to share with their customers, which can display availability and latency for every region. Planetfall offers a free tier that includes 100k checks per month and scales as customers grow. Overall, Planetfall helps customers stay in control of their API's performance, improve communication with their customers, and build trust.`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e9522400-f185-40ad-8df0-2d91f99fdbba.mdx\",lineNumber:11,columnNumber:1},this)}function gr(s={}){let{wrapper:l}=s.components||{};return l?(0,F.jsxDEV)(l,Object.assign({},s,{children:(0,F.jsxDEV)(Oe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e9522400-f185-40ad-8df0-2d91f99fdbba.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e9522400-f185-40ad-8df0-2d91f99fdbba.mdx\"},this):Oe(s)}var br=gr;return hr(yr);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;"
},
"_id": "projects/planetfall.mdx",
"_raw": {
"sourceFilePath": "projects/planetfall.mdx",
"sourceFileName": "planetfall.mdx",
"sourceFileDir": "projects",
"contentType": "mdx",
"flattenedPath": "projects/planetfall"
},
"type": "Project",
"path": "/projects/planetfall",
"slug": "planetfall"
},
"documentHash": "1679826085197",
"hasWarnings": false,
"documentTypeName": "Project"
},
"projects/qstash.mdx": {
"document": {
"published": true,
"title": "QStash",
"description": "QStash is a fully managed serverless queue and messaging service designed for the serverless era.",
"date": "2022-07-18T00:00:00.000Z",
"url": "https://upstash.com/qstash",
"body": {
"raw": "\nQStash is an HTTP based messaging and scheduling solution for the serverless and edge runtimes.\n\n- 100% serverless, no stateful connections required. Messages are pushed to your API.\n- At-least-once delivery guaranteed to any public API\n- Pubsub via topics\n- Delay message delivery\n- Message deduplication\n- Scheduling via CRON\n\n\nFormally, QStash is a message queue and task scheduler designed for serverless runtimes. Informally, QStash is a glue for your serverless functions.\n\nThere was a perception serverless was only good for simple tasks. Not anymore. People build powerful systems with serverless stack. Powerful systems are composed of multiple components. Communication among those components is a big engineering problem. There are already great solutions for this problem. But we think existing solutions do not fit in serverless space. Either they are too complex or not designed to work with stateless runtimes. So we want a solution which (is):\n\n- Works anywhere including serverless and edge.\n- Messaging as a service with no backend for users to run.\n- Lightweight, easy to understand, requires nothing to learn.\n- Price scales to zero.\n\nLet's talk about a real world example. We have an e-commerce app and we want to send an informational email after each purchase. We have a service (an API route) for new purchases (newPurchase) and a second service for sending emails and notifications (sendEmail). We can call the sendEmail service from the newPurchase service. But what if the call fails? Should we wait for the response and retry? What if too many calls congest the sendEmail service and the service does not respond on time? You need to handle all these cases in your newPurchase service. Moreover, when you change the contract of sendEmail service; you have to update your newPurchase service too.\n\nIf you use QStash in the above example, you simply send a request to QStash from the newPurchase service. QStash will queue the request and call the sendEmail service. If the service does not respond, QStash will retry with a backoff strategy. The latency of sendEmail service will not affect the newPurchase service, because it will not wait for a response from the sendEmail service. QStash decouples the newPurchase and sendEmail services. You can update both services independently as long as you keep the message format compatible.\n\nWith QStash, you can add delays to the requests. Send an email 3 days after the shipment to remind the customer to add a review. You can also schedule tasks. You can send the requests with a CRON expression, so it will be run repetitively.\n\n\nTo learn more about QStash, visit [upstash.com/qstash](upstash.com/qstash).",
"code": "var Component=(()=>{var ur=Object.create;var F=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var lr=Object.getOwnPropertyNames;var fr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var B=(l,t)=>()=>(t||l((t={exports:{}}).exports,t),t.exports),hr=(l,t)=>{for(var v in t)F(l,v,{get:t[v],enumerable:!0})},Ee=(l,t,v,y)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let g of lr(t))!dr.call(l,g)&&g!==v&&F(l,g,{get:()=>t[g],enumerable:!(y=cr(t,g))||y.enumerable});return l};var mr=(l,t,v)=>(v=l!=null?ur(fr(l)):{},Ee(t||!l||!l.__esModule?F(v,\"default\",{value:l,enumerable:!0}):v,l)),br=l=>Ee(F({},\"__esModule\",{value:!0}),l);var we=B((Er,ke)=>{ke.exports=React});var xe=B(z=>{\"use strict\";(function(){\"use strict\";var l=we(),t=Symbol.for(\"react.element\"),v=Symbol.for(\"react.portal\"),y=Symbol.for(\"react.fragment\"),g=Symbol.for(\"react.strict_mode\"),G=Symbol.for(\"react.profiler\"),X=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),T=Symbol.for(\"react.forward_ref\"),U=Symbol.for(\"react.suspense\"),A=Symbol.for(\"react.suspense_list\"),j=Symbol.for(\"react.memo\"),I=Symbol.for(\"react.lazy\"),je=Symbol.for(\"react.offscreen\"),K=Symbol.iterator,Pe=\"@@iterator\";function Se(e){if(e===null||typeof e!=\"object\")return null;var r=K&&e[K]||e[Pe];return typeof r==\"function\"?r:null}var k=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function h(e){{for(var r=arguments.length,n=new Array(r>1?r-1:0),a=1;a<r;a++)n[a-1]=arguments[a];Ce(\"error\",e,n)}}function Ce(e,r,n){{var a=k.ReactDebugCurrentFrame,s=a.getStackAddendum();s!==\"\"&&(r+=\"%s\",n=n.concat([s]));var u=n.map(function(i){return String(i)});u.unshift(\"Warning: \"+r),Function.prototype.apply.call(console[e],console,u)}}var Oe=!1,De=!1,Fe=!1,Ue=!1,Ae=!1,J;J=Symbol.for(\"react.module.reference\");function Ie(e){return!!(typeof e==\"string\"||typeof e==\"function\"||e===y||e===G||Ae||e===g||e===U||e===A||Ue||e===je||Oe||De||Fe||typeof e==\"object\"&&e!==null&&(e.$$typeof===I||e.$$typeof===j||e.$$typeof===X||e.$$typeof===H||e.$$typeof===T||e.$$typeof===J||e.getModuleId!==void 0))}function We(e,r,n){var a=e.displayName;if(a)return a;var s=r.displayName||r.name||\"\";return s!==\"\"?n+\"(\"+s+\")\":n}function Z(e){return e.displayName||\"Context\"}function p(e){if(e==null)return null;if(typeof e.tag==\"number\"&&h(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"),typeof e==\"function\")return e.displayName||e.name||null;if(typeof e==\"string\")return e;switch(e){case y:return\"Fragment\";case v:return\"Portal\";case G:return\"Profiler\";case g:return\"StrictMode\";case U:return\"Suspense\";case A:return\"SuspenseList\"}if(typeof e==\"object\")switch(e.$$typeof){case H:var r=e;return Z(r)+\".Consumer\";case X:var n=e;return Z(n._context)+\".Provider\";case T:return We(e,e.render,\"ForwardRef\");case j:var a=e.displayName||null;return a!==null?a:p(e.type)||\"Memo\";case I:{var s=e,u=s._payload,i=s._init;try{return p(i(u))}catch{return null}}}return null}var E=Object.assign,R=0,ee,re,ne,ae,te,oe,ie;function se(){}se.__reactDisabledLog=!0;function Ye(){{if(R===0){ee=console.log,re=console.info,ne=console.warn,ae=console.error,te=console.group,oe=console.groupCollapsed,ie=console.groupEnd;var e={configurable:!0,enumerable:!0,value:se,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}R++}}function Me(){{if(R--,R===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:E({},e,{value:ee}),info:E({},e,{value:re}),warn:E({},e,{value:ne}),error:E({},e,{value:ae}),group:E({},e,{value:te}),groupCollapsed:E({},e,{value:oe}),groupEnd:E({},e,{value:ie})})}R<0&&h(\"disabledDepth fell below zero. This is a bug in React. Please file an issue.\")}}var W=k.ReactCurrentDispatcher,Y;function P(e,r,n){{if(Y===void 0)try{throw Error()}catch(s){var a=s.stack.trim().match(/\\n( *(at )?)/);Y=a&&a[1]||\"\"}return`\n`+Y+e}}var M=!1,S;{var $e=typeof WeakMap==\"function\"?WeakMap:Map;S=new $e}function ue(e,r){if(!e||M)return\"\";{var n=S.get(e);if(n!==void 0)return n}var a;M=!0;var s=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var u;u=W.current,W.current=null,Ye();try{if(r){var i=function(){throw Error()};if(Object.defineProperty(i.prototype,\"props\",{set:function(){throw Error()}}),typeof Reflect==\"object\"&&Reflect.construct){try{Reflect.construct(i,[])}catch(_){a=_}Reflect.construct(e,[],i)}else{try{i.call()}catch(_){a=_}e.call(i.prototype)}}else{try{throw Error()}catch(_){a=_}e()}}catch(_){if(_&&a&&typeof _.stack==\"string\"){for(var o=_.stack.split(`\n`),m=a.stack.split(`\n`),f=o.length-1,d=m.length-1;f>=1&&d>=0&&o[f]!==m[d];)d--;for(;f>=1&&d>=0;f--,d--)if(o[f]!==m[d]){if(f!==1||d!==1)do if(f--,d--,d<0||o[f]!==m[d]){var b=`\n`+o[f].replace(\" at new \",\" at \");return e.displayName&&b.includes(\"<anonymous>\")&&(b=b.replace(\"<anonymous>\",e.displayName)),typeof e==\"function\"&&S.set(e,b),b}while(f>=1&&d>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=s}var x=e?e.displayName||e.name:\"\",ye=x?P(x):\"\";return typeof e==\"function\"&&S.set(e,ye),ye}function Ve(e,r,n){return ue(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function C(e,r,n){if(e==null)return\"\";if(typeof e==\"function\")return ue(e,Le(e));if(typeof e==\"string\")return P(e);switch(e){case U:return P(\"Suspense\");case A:return P(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case T:return Ve(e.render);case j:return C(e.type,r,n);case I:{var a=e,s=a._payload,u=a._init;try{return C(u(s),r,n)}catch{}}}return\"\"}var O=Object.prototype.hasOwnProperty,ce={},le=k.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,n=C(e.type,e._source,r?r.type:null);le.setExtraStackFrame(n)}else le.setExtraStackFrame(null)}function qe(e,r,n,a,s){{var u=Function.call.bind(O);for(var i in e)if(u(e,i)){var o=void 0;try{if(typeof e[i]!=\"function\"){var m=Error((a||\"React class\")+\": \"+n+\" type `\"+i+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[i]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw m.name=\"Invariant Violation\",m}o=e[i](r,i,a,n,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){o=f}o&&!(o instanceof Error)&&(D(s),h(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",a||\"React class\",n,i,typeof o),D(null)),o instanceof Error&&!(o.message in ce)&&(ce[o.message]=!0,D(s),h(\"Failed %s type: %s\",n,o.message),D(null))}}}var Qe=Array.isArray;function $(e){return Qe(e)}function Be(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,n=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return n}}function ze(e){try{return fe(e),!1}catch{return!0}}function fe(e){return\"\"+e}function de(e){if(ze(e))return h(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Be(e)),fe(e)}var N=k.ReactCurrentOwner,Ge={key:!0,ref:!0,__self:!0,__source:!0},he,me,V;V={};function Xe(e){if(O.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(O.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Ke(e,r){if(typeof e.ref==\"string\"&&N.current&&r&&N.current.stateNode!==r){var n=p(N.current.type);V[n]||(h('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(N.current.type),e.ref),V[n]=!0)}}function Je(e,r){{var n=function(){he||(he=!0,h(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};n.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:n,configurable:!0})}}function Ze(e,r){{var n=function(){me||(me=!0,h(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};n.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:n,configurable:!0})}}var er=function(e,r,n,a,s,u,i){var o={$$typeof:t,type:e,key:r,ref:n,props:i,_owner:u};return o._store={},Object.defineProperty(o._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(o,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:a}),Object.defineProperty(o,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:s}),Object.freeze&&(Object.freeze(o.props),Object.freeze(o)),o};function rr(e,r,n,a,s){{var u,i={},o=null,m=null;n!==void 0&&(de(n),o=\"\"+n),He(r)&&(de(r.key),o=\"\"+r.key),Xe(r)&&(m=r.ref,Ke(r,s));for(u in r)O.call(r,u)&&!Ge.hasOwnProperty(u)&&(i[u]=r[u]);if(e&&e.defaultProps){var f=e.defaultProps;for(u in f)i[u]===void 0&&(i[u]=f[u])}if(o||m){var d=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;o&&Je(i,d),m&&Ze(i,d)}return er(e,o,m,s,a,N.current,i)}}var L=k.ReactCurrentOwner,be=k.ReactDebugCurrentFrame;function w(e){if(e){var r=e._owner,n=C(e.type,e._source,r?r.type:null);be.setExtraStackFrame(n)}else be.setExtraStackFrame(null)}var q;q=!1;function Q(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===t}function ve(){{if(L.current){var e=p(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function nr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),n=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+n+\".\"}return\"\"}}var pe={};function ar(e){{var r=ve();if(!r){var n=typeof e==\"string\"?e:e.displayName||e.name;n&&(r=`\n\nCheck the top-level render call using <`+n+\">.\")}return r}}function _e(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var n=ar(r);if(pe[n])return;pe[n]=!0;var a=\"\";e&&e._owner&&e._owner!==L.current&&(a=\" It was passed a child from \"+p(e._owner.type)+\".\"),w(e),h('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',n,a),w(null)}}function ge(e,r){{if(typeof e!=\"object\")return;if($(e))for(var n=0;n<e.length;n++){var a=e[n];Q(a)&&_e(a,r)}else if(Q(e))e._store&&(e._store.validated=!0);else if(e){var s=Se(e);if(typeof s==\"function\"&&s!==e.entries)for(var u=s.call(e),i;!(i=u.next()).done;)Q(i.value)&&_e(i.value,r)}}}function tr(e){{var r=e.type;if(r==null||typeof r==\"string\")return;var n;if(typeof r==\"function\")n=r.propTypes;else if(typeof r==\"object\"&&(r.$$typeof===T||r.$$typeof===j))n=r.propTypes;else return;if(n){var a=p(r);qe(n,e.props,\"prop\",a,e)}else if(r.PropTypes!==void 0&&!q){q=!0;var s=p(r);h(\"Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?\",s||\"Unknown\")}typeof r.getDefaultProps==\"function\"&&!r.getDefaultProps.isReactClassApproved&&h(\"getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.\")}}function or(e){{for(var r=Object.keys(e.props),n=0;n<r.length;n++){var a=r[n];if(a!==\"children\"&&a!==\"key\"){w(e),h(\"Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.\",a),w(null);break}}e.ref!==null&&(w(e),h(\"Invalid attribute `ref` supplied to `React.Fragment`.\"),w(null))}}function ir(e,r,n,a,s,u){{var i=Ie(e);if(!i){var o=\"\";(e===void 0||typeof e==\"object\"&&e!==null&&Object.keys(e).length===0)&&(o+=\" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.\");var m=nr(s);m?o+=m:o+=ve();var f;e===null?f=\"null\":$(e)?f=\"array\":e!==void 0&&e.$$typeof===t?(f=\"<\"+(p(e.type)||\"Unknown\")+\" />\",o=\" Did you accidentally export a JSX literal instead of a component?\"):f=typeof e,h(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",f,o)}var d=rr(e,r,n,s,u);if(d==null)return d;if(i){var b=r.children;if(b!==void 0)if(a)if($(b)){for(var x=0;x<b.length;x++)ge(b[x],e);Object.freeze&&Object.freeze(b)}else h(\"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\");else ge(b,e)}return e===y?or(d):tr(d),d}}var sr=ir;z.Fragment=y,z.jsxDEV=sr})()});var Ne=B((wr,Re)=>{\"use strict\";Re.exports=xe()});var gr={};hr(gr,{default:()=>_r,frontmatter:()=>vr});var c=mr(Ne()),vr={title:\"QStash\",description:\"QStash is a fully managed serverless queue and messaging service designed for the serverless era.\",date:\"2022-07-18\",url:\"https://upstash.com/qstash\",published:!0};function Te(l){let t=Object.assign({p:\"p\",ul:\"ul\",li:\"li\",a:\"a\"},l.components);return(0,c.jsxDEV)(c.Fragment,{children:[(0,c.jsxDEV)(t.p,{children:\"QStash is an HTTP based messaging and scheduling solution for the serverless and edge runtimes.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.ul,{children:[`\n`,(0,c.jsxDEV)(t.li,{children:\"100% serverless, no stateful connections required. Messages are pushed to your API.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"At-least-once delivery guaranteed to any public API\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Pubsub via topics\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Delay message delivery\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Message deduplication\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Scheduling via CRON\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:17,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.p,{children:\"Formally, QStash is a message queue and task scheduler designed for serverless runtimes. Informally, QStash is a glue for your serverless functions.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.p,{children:\"There was a perception serverless was only good for simple tasks. Not anymore. People build powerful systems with serverless stack. Powerful systems are composed of multiple components. Communication among those components is a big engineering problem. There are already great solutions for this problem. But we think existing solutions do not fit in serverless space. Either they are too complex or not designed to work with stateless runtimes. So we want a solution which (is):\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:22,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.ul,{children:[`\n`,(0,c.jsxDEV)(t.li,{children:\"Works anywhere including serverless and edge.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:24,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Messaging as a service with no backend for users to run.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:25,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Lightweight, easy to understand, requires nothing to learn.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:26,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.li,{children:\"Price scales to zero.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:27,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:24,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.p,{children:\"Let's talk about a real world example. We have an e-commerce app and we want to send an informational email after each purchase. We have a service (an API route) for new purchases (newPurchase) and a second service for sending emails and notifications (sendEmail). We can call the sendEmail service from the newPurchase service. But what if the call fails? Should we wait for the response and retry? What if too many calls congest the sendEmail service and the service does not respond on time? You need to handle all these cases in your newPurchase service. Moreover, when you change the contract of sendEmail service; you have to update your newPurchase service too.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:29,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.p,{children:\"If you use QStash in the above example, you simply send a request to QStash from the newPurchase service. QStash will queue the request and call the sendEmail service. If the service does not respond, QStash will retry with a backoff strategy. The latency of sendEmail service will not affect the newPurchase service, because it will not wait for a response from the sendEmail service. QStash decouples the newPurchase and sendEmail services. You can update both services independently as long as you keep the message format compatible.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.p,{children:\"With QStash, you can add delays to the requests. Send an email 3 days after the shipment to remind the customer to add a review. You can also schedule tasks. You can send the requests with a CRON expression, so it will be run repetitively.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:33,columnNumber:1},this),`\n`,(0,c.jsxDEV)(t.p,{children:[\"To learn more about QStash, visit \",(0,c.jsxDEV)(t.a,{href:\"upstash.com/qstash\",children:\"upstash.com/qstash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:36,columnNumber:35},this),\".\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:36,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\",lineNumber:1,columnNumber:1},this)}function pr(l={}){let{wrapper:t}=l.components||{};return t?(0,c.jsxDEV)(t,Object.assign({},l,{children:(0,c.jsxDEV)(Te,l,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-174140f5-c063-4967-845a-79db15aa866f.mdx\"},this):Te(l)}var _r=pr;return br(gr);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;"
},
"_id": "projects/qstash.mdx",
"_raw": {
"sourceFilePath": "projects/qstash.mdx",
"sourceFileName": "qstash.mdx",
"sourceFileDir": "projects",
"contentType": "mdx",
"flattenedPath": "projects/qstash"
},
"type": "Project",
"path": "/projects/qstash",
"slug": "qstash"
},
"documentHash": "1679819571089",
"hasWarnings": false,
"documentTypeName": "Project"
},
"projects/terraform-provider-vercel.mdx": {
"document": {
"published": true,
"title": "Vercel Terraform Provider",
"description": "A Terraform provider for Vercel. It has been deprecated it when Vercel rolled out their official provider.",
"date": "2021-03-16T00:00:00.000Z",
"url": "https://registry.terraform.io/providers/chronark/vercel/latest",
"repository": "chronark/terraform-provider-vercel",
"body": {
"raw": "\n\n\nBack in the day when Vercel didn't have an official Terraform provider, I wrote one. \nI needed to manage my Vercel projects and especially sync environment variables from different cloud providers.\nTerraform was great to provision some postgres databases on digital ocean, but there was no way to sync the credentials with Vercel.\n\n```hcl\nterraform {\n required_providers {\n vercel = {\n source = \"registry.terraform.io/chronark/vercel\"\n version = \">=0.10.3\"\n }\n }\n}\n\nprovider \"vercel\" {\n token = \"<YOUR_TOKEN>\"\n}\n\nresource \"vercel_project\" \"my_project\" {\n name = \"project-via-terraform\"\n git_repository {\n type = \"github\"\n repo = \"chronark/terraform-provider-vercel\"\n }\n}\n```\n\nIt was a fun project and I learned a lot about Terraform and Vercel's API. \nIt gave me the opportunity to contribute to the Terraform ecosystem and my appreciation for the work that the Terraform team does is immense.\n\nThere have been quite a few individuals and teams that have used this provider and I am happy that it has been useful to you.\n\nNow that Vercel have stepped in, I have decided to [deprecate](https://twitter.com/chronark_/status/1517759708983177218) this one on April 23rd 2022. \n\nPlease use the [official provider](https://registry.terraform.io/providers/vercel/vercel/latest) instead.",
"code": "var Component=(()=>{var ir=Object.create;var S=Object.defineProperty;var lr=Object.getOwnPropertyDescriptor;var ur=Object.getOwnPropertyNames;var dr=Object.getPrototypeOf,mr=Object.prototype.hasOwnProperty;var G=(u,r)=>()=>(r||u((r={exports:{}}).exports,r),r.exports),hr=(u,r)=>{for(var _ in r)S(u,_,{get:r[_],enumerable:!0})},ve=(u,r,_,k)=>{if(r&&typeof r==\"object\"||typeof r==\"function\")for(let y of ur(r))!mr.call(u,y)&&y!==_&&S(u,y,{get:()=>r[y],enumerable:!(k=lr(r,y))||k.enumerable});return u};var fr=(u,r,_)=>(_=u!=null?ir(dr(u)):{},ve(r||!u||!u.__esModule?S(_,\"default\",{value:u,enumerable:!0}):_,u)),br=u=>ve(S({},\"__esModule\",{value:!0}),u);var ge=G((vr,xe)=>{xe.exports=React});var Ee=G(z=>{\"use strict\";(function(){\"use strict\";var u=ge(),r=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),k=Symbol.for(\"react.fragment\"),y=Symbol.for(\"react.strict_mode\"),K=Symbol.for(\"react.profiler\"),X=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),R=Symbol.for(\"react.forward_ref\"),A=Symbol.for(\"react.suspense\"),D=Symbol.for(\"react.suspense_list\"),F=Symbol.for(\"react.memo\"),B=Symbol.for(\"react.lazy\"),Fe=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Te=\"@@iterator\";function we(e){if(e===null||typeof e!=\"object\")return null;var a=J&&e[J]||e[Te];return typeof a==\"function\"?a:null}var x=u.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function h(e){{for(var a=arguments.length,t=new Array(a>1?a-1:0),c=1;c<a;c++)t[c-1]=arguments[c];Ce(\"error\",e,t)}}function Ce(e,a,t){{var c=x.ReactDebugCurrentFrame,i=c.getStackAddendum();i!==\"\"&&(a+=\"%s\",t=t.concat([i]));var l=t.map(function(s){return String(s)});l.unshift(\"Warning: \"+a),Function.prototype.apply.call(console[e],console,l)}}var Oe=!1,Pe=!1,Se=!1,Ae=!1,De=!1,Z;Z=Symbol.for(\"react.module.reference\");function Be(e){return!!(typeof e==\"string\"||typeof e==\"function\"||e===k||e===K||De||e===y||e===A||e===D||Ae||e===Fe||Oe||Pe||Se||typeof e==\"object\"&&e!==null&&(e.$$typeof===B||e.$$typeof===F||e.$$typeof===X||e.$$typeof===H||e.$$typeof===R||e.$$typeof===Z||e.getModuleId!==void 0))}function Ie(e,a,t){var c=e.displayName;if(c)return c;var i=a.displayName||a.name||\"\";return i!==\"\"?t+\"(\"+i+\")\":t}function Q(e){return e.displayName||\"Context\"}function p(e){if(e==null)return null;if(typeof e.tag==\"number\"&&h(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"),typeof e==\"function\")return e.displayName||e.name||null;if(typeof e==\"string\")return e;switch(e){case k:return\"Fragment\";case _:return\"Portal\";case K:return\"Profiler\";case y:return\"StrictMode\";case A:return\"Suspense\";case D:return\"SuspenseList\"}if(typeof e==\"object\")switch(e.$$typeof){case H:var a=e;return Q(a)+\".Consumer\";case X:var t=e;return Q(t._context)+\".Provider\";case R:return Ie(e,e.render,\"ForwardRef\");case F:var c=e.displayName||null;return c!==null?c:p(e.type)||\"Memo\";case B:{var i=e,l=i._payload,s=i._init;try{return p(s(l))}catch{return null}}}return null}var v=Object.assign,j=0,ee,re,ne,ae,te,ce,oe;function se(){}se.__reactDisabledLog=!0;function Ve(){{if(j===0){ee=console.log,re=console.info,ne=console.warn,ae=console.error,te=console.group,ce=console.groupCollapsed,oe=console.groupEnd;var e={configurable:!0,enumerable:!0,value:se,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}j++}}function Ye(){{if(j--,j===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:v({},e,{value:ee}),info:v({},e,{value:re}),warn:v({},e,{value:ne}),error:v({},e,{value:ae}),group:v({},e,{value:te}),groupCollapsed:v({},e,{value:ce}),groupEnd:v({},e,{value:oe})})}j<0&&h(\"disabledDepth fell below zero. This is a bug in React. Please file an issue.\")}}var I=x.ReactCurrentDispatcher,V;function T(e,a,t){{if(V===void 0)try{throw Error()}catch(i){var c=i.stack.trim().match(/\\n( *(at )?)/);V=c&&c[1]||\"\"}return`\n`+V+e}}var Y=!1,w;{var $e=typeof WeakMap==\"function\"?WeakMap:Map;w=new $e}function ie(e,a){if(!e||Y)return\"\";{var t=w.get(e);if(t!==void 0)return t}var c;Y=!0;var i=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var l;l=I.current,I.current=null,Ve();try{if(a){var s=function(){throw Error()};if(Object.defineProperty(s.prototype,\"props\",{set:function(){throw Error()}}),typeof Reflect==\"object\"&&Reflect.construct){try{Reflect.construct(s,[])}catch(N){c=N}Reflect.construct(e,[],s)}else{try{s.call()}catch(N){c=N}e.call(s.prototype)}}else{try{throw Error()}catch(N){c=N}e()}}catch(N){if(N&&c&&typeof N.stack==\"string\"){for(var o=N.stack.split(`\n`),f=c.stack.split(`\n`),d=o.length-1,m=f.length-1;d>=1&&m>=0&&o[d]!==f[m];)m--;for(;d>=1&&m>=0;d--,m--)if(o[d]!==f[m]){if(d!==1||m!==1)do if(d--,m--,m<0||o[d]!==f[m]){var b=`\n`+o[d].replace(\" at new \",\" at \");return e.displayName&&b.includes(\"<anonymous>\")&&(b=b.replace(\"<anonymous>\",e.displayName)),typeof e==\"function\"&&w.set(e,b),b}while(d>=1&&m>=0);break}}}finally{Y=!1,I.current=l,Ye(),Error.prepareStackTrace=i}var E=e?e.displayName||e.name:\"\",ke=E?T(E):\"\";return typeof e==\"function\"&&w.set(e,ke),ke}function We(e,a,t){return ie(e,!1)}function Me(e){var a=e.prototype;return!!(a&&a.isReactComponent)}function C(e,a,t){if(e==null)return\"\";if(typeof e==\"function\")return ie(e,Me(e));if(typeof e==\"string\")return T(e);switch(e){case A:return T(\"Suspense\");case D:return T(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case R:return We(e.render);case F:return C(e.type,a,t);case B:{var c=e,i=c._payload,l=c._init;try{return C(l(i),a,t)}catch{}}}return\"\"}var O=Object.prototype.hasOwnProperty,le={},ue=x.ReactDebugCurrentFrame;function P(e){if(e){var a=e._owner,t=C(e.type,e._source,a?a.type:null);ue.setExtraStackFrame(t)}else ue.setExtraStackFrame(null)}function Le(e,a,t,c,i){{var l=Function.call.bind(O);for(var s in e)if(l(e,s)){var o=void 0;try{if(typeof e[s]!=\"function\"){var f=Error((c||\"React class\")+\": \"+t+\" type `\"+s+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[s]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw f.name=\"Invariant Violation\",f}o=e[s](a,s,c,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(d){o=d}o&&!(o instanceof Error)&&(P(i),h(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",c||\"React class\",t,s,typeof o),P(null)),o instanceof Error&&!(o.message in le)&&(le[o.message]=!0,P(i),h(\"Failed %s type: %s\",t,o.message),P(null))}}}var qe=Array.isArray;function $(e){return qe(e)}function Ge(e){{var a=typeof Symbol==\"function\"&&Symbol.toStringTag,t=a&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return de(e),!1}catch{return!0}}function de(e){return\"\"+e}function me(e){if(ze(e))return h(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Ge(e)),de(e)}var U=x.ReactCurrentOwner,Ke={key:!0,ref:!0,__self:!0,__source:!0},he,fe,W;W={};function Xe(e){if(O.call(e,\"ref\")){var a=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(a&&a.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(O.call(e,\"key\")){var a=Object.getOwnPropertyDescriptor(e,\"key\").get;if(a&&a.isReactWarning)return!1}return e.key!==void 0}function Je(e,a){if(typeof e.ref==\"string\"&&U.current&&a&&U.current.stateNode!==a){var t=p(U.current.type);W[t]||(h('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(U.current.type),e.ref),W[t]=!0)}}function Ze(e,a){{var t=function(){he||(he=!0,h(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,a){{var t=function(){fe||(fe=!0,h(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,a,t,c,i,l,s){var o={$$typeof:r,type:e,key:a,ref:t,props:s,_owner:l};return o._store={},Object.defineProperty(o._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(o,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:c}),Object.defineProperty(o,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(o.props),Object.freeze(o)),o};function rr(e,a,t,c,i){{var l,s={},o=null,f=null;t!==void 0&&(me(t),o=\"\"+t),He(a)&&(me(a.key),o=\"\"+a.key),Xe(a)&&(f=a.ref,Je(a,i));for(l in a)O.call(a,l)&&!Ke.hasOwnProperty(l)&&(s[l]=a[l]);if(e&&e.defaultProps){var d=e.defaultProps;for(l in d)s[l]===void 0&&(s[l]=d[l])}if(o||f){var m=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;o&&Ze(s,m),f&&Qe(s,m)}return er(e,o,f,i,c,U.current,s)}}var M=x.ReactCurrentOwner,be=x.ReactDebugCurrentFrame;function g(e){if(e){var a=e._owner,t=C(e.type,e._source,a?a.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var L;L=!1;function q(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===r}function _e(){{if(M.current){var e=p(M.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function nr(e){{if(e!==void 0){var a=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+a+\":\"+t+\".\"}return\"\"}}var pe={};function ar(e){{var a=_e();if(!a){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(a=`\n\nCheck the top-level render call using <`+t+\">.\")}return a}}function Ne(e,a){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=ar(a);if(pe[t])return;pe[t]=!0;var c=\"\";e&&e._owner&&e._owner!==M.current&&(c=\" It was passed a child from \"+p(e._owner.type)+\".\"),g(e),h('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,c),g(null)}}function ye(e,a){{if(typeof e!=\"object\")return;if($(e))for(var t=0;t<e.length;t++){var c=e[t];q(c)&&Ne(c,a)}else if(q(e))e._store&&(e._store.validated=!0);else if(e){var i=we(e);if(typeof i==\"function\"&&i!==e.entries)for(var l=i.call(e),s;!(s=l.next()).done;)q(s.value)&&Ne(s.value,a)}}}function tr(e){{var a=e.type;if(a==null||typeof a==\"string\")return;var t;if(typeof a==\"function\")t=a.propTypes;else if(typeof a==\"object\"&&(a.$$typeof===R||a.$$typeof===F))t=a.propTypes;else return;if(t){var c=p(a);Le(t,e.props,\"prop\",c,e)}else if(a.PropTypes!==void 0&&!L){L=!0;var i=p(a);h(\"Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?\",i||\"Unknown\")}typeof a.getDefaultProps==\"function\"&&!a.getDefaultProps.isReactClassApproved&&h(\"getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.\")}}function cr(e){{for(var a=Object.keys(e.props),t=0;t<a.length;t++){var c=a[t];if(c!==\"children\"&&c!==\"key\"){g(e),h(\"Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.\",c),g(null);break}}e.ref!==null&&(g(e),h(\"Invalid attribute `ref` supplied to `React.Fragment`.\"),g(null))}}function or(e,a,t,c,i,l){{var s=Be(e);if(!s){var o=\"\";(e===void 0||typeof e==\"object\"&&e!==null&&Object.keys(e).length===0)&&(o+=\" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.\");var f=nr(i);f?o+=f:o+=_e();var d;e===null?d=\"null\":$(e)?d=\"array\":e!==void 0&&e.$$typeof===r?(d=\"<\"+(p(e.type)||\"Unknown\")+\" />\",o=\" Did you accidentally export a JSX literal instead of a component?\"):d=typeof e,h(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",d,o)}var m=rr(e,a,t,i,l);if(m==null)return m;if(s){var b=a.children;if(b!==void 0)if(c)if($(b)){for(var E=0;E<b.length;E++)ye(b[E],e);Object.freeze&&Object.freeze(b)}else h(\"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\");else ye(b,e)}return e===k?cr(m):tr(m),m}}var sr=or;z.Fragment=k,z.jsxDEV=sr})()});var Ue=G((gr,je)=>{\"use strict\";je.exports=Ee()});var yr={};hr(yr,{default:()=>Nr,frontmatter:()=>_r});var n=fr(Ue()),_r={title:\"Vercel Terraform Provider\",description:\"A Terraform provider for Vercel. It has been deprecated it when Vercel rolled out their official provider.\",date:\"2021-03-16\",repository:\"chronark/terraform-provider-vercel\",url:\"https://registry.terraform.io/providers/chronark/vercel/latest\",published:!0};function Re(u){let r=Object.assign({p:\"p\",div:\"div\",pre:\"pre\",code:\"code\",span:\"span\",a:\"a\"},u.components);return(0,n.jsxDEV)(n.Fragment,{children:[(0,n.jsxDEV)(r.p,{children:`Back in the day when Vercel didn't have an official Terraform provider, I wrote one.\nI needed to manage my Vercel projects and especially sync environment variables from different cloud providers.\nTerraform was great to provision some postgres databases on digital ocean, but there was no way to sync the credentials with Vercel.`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(r.pre,{\"data-language\":\"hcl\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(r.code,{\"data-language\":\"hcl\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"terraform\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:1,columnNumber:149},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"required_providers\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:2,columnNumber:58},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:2,columnNumber:112},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" vercel\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:3,columnNumber:66},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:3,columnNumber:103},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:3,columnNumber:140},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"{\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:3,columnNumber:177},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" source \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:4,columnNumber:70},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:4,columnNumber:107},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"registry.terraform.io/chronark/vercel\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:4,columnNumber:144},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" version \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:5,columnNumber:70},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:5,columnNumber:107},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\">=0.10.3\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:5,columnNumber:144},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"provider\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:10,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:10,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:'\"vercel\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:10,columnNumber:101},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:10,columnNumber:155},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" token\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:11,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:11,columnNumber:63},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:11,columnNumber:100},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:11,columnNumber:137},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"<YOUR_TOKEN>\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:11,columnNumber:174},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:12,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"resource\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:'\"vercel_project\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:101},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:163},this),(0,n.jsxDEV)(r.span,{style:{color:\"#79B8FF\"},children:'\"my_project\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:200},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:258},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" name\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:15,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:15,columnNumber:62},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:15,columnNumber:99},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:15,columnNumber:136},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"project-via-terraform\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:15,columnNumber:173},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:16,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#B392F0\"},children:\"git_repository\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:16,columnNumber:58},this),(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:16,columnNumber:108},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" type\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:17,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:17,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:17,columnNumber:101},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:17,columnNumber:138},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"github\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:17,columnNumber:175},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:[(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" repo\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:18,columnNumber:20},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:18,columnNumber:64},this),(0,n.jsxDEV)(r.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:18,columnNumber:101},this),(0,n.jsxDEV)(r.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:18,columnNumber:138},this),(0,n.jsxDEV)(r.span,{style:{color:\"#9ECBFF\"},children:'\"chronark/terraform-provider-vercel\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:18,columnNumber:175},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:19,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.span,{className:\"line\",children:(0,n.jsxDEV)(r.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:20,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:20,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:`It was a fun project and I learned a lot about Terraform and Vercel's API.\nIt gave me the opportunity to contribute to the Terraform ecosystem and my appreciation for the work that the Terraform team does is immense.`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:39,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:\"There have been quite a few individuals and teams that have used this provider and I am happy that it has been useful to you.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:42,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[\"Now that Vercel have stepped in, I have decided to \",(0,n.jsxDEV)(r.a,{href:\"https://twitter.com/chronark_/status/1517759708983177218\",children:\"deprecate\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:44,columnNumber:52},this),\" this one on April 23rd 2022.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:44,columnNumber:1},this),`\n`,(0,n.jsxDEV)(r.p,{children:[\"Please use the \",(0,n.jsxDEV)(r.a,{href:\"https://registry.terraform.io/providers/vercel/vercel/latest\",children:\"official provider\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:46,columnNumber:16},this),\" instead.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:46,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\",lineNumber:1,columnNumber:1},this)}function pr(u={}){let{wrapper:r}=u.components||{};return r?(0,n.jsxDEV)(r,Object.assign({},u,{children:(0,n.jsxDEV)(Re,u,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-43707aa1-1582-45e9-9dc6-bac749aca4c9.mdx\"},this):Re(u)}var Nr=pr;return br(yr);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;"
},
"_id": "projects/terraform-provider-vercel.mdx",
"_raw": {
"sourceFilePath": "projects/terraform-provider-vercel.mdx",
"sourceFileName": "terraform-provider-vercel.mdx",
"sourceFileDir": "projects",
"contentType": "mdx",
"flattenedPath": "projects/terraform-provider-vercel"
},
"type": "Project",
"path": "/projects/terraform-provider-vercel",
"slug": "terraform-provider-vercel"
},
"documentHash": "1679819574612",
"hasWarnings": false,
"documentTypeName": "Project"
},
"projects/upstash-auth-analytics.mdx": {
"document": {
"title": "Upstash Auth Analytics",
"description": "A library to record and analyse Auth.js user behaviour",
"url": "https://console.upstash.com/ratelimit",
"repository": "upstash/auth-analytics",
"body": {
"raw": "\nTODO:",
"code": "var Component=(()=>{var sr=Object.create;var A=Object.defineProperty;var fr=Object.getOwnPropertyDescriptor;var cr=Object.getOwnPropertyNames;var lr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,f)=>()=>(f||s((f={exports:{}}).exports,f),f.exports),vr=(s,f)=>{for(var h in f)A(s,h,{get:f[h],enumerable:!0})},_e=(s,f,h,E)=>{if(f&&typeof f==\"object\"||typeof f==\"function\")for(let m of cr(f))!dr.call(s,m)&&m!==h&&A(s,m,{get:()=>f[m],enumerable:!(E=fr(f,m))||E.enumerable});return s};var pr=(s,f,h)=>(h=s!=null?sr(lr(s)):{},_e(f||!s||!s.__esModule?A(h,\"default\",{value:s,enumerable:!0}):h,s)),hr=s=>_e(A({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),f=Symbol.for(\"react.element\"),h=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n<r;n++)t[n-1]=arguments[n];ke(\"error\",e,t)}}function ke(e,r,t){{var n=_.ReactDebugCurrentFrame,i=n.getStackAddendum();i!==\"\"&&(r+=\"%s\",t=t.concat([i]));var u=t.map(function(o){return String(o)});u.unshift(\"Warning: \"+r),Function.prototype.apply.call(console[e],console,u)}}var De=!1,Ae=!1,Fe=!1,Ie=!1,Ye=!1,Z;Z=Symbol.for(\"react.module.reference\");function $e(e){return!!(typeof e==\"string\"||typeof e==\"function\"||e===E||e===X||Ye||e===m||e===I||e===Y||Ie||e===Se||De||Ae||Fe||typeof e==\"object\"&&e!==null&&(e.$$typeof===$||e.$$typeof===P||e.$$typeof===K||e.$$typeof===H||e.$$typeof===w||e.$$typeof===Z||e.getModuleId!==void 0))}function We(e,r,t){var n=e.displayName;if(n)return n;var i=r.displayName||r.name||\"\";return i!==\"\"?t+\"(\"+i+\")\":t}function Q(e){return e.displayName||\"Context\"}function b(e){if(e==null)return null;if(typeof e.tag==\"number\"&&d(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"),typeof e==\"function\")return e.displayName||e.name||null;if(typeof e==\"string\")return e;switch(e){case E:return\"Fragment\";case h:return\"Portal\";case X:return\"Profiler\";case m:return\"StrictMode\";case I:return\"Suspense\";case Y:return\"SuspenseList\"}if(typeof e==\"object\")switch(e.$$typeof){case H:var r=e;return Q(r)+\".Consumer\";case K:var t=e;return Q(t._context)+\".Provider\";case w:return We(e,e.render,\"ForwardRef\");case P:var n=e.displayName||null;return n!==null?n:b(e.type)||\"Memo\";case $:{var i=e,u=i._payload,o=i._init;try{return b(o(u))}catch{return null}}}return null}var y=Object.assign,C=0,ee,re,te,ne,ae,oe,ie;function ue(){}ue.__reactDisabledLog=!0;function Ne(){{if(C===0){ee=console.log,re=console.info,te=console.warn,ne=console.error,ae=console.group,oe=console.groupCollapsed,ie=console.groupEnd;var e={configurable:!0,enumerable:!0,value:ue,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}C++}}function Me(){{if(C--,C===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:y({},e,{value:ee}),info:y({},e,{value:re}),warn:y({},e,{value:te}),error:y({},e,{value:ne}),group:y({},e,{value:ae}),groupCollapsed:y({},e,{value:oe}),groupEnd:y({},e,{value:ie})})}C<0&&d(\"disabledDepth fell below zero. This is a bug in React. Please file an issue.\")}}var W=_.ReactCurrentDispatcher,N;function S(e,r,t){{if(N===void 0)try{throw Error()}catch(i){var n=i.stack.trim().match(/\\n( *(at )?)/);N=n&&n[1]||\"\"}return`\n`+N+e}}var M=!1,j;{var Ve=typeof WeakMap==\"function\"?WeakMap:Map;j=new Ve}function se(e,r){if(!e||M)return\"\";{var t=j.get(e);if(t!==void 0)return t}var n;M=!0;var i=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var u;u=W.current,W.current=null,Ne();try{if(r){var o=function(){throw Error()};if(Object.defineProperty(o.prototype,\"props\",{set:function(){throw Error()}}),typeof Reflect==\"object\"&&Reflect.construct){try{Reflect.construct(o,[])}catch(g){n=g}Reflect.construct(e,[],o)}else{try{o.call()}catch(g){n=g}e.call(o.prototype)}}else{try{throw Error()}catch(g){n=g}e()}}catch(g){if(g&&n&&typeof g.stack==\"string\"){for(var a=g.stack.split(`\n`),v=n.stack.split(`\n`),c=a.length-1,l=v.length-1;c>=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(\"<anonymous>\")&&(p=p.replace(\"<anonymous>\",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<e.length;t++){var n=e[t];G(n)&&me(n,r)}else if(G(e))e._store&&(e._store.validated=!0);else if(e){var i=xe(e);if(typeof i==\"function\"&&i!==e.entries)for(var u=i.call(e),o;!(o=u.next()).done;)G(o.value)&&me(o.value,r)}}}function ar(e){{var r=e.type;if(r==null||typeof r==\"string\")return;var t;if(typeof r==\"function\")t=r.propTypes;else if(typeof r==\"object\"&&(r.$$typeof===w||r.$$typeof===P))t=r.propTypes;else return;if(t){var n=b(r);Be(t,e.props,\"prop\",n,e)}else if(r.PropTypes!==void 0&&!B){B=!0;var i=b(r);d(\"Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?\",i||\"Unknown\")}typeof r.getDefaultProps==\"function\"&&!r.getDefaultProps.isReactClassApproved&&d(\"getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.\")}}function or(e){{for(var r=Object.keys(e.props),t=0;t<r.length;t++){var n=r[t];if(n!==\"children\"&&n!==\"key\"){R(e),d(\"Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.\",n),R(null);break}}e.ref!==null&&(R(e),d(\"Invalid attribute `ref` supplied to `React.Fragment`.\"),R(null))}}function ir(e,r,t,n,i,u){{var o=$e(e);if(!o){var a=\"\";(e===void 0||typeof e==\"object\"&&e!==null&&Object.keys(e).length===0)&&(a+=\" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.\");var v=tr(i);v?a+=v:a+=be();var c;e===null?c=\"null\":V(e)?c=\"array\":e!==void 0&&e.$$typeof===f?(c=\"<\"+(b(e.type)||\"Unknown\")+\" />\",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<p.length;T++)Ee(p[T],e);Object.freeze&&Object.freeze(p)}else d(\"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\");else Ee(p,e)}return e===E?or(l):ar(l),l}}var ur=ir;z.Fragment=E,z.jsxDEV=ur})()});var we=q((Tr,Oe)=>{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>br});var F=pr(we()),br={title:\"Upstash Auth Analytics\",description:\"A library to record and analyse Auth.js user behaviour\",url:\"https://console.upstash.com/ratelimit\",repository:\"upstash/auth-analytics\"};function Pe(s){let f=Object.assign({p:\"p\"},s.components);return(0,F.jsxDEV)(f.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e491d153-3318-4404-b9cc-ddf66fe9f45f.mdx\",lineNumber:8,columnNumber:1},this)}function gr(s={}){let{wrapper:f}=s.components||{};return f?(0,F.jsxDEV)(f,Object.assign({},s,{children:(0,F.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e491d153-3318-4404-b9cc-ddf66fe9f45f.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-e491d153-3318-4404-b9cc-ddf66fe9f45f.mdx\"},this):Pe(s)}var mr=gr;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;"
},
"_id": "projects/upstash-auth-analytics.mdx",
"_raw": {
"sourceFilePath": "projects/upstash-auth-analytics.mdx",
"sourceFileName": "upstash-auth-analytics.mdx",
"sourceFileDir": "projects",
"contentType": "mdx",
"flattenedPath": "projects/upstash-auth-analytics"
},
"type": "Project",
"path": "/projects/upstash-auth-analytics",
"slug": "upstash-auth-analytics"
},
"documentHash": "1679820070900",
"hasWarnings": false,
"documentTypeName": "Project"
},
"projects/upstash-cli.mdx": {
"document": {
"published": true,
"title": "@upstash/cli",
"description": "A CLI to provision and manage Upstash resources, including Redis and Kafka databases.",
"date": "2022-05-16T00:00:00.000Z",
"url": "https://upstash.com/cli",
"repository": "upstash/cli",
"body": {
"raw": "\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 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=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\"),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<r;n++)t[n-1]=arguments[n];ke(\"error\",e,t)}}function ke(e,r,t){{var n=_.ReactDebugCurrentFrame,i=n.getStackAddendum();i!==\"\"&&(r+=\"%s\",t=t.concat([i]));var u=t.map(function(o){return String(o)});u.unshift(\"Warning: \"+r),Function.prototype.apply.call(console[e],console,u)}}var De=!1,Fe=!1,Ae=!1,Ie=!1,Ye=!1,Z;Z=Symbol.for(\"react.module.reference\");function $e(e){return!!(typeof e==\"string\"||typeof e==\"function\"||e===E||e===K||Ye||e===m||e===I||e===Y||Ie||e===Se||De||Fe||Ae||typeof e==\"object\"&&e!==null&&(e.$$typeof===$||e.$$typeof===P||e.$$typeof===X||e.$$typeof===H||e.$$typeof===w||e.$$typeof===Z||e.getModuleId!==void 0))}function We(e,r,t){var n=e.displayName;if(n)return n;var i=r.displayName||r.name||\"\";return i!==\"\"?t+\"(\"+i+\")\":t}function Q(e){return e.displayName||\"Context\"}function b(e){if(e==null)return null;if(typeof e.tag==\"number\"&&d(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"),typeof e==\"function\")return e.displayName||e.name||null;if(typeof e==\"string\")return e;switch(e){case E:return\"Fragment\";case h:return\"Portal\";case K:return\"Profiler\";case m:return\"StrictMode\";case I:return\"Suspense\";case Y:return\"SuspenseList\"}if(typeof e==\"object\")switch(e.$$typeof){case H:var r=e;return Q(r)+\".Consumer\";case X:var t=e;return Q(t._context)+\".Provider\";case w:return We(e,e.render,\"ForwardRef\");case P:var n=e.displayName||null;return n!==null?n:b(e.type)||\"Memo\";case $:{var i=e,u=i._payload,o=i._init;try{return b(o(u))}catch{return null}}}return null}var y=Object.assign,C=0,ee,re,te,ne,ae,oe,ie;function ue(){}ue.__reactDisabledLog=!0;function Ne(){{if(C===0){ee=console.log,re=console.info,te=console.warn,ne=console.error,ae=console.group,oe=console.groupCollapsed,ie=console.groupEnd;var e={configurable:!0,enumerable:!0,value:ue,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}C++}}function Me(){{if(C--,C===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:y({},e,{value:ee}),info:y({},e,{value:re}),warn:y({},e,{value:te}),error:y({},e,{value:ne}),group:y({},e,{value:ae}),groupCollapsed:y({},e,{value:oe}),groupEnd:y({},e,{value:ie})})}C<0&&d(\"disabledDepth fell below zero. This is a bug in React. Please file an issue.\")}}var W=_.ReactCurrentDispatcher,N;function S(e,r,t){{if(N===void 0)try{throw Error()}catch(i){var n=i.stack.trim().match(/\\n( *(at )?)/);N=n&&n[1]||\"\"}return`\n`+N+e}}var M=!1,j;{var Ve=typeof WeakMap==\"function\"?WeakMap:Map;j=new Ve}function se(e,r){if(!e||M)return\"\";{var t=j.get(e);if(t!==void 0)return t}var n;M=!0;var i=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var u;u=W.current,W.current=null,Ne();try{if(r){var o=function(){throw Error()};if(Object.defineProperty(o.prototype,\"props\",{set:function(){throw Error()}}),typeof Reflect==\"object\"&&Reflect.construct){try{Reflect.construct(o,[])}catch(g){n=g}Reflect.construct(e,[],o)}else{try{o.call()}catch(g){n=g}e.call(o.prototype)}}else{try{throw Error()}catch(g){n=g}e()}}catch(g){if(g&&n&&typeof g.stack==\"string\"){for(var a=g.stack.split(`\n`),v=n.stack.split(`\n`),c=a.length-1,l=v.length-1;c>=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(\"<anonymous>\")&&(p=p.replace(\"<anonymous>\",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,Ke={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Xe(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=b(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',b(O.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof: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)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&&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<e.length;t++){var n=e[t];G(n)&&me(n,r)}else if(G(e))e._store&&(e._store.validated=!0);else if(e){var i=xe(e);if(typeof i==\"function\"&&i!==e.entries)for(var u=i.call(e),o;!(o=u.next()).done;)G(o.value)&&me(o.value,r)}}}function ar(e){{var r=e.type;if(r==null||typeof r==\"string\")return;var t;if(typeof r==\"function\")t=r.propTypes;else if(typeof r==\"object\"&&(r.$$typeof===w||r.$$typeof===P))t=r.propTypes;else return;if(t){var n=b(r);Be(t,e.props,\"prop\",n,e)}else if(r.PropTypes!==void 0&&!B){B=!0;var i=b(r);d(\"Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?\",i||\"Unknown\")}typeof r.getDefaultProps==\"function\"&&!r.getDefaultProps.isReactClassApproved&&d(\"getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.\")}}function or(e){{for(var r=Object.keys(e.props),t=0;t<r.length;t++){var n=r[t];if(n!==\"children\"&&n!==\"key\"){R(e),d(\"Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.\",n),R(null);break}}e.ref!==null&&(R(e),d(\"Invalid attribute `ref` supplied to `React.Fragment`.\"),R(null))}}function ir(e,r,t,n,i,u){{var o=$e(e);if(!o){var a=\"\";(e===void 0||typeof e==\"object\"&&e!==null&&Object.keys(e).length===0)&&(a+=\" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.\");var v=tr(i);v?a+=v:a+=be();var c;e===null?c=\"null\":V(e)?c=\"array\":e!==void 0&&e.$$typeof===f?(c=\"<\"+(b(e.type)||\"Unknown\")+\" />\",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<p.length;T++)Ee(p[T],e);Object.freeze&&Object.freeze(p)}else d(\"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\");else Ee(p,e)}return e===E?or(l):ar(l),l}}var ur=ir;z.Fragment=E,z.jsxDEV=ur})()});var we=q((Tr,Oe)=>{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>br});var A=pr(we()),br={title:\"@upstash/cli\",description:\"A CLI to provision and manage Upstash resources, including Redis and Kafka databases.\",date:\"2022-05-16\",url:\"https://upstash.com/cli\",repository:\"upstash/cli\",published:!0};function Pe(s){let 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-4eb0fa00-eee7-4578-99c3-55a7c326fffe.mdx\",lineNumber:11,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-4eb0fa00-eee7-4578-99c3-55a7c326fffe.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-4eb0fa00-eee7-4578-99c3-55a7c326fffe.mdx\"},this):Pe(s)}var mr=gr;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;"
},
"_id": "projects/upstash-cli.mdx",
"_raw": {
"sourceFilePath": "projects/upstash-cli.mdx",
"sourceFileName": "upstash-cli.mdx",
"sourceFileDir": "projects",
"contentType": "mdx",
"flattenedPath": "projects/upstash-cli"
},
"type": "Project",
"path": "/projects/upstash-cli",
"slug": "upstash-cli"
},
"documentHash": "1679819580897",
"hasWarnings": false,
"documentTypeName": "Project"
},
"projects/upstash-core-analytics.mdx": {
"document": {
"published": true,
"title": "Upstash Core Analytics",
"description": "Low level utilities to build analytics tools on top of Redis.",
"date": "2023-02-13T00:00:00.000Z",
"url": "https://console.upstash.com/ratelimit",
"repository": "upstash/core-analytics",
"body": {
"raw": "\nTODO:",
"code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var lr=Object.getOwnPropertyDescriptor;var cr=Object.getOwnPropertyNames;var fr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,l)=>()=>(l||s((l={exports:{}}).exports,l),l.exports),vr=(s,l)=>{for(var 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<r;n++)t[n-1]=arguments[n];ke(\"error\",e,t)}}function ke(e,r,t){{var n=_.ReactDebugCurrentFrame,i=n.getStackAddendum();i!==\"\"&&(r+=\"%s\",t=t.concat([i]));var u=t.map(function(o){return String(o)});u.unshift(\"Warning: \"+r),Function.prototype.apply.call(console[e],console,u)}}var De=!1,Fe=!1,Ae=!1,Ie=!1,Ye=!1,Z;Z=Symbol.for(\"react.module.reference\");function $e(e){return!!(typeof e==\"string\"||typeof e==\"function\"||e===E||e===X||Ye||e===m||e===I||e===Y||Ie||e===Se||De||Fe||Ae||typeof e==\"object\"&&e!==null&&(e.$$typeof===$||e.$$typeof===P||e.$$typeof===K||e.$$typeof===H||e.$$typeof===w||e.$$typeof===Z||e.getModuleId!==void 0))}function We(e,r,t){var n=e.displayName;if(n)return n;var i=r.displayName||r.name||\"\";return i!==\"\"?t+\"(\"+i+\")\":t}function Q(e){return e.displayName||\"Context\"}function h(e){if(e==null)return null;if(typeof e.tag==\"number\"&&d(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"),typeof e==\"function\")return e.displayName||e.name||null;if(typeof e==\"string\")return e;switch(e){case E:return\"Fragment\";case b:return\"Portal\";case X:return\"Profiler\";case m:return\"StrictMode\";case I:return\"Suspense\";case Y:return\"SuspenseList\"}if(typeof e==\"object\")switch(e.$$typeof){case H:var r=e;return Q(r)+\".Consumer\";case K:var t=e;return Q(t._context)+\".Provider\";case w:return We(e,e.render,\"ForwardRef\");case P:var n=e.displayName||null;return n!==null?n:h(e.type)||\"Memo\";case $:{var i=e,u=i._payload,o=i._init;try{return h(o(u))}catch{return null}}}return null}var y=Object.assign,C=0,ee,re,te,ne,ae,oe,ie;function ue(){}ue.__reactDisabledLog=!0;function Ne(){{if(C===0){ee=console.log,re=console.info,te=console.warn,ne=console.error,ae=console.group,oe=console.groupCollapsed,ie=console.groupEnd;var e={configurable:!0,enumerable:!0,value:ue,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}C++}}function Me(){{if(C--,C===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:y({},e,{value:ee}),info:y({},e,{value:re}),warn:y({},e,{value:te}),error:y({},e,{value:ne}),group:y({},e,{value:ae}),groupCollapsed:y({},e,{value:oe}),groupEnd:y({},e,{value:ie})})}C<0&&d(\"disabledDepth fell below zero. This is a bug in React. Please file an issue.\")}}var W=_.ReactCurrentDispatcher,N;function S(e,r,t){{if(N===void 0)try{throw Error()}catch(i){var n=i.stack.trim().match(/\\n( *(at )?)/);N=n&&n[1]||\"\"}return`\n`+N+e}}var M=!1,j;{var Ve=typeof WeakMap==\"function\"?WeakMap:Map;j=new Ve}function se(e,r){if(!e||M)return\"\";{var t=j.get(e);if(t!==void 0)return t}var n;M=!0;var i=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var u;u=W.current,W.current=null,Ne();try{if(r){var o=function(){throw Error()};if(Object.defineProperty(o.prototype,\"props\",{set:function(){throw Error()}}),typeof Reflect==\"object\"&&Reflect.construct){try{Reflect.construct(o,[])}catch(g){n=g}Reflect.construct(e,[],o)}else{try{o.call()}catch(g){n=g}e.call(o.prototype)}}else{try{throw Error()}catch(g){n=g}e()}}catch(g){if(g&&n&&typeof g.stack==\"string\"){for(var a=g.stack.split(`\n`),v=n.stack.split(`\n`),c=a.length-1,f=v.length-1;c>=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(\"<anonymous>\")&&(p=p.replace(\"<anonymous>\",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<e.length;t++){var n=e[t];G(n)&&me(n,r)}else if(G(e))e._store&&(e._store.validated=!0);else if(e){var i=xe(e);if(typeof i==\"function\"&&i!==e.entries)for(var u=i.call(e),o;!(o=u.next()).done;)G(o.value)&&me(o.value,r)}}}function ar(e){{var r=e.type;if(r==null||typeof r==\"string\")return;var t;if(typeof r==\"function\")t=r.propTypes;else if(typeof r==\"object\"&&(r.$$typeof===w||r.$$typeof===P))t=r.propTypes;else return;if(t){var n=h(r);Be(t,e.props,\"prop\",n,e)}else if(r.PropTypes!==void 0&&!B){B=!0;var i=h(r);d(\"Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?\",i||\"Unknown\")}typeof r.getDefaultProps==\"function\"&&!r.getDefaultProps.isReactClassApproved&&d(\"getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.\")}}function or(e){{for(var r=Object.keys(e.props),t=0;t<r.length;t++){var n=r[t];if(n!==\"children\"&&n!==\"key\"){R(e),d(\"Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.\",n),R(null);break}}e.ref!==null&&(R(e),d(\"Invalid attribute `ref` supplied to `React.Fragment`.\"),R(null))}}function ir(e,r,t,n,i,u){{var o=$e(e);if(!o){var a=\"\";(e===void 0||typeof e==\"object\"&&e!==null&&Object.keys(e).length===0)&&(a+=\" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.\");var v=tr(i);v?a+=v:a+=he();var c;e===null?c=\"null\":V(e)?c=\"array\":e!==void 0&&e.$$typeof===l?(c=\"<\"+(h(e.type)||\"Unknown\")+\" />\",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<p.length;T++)Ee(p[T],e);Object.freeze&&Object.freeze(p)}else d(\"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\");else Ee(p,e)}return e===E?or(f):ar(f),f}}var ur=ir;z.Fragment=E,z.jsxDEV=ur})()});var we=q((Tr,Oe)=>{\"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\",published:!0};function Pe(s){let l=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(l.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-19540f58-fb17-4699-b4c6-0cb9420afdb1.mdx\",lineNumber:11,columnNumber:1},this)}function gr(s={}){let{wrapper:l}=s.components||{};return l?(0,A.jsxDEV)(l,Object.assign({},s,{children:(0,A.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-19540f58-fb17-4699-b4c6-0cb9420afdb1.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-19540f58-fb17-4699-b4c6-0cb9420afdb1.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": "1679819583922",
"hasWarnings": false,
"documentTypeName": "Project"
},
"projects/upstash-edge-flags.mdx": {
"document": {
"published": true,
"title": "@upstash/edge-flags",
"description": "Featues flags for your edge functions.",
"date": "2022-12-12T00:00:00.000Z",
"url": "https://upstash.com/edge-flags",
"repository": "upstash/edge-flags",
"body": {
"raw": "\nTODO:",
"code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var fr=Object.getOwnPropertyDescriptor;var cr=Object.getOwnPropertyNames;var lr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,f)=>()=>(f||s((f={exports:{}}).exports,f),f.exports),vr=(s,f)=>{for(var 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<r;n++)t[n-1]=arguments[n];ke(\"error\",e,t)}}function ke(e,r,t){{var n=_.ReactDebugCurrentFrame,i=n.getStackAddendum();i!==\"\"&&(r+=\"%s\",t=t.concat([i]));var u=t.map(function(o){return String(o)});u.unshift(\"Warning: \"+r),Function.prototype.apply.call(console[e],console,u)}}var De=!1,Fe=!1,Ae=!1,Ie=!1,Ye=!1,Z;Z=Symbol.for(\"react.module.reference\");function $e(e){return!!(typeof e==\"string\"||typeof e==\"function\"||e===E||e===X||Ye||e===m||e===I||e===Y||Ie||e===Se||De||Fe||Ae||typeof e==\"object\"&&e!==null&&(e.$$typeof===$||e.$$typeof===P||e.$$typeof===K||e.$$typeof===H||e.$$typeof===w||e.$$typeof===Z||e.getModuleId!==void 0))}function We(e,r,t){var n=e.displayName;if(n)return n;var i=r.displayName||r.name||\"\";return i!==\"\"?t+\"(\"+i+\")\":t}function Q(e){return e.displayName||\"Context\"}function g(e){if(e==null)return null;if(typeof e.tag==\"number\"&&d(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"),typeof e==\"function\")return e.displayName||e.name||null;if(typeof e==\"string\")return e;switch(e){case E:return\"Fragment\";case b:return\"Portal\";case X:return\"Profiler\";case m:return\"StrictMode\";case I:return\"Suspense\";case Y:return\"SuspenseList\"}if(typeof e==\"object\")switch(e.$$typeof){case H:var r=e;return Q(r)+\".Consumer\";case K:var t=e;return Q(t._context)+\".Provider\";case w:return We(e,e.render,\"ForwardRef\");case P:var n=e.displayName||null;return n!==null?n:g(e.type)||\"Memo\";case $:{var i=e,u=i._payload,o=i._init;try{return g(o(u))}catch{return null}}}return null}var y=Object.assign,C=0,ee,re,te,ne,ae,oe,ie;function ue(){}ue.__reactDisabledLog=!0;function Ne(){{if(C===0){ee=console.log,re=console.info,te=console.warn,ne=console.error,ae=console.group,oe=console.groupCollapsed,ie=console.groupEnd;var e={configurable:!0,enumerable:!0,value:ue,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}C++}}function Me(){{if(C--,C===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:y({},e,{value:ee}),info:y({},e,{value:re}),warn:y({},e,{value:te}),error:y({},e,{value:ne}),group:y({},e,{value:ae}),groupCollapsed:y({},e,{value:oe}),groupEnd:y({},e,{value:ie})})}C<0&&d(\"disabledDepth fell below zero. This is a bug in React. Please file an issue.\")}}var W=_.ReactCurrentDispatcher,N;function S(e,r,t){{if(N===void 0)try{throw Error()}catch(i){var n=i.stack.trim().match(/\\n( *(at )?)/);N=n&&n[1]||\"\"}return`\n`+N+e}}var M=!1,j;{var Ve=typeof WeakMap==\"function\"?WeakMap:Map;j=new Ve}function se(e,r){if(!e||M)return\"\";{var t=j.get(e);if(t!==void 0)return t}var n;M=!0;var i=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var u;u=W.current,W.current=null,Ne();try{if(r){var o=function(){throw Error()};if(Object.defineProperty(o.prototype,\"props\",{set:function(){throw Error()}}),typeof Reflect==\"object\"&&Reflect.construct){try{Reflect.construct(o,[])}catch(h){n=h}Reflect.construct(e,[],o)}else{try{o.call()}catch(h){n=h}e.call(o.prototype)}}else{try{throw Error()}catch(h){n=h}e()}}catch(h){if(h&&n&&typeof h.stack==\"string\"){for(var a=h.stack.split(`\n`),v=n.stack.split(`\n`),c=a.length-1,l=v.length-1;c>=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(\"<anonymous>\")&&(p=p.replace(\"<anonymous>\",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=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 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 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 he={};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(he[t])return;he[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<e.length;t++){var n=e[t];G(n)&&me(n,r)}else if(G(e))e._store&&(e._store.validated=!0);else if(e){var i=xe(e);if(typeof i==\"function\"&&i!==e.entries)for(var u=i.call(e),o;!(o=u.next()).done;)G(o.value)&&me(o.value,r)}}}function ar(e){{var r=e.type;if(r==null||typeof r==\"string\")return;var t;if(typeof r==\"function\")t=r.propTypes;else if(typeof r==\"object\"&&(r.$$typeof===w||r.$$typeof===P))t=r.propTypes;else return;if(t){var n=g(r);Be(t,e.props,\"prop\",n,e)}else if(r.PropTypes!==void 0&&!B){B=!0;var i=g(r);d(\"Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?\",i||\"Unknown\")}typeof r.getDefaultProps==\"function\"&&!r.getDefaultProps.isReactClassApproved&&d(\"getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.\")}}function or(e){{for(var r=Object.keys(e.props),t=0;t<r.length;t++){var n=r[t];if(n!==\"children\"&&n!==\"key\"){R(e),d(\"Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.\",n),R(null);break}}e.ref!==null&&(R(e),d(\"Invalid attribute `ref` supplied to `React.Fragment`.\"),R(null))}}function ir(e,r,t,n,i,u){{var o=$e(e);if(!o){var a=\"\";(e===void 0||typeof e==\"object\"&&e!==null&&Object.keys(e).length===0)&&(a+=\" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.\");var v=tr(i);v?a+=v:a+=ge();var c;e===null?c=\"null\":V(e)?c=\"array\":e!==void 0&&e.$$typeof===f?(c=\"<\"+(g(e.type)||\"Unknown\")+\" />\",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<p.length;T++)Ee(p[T],e);Object.freeze&&Object.freeze(p)}else d(\"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\");else Ee(p,e)}return e===E?or(l):ar(l),l}}var ur=ir;z.Fragment=E,z.jsxDEV=ur})()});var we=q((Tr,Oe)=>{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>gr});var A=pr(we()),gr={title:\"@upstash/edge-flags\",description:\"Featues flags for your edge functions.\",date:\"2022-12-12\",url:\"https://upstash.com/edge-flags\",repository:\"upstash/edge-flags\",published:!0};function Pe(s){let f=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(f.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f51b83-ce3b-423c-bad6-92589929a727.mdx\",lineNumber:11,columnNumber:1},this)}function hr(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-55f51b83-ce3b-423c-bad6-92589929a727.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-55f51b83-ce3b-423c-bad6-92589929a727.mdx\"},this):Pe(s)}var mr=hr;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-edge-flags.mdx",
"_raw": {
"sourceFilePath": "projects/upstash-edge-flags.mdx",
"sourceFileName": "upstash-edge-flags.mdx",
"sourceFileDir": "projects",
"contentType": "mdx",
"flattenedPath": "projects/upstash-edge-flags"
},
"type": "Project",
"path": "/projects/upstash-edge-flags",
"slug": "upstash-edge-flags"
},
"documentHash": "1679819586745",
"hasWarnings": false,
"documentTypeName": "Project"
},
"projects/upstash-kafka.mdx": {
"document": {
"published": true,
"title": "@upstash/kafka",
"description": "A fully typed Kafka client built for Upstash Kafka and HTTP, perfect for serverless and edge runtimes",
"date": "2022-01-08T00:00:00.000Z",
"url": "https://upstash.com/kafka",
"repository": "upstash/upstash-kafka",
"body": {
"raw": "\n\nAn HTTP/REST based Kafka client built on top of\n[Upstash REST API](https://docs.upstash.com/kafka/rest).\n\nIt is the only connectionless (HTTP based) Kafka client and designed for:\n\n- Serverless functions (AWS Lambda ...)\n- Cloudflare Workers (see the example)\n- Fastly Compute@Edge\n- Next.js Edge, Remix ...\n- Client side web/mobile applications\n- WebAssembly and other environments where HTTP is preferred over TCP\n connections.\n\n# Installation\n\n```bash\nnpm install @upstash/kafka\n```\n\n# Quickstart\n\n## Auth\n\n1. Go to [upstash](https://console.upstash.com/kafka) and select your database.\n2. Copy the `REST API` secrets at the bottom of the page\n\n```typescript\nimport { Kafka } from \"@upstash/kafka\"\n\nconst kafka = new Kafka({\n url: \"<UPSTASH_KAFKA_REST_URL>\",\n username: \"<UPSTASH_KAFKA_REST_USERNAME>\",\n password: \"<UPSTASH_KAFKA_REST_PASSWORD>\",\n})\n```\n\n## Produce a single message\n\n```typescript\nconst p = kafka.producer()\nconst message = { hello: \"world\" } // Objects will get serialized using `JSON.stringify`\nconst res = await p.produce(\"<my.topic>\", message)\nconst res = await p.produce(\"<my.topic>\", message, {\n partition: 1,\n timestamp: 12345,\n key: \"<custom key>\",\n headers: [{ key: \"traceId\", value: \"85a9f12\" }],\n})\n```\n\n## Produce multiple messages.\n\nThe same options from the example above can be set for every message.\n\n```typescript\nconst p = kafka.producer()\nconst res = await p.produceMany([\n {\n topic: \"my.topic\",\n value: { hello: \"world\" },\n // ...options\n },\n {\n topic: \"another.topic\",\n value: \"another message\",\n // ...options\n },\n])\n```\n\n## Consume\n\nThe first time a consumer is created, it needs to figure out the group\ncoordinator by asking the Kafka brokers and joins the consumer group. This\nprocess takes some time to complete. That's why when a consumer instance is\ncreated first time, it may return empty messages until consumer group\ncoordination is completed.\n\n```typescript\nconst c = kafka.consumer()\nconst messages = await c.consume({\n consumerGroupId: \"group_1\",\n instanceId: \"instance_1\",\n topics: [\"test.topic\"],\n autoOffsetReset: \"earliest\",\n})\n```\n\nMore examples can be found in the\n[docstring](https://github.com/upstash/upstash-kafka/blob/main/pkg/consumer.ts#L265)\n\n## Commit manually\n\nWhile `consume` can handle committing automatically, you can also use\n`Consumer.commit` to manually commit.\n\n```typescript\nconst consumerGroupId = \"mygroup\"\nconst instanceId = \"myinstance\"\nconst topic = \"my.topic\"\n\nconst c = kafka.consumer()\nconst messages = await c.consume({\n consumerGroupId,\n instanceId,\n topics: [topic],\n autoCommit: false,\n})\n\nfor (const message of messages) {\n // message handling logic\n\n await c.commit({\n consumerGroupId,\n instanceId,\n offset: {\n topic: message.topic,\n partition: message.partition,\n offset: message.offset,\n },\n })\n}\n```\n\n## Fetch\n\nYou can also manage offsets manually by using `Consumer.fetch`\n\n```typescript\nconst c = kafka.consumer()\nconst messages = await c.fetch({\n topic: \"greeting\",\n partition: 3,\n offset: 42,\n timeout: 1000,\n})\n```\n\n## Examples\n\nSee [/examples](https://github.com/upstash/upstash-kafka/tree/main/examples) as\nwell as various examples in the docstrings of each method.\n\n# Contributing\n\n## Requirements\n\n- [nodejs](https://nodejs.org) v14.x or higher\n- [pnpm](https://pnpm.io/installation)\n\n## Setup\n\n0. Install dependencies using `pnpm install`\n1. Create a kafka instance on upstash.\n [docs](https://docs.upstash.com/kafka#create-a-kafka-cluster)\n2. Create the following topics: `blue`, `red`, `green`.\n [docs](https://docs.upstash.com/kafka#create-a-topic)\n\n The partitions or retention settings don't matter at this time.\n\n3. Create `.env` file with your kafka secrets `cp .env.example .env`\n\n## Running tests\n\n```bash\npnpm test\n```\n",
"code": "var Component=(()=>{var dn=Object.create;var P=Object.defineProperty;var mn=Object.getOwnPropertyDescriptor;var ln=Object.getOwnPropertyNames;var bn=Object.getPrototypeOf,un=Object.prototype.hasOwnProperty;var G=(m,e)=>()=>(e||m((e={exports:{}}).exports,e),e.exports),hn=(m,e)=>{for(var _ in e)P(m,_,{get:e[_],enumerable:!0})},ye=(m,e,_,x)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let k of ln(e))!un.call(m,k)&&k!==_&&P(m,k,{get:()=>e[k],enumerable:!(x=mn(e,k))||x.enumerable});return m};var fn=(m,e,_)=>(_=m!=null?dn(bn(m)):{},ye(e||!m||!m.__esModule?P(_,\"default\",{value:m,enumerable:!0}):_,m)),_n=m=>ye(P({},\"__esModule\",{value:!0}),m);var Ee=G((gn,ge)=>{ge.exports=React});var je=G(q=>{\"use strict\";(function(){\"use strict\";var m=Ee(),e=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),x=Symbol.for(\"react.fragment\"),k=Symbol.for(\"react.strict_mode\"),H=Symbol.for(\"react.profiler\"),z=Symbol.for(\"react.provider\"),X=Symbol.for(\"react.context\"),F=Symbol.for(\"react.forward_ref\"),O=Symbol.for(\"react.suspense\"),A=Symbol.for(\"react.suspense_list\"),C=Symbol.for(\"react.memo\"),D=Symbol.for(\"react.lazy\"),Ce=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Re=\"@@iterator\";function Te(r){if(r===null||typeof r!=\"object\")return null;var a=J&&r[J]||r[Re];return typeof a==\"function\"?a:null}var g=m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function u(r){{for(var a=arguments.length,t=new Array(a>1?a-1:0),o=1;o<a;o++)t[o-1]=arguments[o];we(\"error\",r,t)}}function we(r,a,t){{var o=g.ReactDebugCurrentFrame,d=o.getStackAddendum();d!==\"\"&&(a+=\"%s\",t=t.concat([d]));var i=t.map(function(c){return String(c)});i.unshift(\"Warning: \"+a),Function.prototype.apply.call(console[r],console,i)}}var Se=!1,Be=!1,Pe=!1,Oe=!1,Ae=!1,Q;Q=Symbol.for(\"react.module.reference\");function De(r){return!!(typeof r==\"string\"||typeof r==\"function\"||r===x||r===H||Ae||r===k||r===O||r===A||Oe||r===Ce||Se||Be||Pe||typeof r==\"object\"&&r!==null&&(r.$$typeof===D||r.$$typeof===C||r.$$typeof===z||r.$$typeof===X||r.$$typeof===F||r.$$typeof===Q||r.getModuleId!==void 0))}function Ie(r,a,t){var o=r.displayName;if(o)return o;var d=a.displayName||a.name||\"\";return d!==\"\"?t+\"(\"+d+\")\":t}function Z(r){return r.displayName||\"Context\"}function p(r){if(r==null)return null;if(typeof r.tag==\"number\"&&u(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"),typeof r==\"function\")return r.displayName||r.name||null;if(typeof r==\"string\")return r;switch(r){case x:return\"Fragment\";case _:return\"Portal\";case H:return\"Profiler\";case k:return\"StrictMode\";case O:return\"Suspense\";case A:return\"SuspenseList\"}if(typeof r==\"object\")switch(r.$$typeof){case X:var a=r;return Z(a)+\".Consumer\";case z:var t=r;return Z(t._context)+\".Provider\";case F:return Ie(r,r.render,\"ForwardRef\");case C:var o=r.displayName||null;return o!==null?o:p(r.type)||\"Memo\";case D:{var d=r,i=d._payload,c=d._init;try{return p(c(i))}catch{return null}}}return null}var y=Object.assign,U=0,ee,ne,re,ae,te,oe,se;function ce(){}ce.__reactDisabledLog=!0;function Le(){{if(U===0){ee=console.log,ne=console.info,re=console.warn,ae=console.error,te=console.group,oe=console.groupCollapsed,se=console.groupEnd;var r={configurable:!0,enumerable:!0,value:ce,writable:!0};Object.defineProperties(console,{info:r,log:r,warn:r,error:r,group:r,groupCollapsed:r,groupEnd:r})}U++}}function We(){{if(U--,U===0){var r={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:y({},r,{value:ee}),info:y({},r,{value:ne}),warn:y({},r,{value:re}),error:y({},r,{value:ae}),group:y({},r,{value:te}),groupCollapsed:y({},r,{value:oe}),groupEnd:y({},r,{value:se})})}U<0&&u(\"disabledDepth fell below zero. This is a bug in React. Please file an issue.\")}}var I=g.ReactCurrentDispatcher,L;function R(r,a,t){{if(L===void 0)try{throw Error()}catch(d){var o=d.stack.trim().match(/\\n( *(at )?)/);L=o&&o[1]||\"\"}return`\n`+L+r}}var W=!1,T;{var Ye=typeof WeakMap==\"function\"?WeakMap:Map;T=new Ye}function de(r,a){if(!r||W)return\"\";{var t=T.get(r);if(t!==void 0)return t}var o;W=!0;var d=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var i;i=I.current,I.current=null,Le();try{if(a){var c=function(){throw Error()};if(Object.defineProperty(c.prototype,\"props\",{set:function(){throw Error()}}),typeof Reflect==\"object\"&&Reflect.construct){try{Reflect.construct(c,[])}catch(N){o=N}Reflect.construct(r,[],c)}else{try{c.call()}catch(N){o=N}r.call(c.prototype)}}else{try{throw Error()}catch(N){o=N}r()}}catch(N){if(N&&o&&typeof N.stack==\"string\"){for(var s=N.stack.split(`\n`),h=o.stack.split(`\n`),l=s.length-1,b=h.length-1;l>=1&&b>=0&&s[l]!==h[b];)b--;for(;l>=1&&b>=0;l--,b--)if(s[l]!==h[b]){if(l!==1||b!==1)do if(l--,b--,b<0||s[l]!==h[b]){var f=`\n`+s[l].replace(\" at new \",\" at \");return r.displayName&&f.includes(\"<anonymous>\")&&(f=f.replace(\"<anonymous>\",r.displayName)),typeof r==\"function\"&&T.set(r,f),f}while(l>=1&&b>=0);break}}}finally{W=!1,I.current=i,We(),Error.prepareStackTrace=d}var j=r?r.displayName||r.name:\"\",xe=j?R(j):\"\";return typeof r==\"function\"&&T.set(r,xe),xe}function Me(r,a,t){return de(r,!1)}function $e(r){var a=r.prototype;return!!(a&&a.isReactComponent)}function w(r,a,t){if(r==null)return\"\";if(typeof r==\"function\")return de(r,$e(r));if(typeof r==\"string\")return R(r);switch(r){case O:return R(\"Suspense\");case A:return R(\"SuspenseList\")}if(typeof r==\"object\")switch(r.$$typeof){case F:return Me(r.render);case C:return w(r.type,a,t);case D:{var o=r,d=o._payload,i=o._init;try{return w(i(d),a,t)}catch{}}}return\"\"}var S=Object.prototype.hasOwnProperty,ie={},me=g.ReactDebugCurrentFrame;function B(r){if(r){var a=r._owner,t=w(r.type,r._source,a?a.type:null);me.setExtraStackFrame(t)}else me.setExtraStackFrame(null)}function Ve(r,a,t,o,d){{var i=Function.call.bind(S);for(var c in r)if(i(r,c)){var s=void 0;try{if(typeof r[c]!=\"function\"){var h=Error((o||\"React class\")+\": \"+t+\" type `\"+c+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof r[c]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw h.name=\"Invariant Violation\",h}s=r[c](a,c,o,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(l){s=l}s&&!(s instanceof Error)&&(B(d),u(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",o||\"React class\",t,c,typeof s),B(null)),s instanceof Error&&!(s.message in ie)&&(ie[s.message]=!0,B(d),u(\"Failed %s type: %s\",t,s.message),B(null))}}}var Ke=Array.isArray;function Y(r){return Ke(r)}function Ge(r){{var a=typeof Symbol==\"function\"&&Symbol.toStringTag,t=a&&r[Symbol.toStringTag]||r.constructor.name||\"Object\";return t}}function qe(r){try{return le(r),!1}catch{return!0}}function le(r){return\"\"+r}function be(r){if(qe(r))return u(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Ge(r)),le(r)}var v=g.ReactCurrentOwner,He={key:!0,ref:!0,__self:!0,__source:!0},ue,he,M;M={};function ze(r){if(S.call(r,\"ref\")){var a=Object.getOwnPropertyDescriptor(r,\"ref\").get;if(a&&a.isReactWarning)return!1}return r.ref!==void 0}function Xe(r){if(S.call(r,\"key\")){var a=Object.getOwnPropertyDescriptor(r,\"key\").get;if(a&&a.isReactWarning)return!1}return r.key!==void 0}function Je(r,a){if(typeof r.ref==\"string\"&&v.current&&a&&v.current.stateNode!==a){var t=p(v.current.type);M[t]||(u('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',p(v.current.type),r.ref),M[t]=!0)}}function Qe(r,a){{var t=function(){ue||(ue=!0,u(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(r,\"key\",{get:t,configurable:!0})}}function Ze(r,a){{var t=function(){he||(he=!0,u(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",a))};t.isReactWarning=!0,Object.defineProperty(r,\"ref\",{get:t,configurable:!0})}}var en=function(r,a,t,o,d,i,c){var s={$$typeof:e,type:r,key:a,ref:t,props:c,_owner:i};return s._store={},Object.defineProperty(s._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(s,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(s,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:d}),Object.freeze&&(Object.freeze(s.props),Object.freeze(s)),s};function nn(r,a,t,o,d){{var i,c={},s=null,h=null;t!==void 0&&(be(t),s=\"\"+t),Xe(a)&&(be(a.key),s=\"\"+a.key),ze(a)&&(h=a.ref,Je(a,d));for(i in a)S.call(a,i)&&!He.hasOwnProperty(i)&&(c[i]=a[i]);if(r&&r.defaultProps){var l=r.defaultProps;for(i in l)c[i]===void 0&&(c[i]=l[i])}if(s||h){var b=typeof r==\"function\"?r.displayName||r.name||\"Unknown\":r;s&&Qe(c,b),h&&Ze(c,b)}return en(r,s,h,d,o,v.current,c)}}var $=g.ReactCurrentOwner,fe=g.ReactDebugCurrentFrame;function E(r){if(r){var a=r._owner,t=w(r.type,r._source,a?a.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}var V;V=!1;function K(r){return typeof r==\"object\"&&r!==null&&r.$$typeof===e}function _e(){{if($.current){var r=p($.current.type);if(r)return`\n\nCheck the render method of \\``+r+\"`.\"}return\"\"}}function rn(r){{if(r!==void 0){var a=r.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=r.lineNumber;return`\n\nCheck your code at `+a+\":\"+t+\".\"}return\"\"}}var pe={};function an(r){{var a=_e();if(!a){var t=typeof r==\"string\"?r:r.displayName||r.name;t&&(a=`\n\nCheck the top-level render call using <`+t+\">.\")}return a}}function Ne(r,a){{if(!r._store||r._store.validated||r.key!=null)return;r._store.validated=!0;var t=an(a);if(pe[t])return;pe[t]=!0;var o=\"\";r&&r._owner&&r._owner!==$.current&&(o=\" It was passed a child from \"+p(r._owner.type)+\".\"),E(r),u('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,o),E(null)}}function ke(r,a){{if(typeof r!=\"object\")return;if(Y(r))for(var t=0;t<r.length;t++){var o=r[t];K(o)&&Ne(o,a)}else if(K(r))r._store&&(r._store.validated=!0);else if(r){var d=Te(r);if(typeof d==\"function\"&&d!==r.entries)for(var i=d.call(r),c;!(c=i.next()).done;)K(c.value)&&Ne(c.value,a)}}}function tn(r){{var a=r.type;if(a==null||typeof a==\"string\")return;var t;if(typeof a==\"function\")t=a.propTypes;else if(typeof a==\"object\"&&(a.$$typeof===F||a.$$typeof===C))t=a.propTypes;else return;if(t){var o=p(a);Ve(t,r.props,\"prop\",o,r)}else if(a.PropTypes!==void 0&&!V){V=!0;var d=p(a);u(\"Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?\",d||\"Unknown\")}typeof a.getDefaultProps==\"function\"&&!a.getDefaultProps.isReactClassApproved&&u(\"getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.\")}}function on(r){{for(var a=Object.keys(r.props),t=0;t<a.length;t++){var o=a[t];if(o!==\"children\"&&o!==\"key\"){E(r),u(\"Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.\",o),E(null);break}}r.ref!==null&&(E(r),u(\"Invalid attribute `ref` supplied to `React.Fragment`.\"),E(null))}}function sn(r,a,t,o,d,i){{var c=De(r);if(!c){var s=\"\";(r===void 0||typeof r==\"object\"&&r!==null&&Object.keys(r).length===0)&&(s+=\" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.\");var h=rn(d);h?s+=h:s+=_e();var l;r===null?l=\"null\":Y(r)?l=\"array\":r!==void 0&&r.$$typeof===e?(l=\"<\"+(p(r.type)||\"Unknown\")+\" />\",s=\" Did you accidentally export a JSX literal instead of a component?\"):l=typeof r,u(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",l,s)}var b=nn(r,a,t,d,i);if(b==null)return b;if(c){var f=a.children;if(f!==void 0)if(o)if(Y(f)){for(var j=0;j<f.length;j++)ke(f[j],r);Object.freeze&&Object.freeze(f)}else u(\"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\");else ke(f,r)}return r===x?on(b):tn(b),b}}var cn=sn;q.Fragment=x,q.jsxDEV=cn})()});var ve=G((jn,Ue)=>{\"use strict\";Ue.exports=je()});var xn={};hn(xn,{default:()=>kn,frontmatter:()=>pn});var n=fn(ve()),pn={title:\"@upstash/kafka\",description:\"A fully typed Kafka client built for Upstash Kafka and HTTP, perfect for serverless and edge runtimes\",date:\"2022-01-08\",url:\"https://upstash.com/kafka\",repository:\"upstash/upstash-kafka\",published:!0};function Fe(m){let e=Object.assign({p:\"p\",a:\"a\",ul:\"ul\",li:\"li\",h1:\"h1\",span:\"span\",div:\"div\",pre:\"pre\",code:\"code\",h2:\"h2\",ol:\"ol\"},m.components);return(0,n.jsxDEV)(n.Fragment,{children:[(0,n.jsxDEV)(e.p,{children:[`An HTTP/REST based Kafka client built on top of\n`,(0,n.jsxDEV)(e.a,{href:\"https://docs.upstash.com/kafka/rest\",children:\"Upstash REST API\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:1},this),\".\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:\"It is the only connectionless (HTTP based) Kafka client and designed for:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.ul,{children:[`\n`,(0,n.jsxDEV)(e.li,{children:\"Serverless functions (AWS Lambda ...)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"Cloudflare Workers (see the example)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"Fastly Compute@Edge\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"Next.js Edge, Remix ...\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"Client side web/mobile applications\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:21,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:`WebAssembly and other environments where HTTP is preferred over TCP\nconnections.`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:22,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h1,{id:\"installation\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#installation\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Installation\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:25,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"npm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:143},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"install\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:180},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:223},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"@upstash/kafka\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:260},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:27,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h1,{id:\"quickstart\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#quickstart\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Quickstart\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"auth\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#auth\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Auth\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:33,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.ol,{children:[`\n`,(0,n.jsxDEV)(e.li,{children:[\"Go to \",(0,n.jsxDEV)(e.a,{href:\"https://console.upstash.com/kafka\",children:\"upstash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:35,columnNumber:10},this),\" and select your database.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:[\"Copy the \",(0,n.jsxDEV)(e.code,{children:\"REST API\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:36,columnNumber:13},this),\" secrets at the bottom of the page\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:36,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" { Kafka } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:146},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:193},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:233},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"@upstash/kafka\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:270},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"kafka\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:139},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:176},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:213},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"new\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:250},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:289},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"Kafka\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:326},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:367},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" url: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"<UPSTASH_KAFKA_REST_URL>\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:63},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:141},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" username: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"<UPSTASH_KAFKA_REST_USERNAME>\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:68},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:151},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" password: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"<UPSTASH_KAFKA_REST_PASSWORD>\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:68},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:151},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:38,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"produce-a-single-message\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#produce-a-single-message\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Produce a single message\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:48,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:145},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"p\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:182},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:219},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:256},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:293},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"producer\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:336},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:380},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"message\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:141},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:178},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" { hello: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:215},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"world\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:261},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:314},this),(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// Objects will get serialized using `JSON.stringify`\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:353},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"res\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:137},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:174},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:211},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:248},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" p.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:289},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"produce\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:328},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:371},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"<my.topic>\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:408},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", message)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:472},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"res\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:137},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:174},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:211},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:248},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" p.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:289},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"produce\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:328},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:371},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"<my.topic>\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:408},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", message, {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:472},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" partition: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:69},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:106},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" timestamp: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"12345\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:69},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:110},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" key: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"<custom key>\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:63},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:129},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" headers: [{ key: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"traceId\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:75},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", value: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:130},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"85a9f12\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:175},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" }],\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:230},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:50,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"produce-multiple-messages\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#produce-multiple-messages\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Produce multiple messages.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:62,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:\"The same options from the example above can be set for every message.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:64,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:145},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"p\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:182},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:219},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:256},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:293},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"producer\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:336},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:380},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"res\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:137},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:174},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:211},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:248},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" p.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:289},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"produceMany\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:328},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"([\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:375},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topic: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"my.topic\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:67},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:123},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" value: { hello: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"world\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:76},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" },\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:129},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// ...options\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:60},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" },\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topic: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"another.topic\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:67},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:128},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" value: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"another message\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:67},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:130},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:11,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// ...options\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:11,columnNumber:60},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" },\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:12,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"])\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:66,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"consume\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#consume\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Consume\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:82,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:`The first time a consumer is created, it needs to figure out the group\ncoordinator by asking the Kafka brokers and joins the consumer group. This\nprocess takes some time to complete. That's why when a consumer instance is\ncreated first time, it may return empty messages until consumer group\ncoordination is completed.`},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:84,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:145},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"c\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:182},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:219},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:256},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:293},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"consumer\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:336},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:380},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"messages\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:142},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:179},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:216},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:253},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" c.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:294},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"consume\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:333},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:376},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" consumerGroupId: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"group_1\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:75},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:130},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" instanceId: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"instance_1\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:70},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:128},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topics: [\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"test.topic\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:67},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"],\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:125},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" autoOffsetReset: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"earliest\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:75},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:131},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:90,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:[`More examples can be found in the\n`,(0,n.jsxDEV)(e.a,{href:\"https://github.com/upstash/upstash-kafka/blob/main/pkg/consumer.ts#L265\",children:\"docstring\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:101,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:100,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"commit-manually\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#commit-manually\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Commit manually\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:103,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:[\"While \",(0,n.jsxDEV)(e.code,{children:\"consume\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:105,columnNumber:7},this),` can handle committing automatically, you can also use\n`,(0,n.jsxDEV)(e.code,{children:\"Consumer.commit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:106,columnNumber:1},this),\" to manually commit.\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:105,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:145},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"consumerGroupId\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:182},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:233},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:270},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:307},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"mygroup\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:344},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"instanceId\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:144},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:181},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:218},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"myinstance\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:255},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"topic\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:139},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:176},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:213},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"my.topic\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:250},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"c\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:135},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:172},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:209},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"consumer\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:252},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:296},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"messages\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:142},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:179},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:216},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:253},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" c.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:294},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"consume\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:333},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:376},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" consumerGroupId,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" instanceId,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topics: [topic],\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" autoCommit: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"false\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:70},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:111},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:11,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"for\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" (\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:59},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:97},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:138},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"message\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:175},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:218},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"of\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:255},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" messages) {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:293},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:14,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// message handling logic\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:14,columnNumber:58},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:16,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:16,columnNumber:58},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" c.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:16,columnNumber:99},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"commit\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:16,columnNumber:138},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:16,columnNumber:180},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" consumerGroupId,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:17,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" instanceId,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:18,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" offset: {\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:19,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topic: message.topic,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:20,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" partition: message.partition,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:21,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:21,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" offset: message.offset,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:22,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:22,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" },\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:23,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:23,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" })\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:24,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:24,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:25,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:25,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:108,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"fetch\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#fetch\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Fetch\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:136,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:[\"You can also manage offsets manually by using \",(0,n.jsxDEV)(e.code,{children:\"Consumer.fetch\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:138,columnNumber:47},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:138,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"typescript\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:145},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"c\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:182},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:219},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:256},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" kafka.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:293},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"consumer\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:336},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"()\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:380},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"messages\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:142},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:179},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:216},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:253},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" c.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:294},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"fetch\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:333},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:374},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" topic: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"greeting\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:65},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:121},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" partition: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"3\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:69},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:106},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" offset: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"42\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:66},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:104},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" timeout: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"1000\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:67},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\",\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:107},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:7,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:140,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"examples\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#examples\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Examples\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:150,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:[\"See \",(0,n.jsxDEV)(e.a,{href:\"https://github.com/upstash/upstash-kafka/tree/main/examples\",children:\"/examples\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:152,columnNumber:5},this),` as\nwell as various examples in the docstrings of each method.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:152,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h1,{id:\"contributing\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#contributing\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Contributing\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:155,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"requirements\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#requirements\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Requirements\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:157,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.ul,{children:[`\n`,(0,n.jsxDEV)(e.li,{children:[(0,n.jsxDEV)(e.a,{href:\"https://nodejs.org\",children:\"nodejs\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:159,columnNumber:3},this),\" v14.x or higher\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:159,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:(0,n.jsxDEV)(e.a,{href:\"https://pnpm.io/installation\",children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:160,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:160,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:159,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"setup\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#setup\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Setup\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:162,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.ol,{start:\"0\",children:[`\n`,(0,n.jsxDEV)(e.li,{children:[`\n`,(0,n.jsxDEV)(e.p,{children:[\"Install dependencies using \",(0,n.jsxDEV)(e.code,{children:\"pnpm install\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:164,columnNumber:31},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:164,columnNumber:4},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:164,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:[`\n`,(0,n.jsxDEV)(e.p,{children:[`Create a kafka instance on upstash.\n`,(0,n.jsxDEV)(e.a,{href:\"https://docs.upstash.com/kafka#create-a-kafka-cluster\",children:\"docs\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:166,columnNumber:4},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:165,columnNumber:4},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:165,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:[`\n`,(0,n.jsxDEV)(e.p,{children:[\"Create the following topics: \",(0,n.jsxDEV)(e.code,{children:\"blue\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:167,columnNumber:33},this),\", \",(0,n.jsxDEV)(e.code,{children:\"red\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:167,columnNumber:41},this),\", \",(0,n.jsxDEV)(e.code,{children:\"green\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:167,columnNumber:48},this),`.\n`,(0,n.jsxDEV)(e.a,{href:\"https://docs.upstash.com/kafka#create-a-topic\",children:\"docs\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:168,columnNumber:4},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:167,columnNumber:4},this),`\n`,(0,n.jsxDEV)(e.p,{children:\"The partitions or retention settings don't matter at this time.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:170,columnNumber:4},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:167,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:[`\n`,(0,n.jsxDEV)(e.p,{children:[\"Create \",(0,n.jsxDEV)(e.code,{children:\".env\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:172,columnNumber:11},this),\" file with your kafka secrets \",(0,n.jsxDEV)(e.code,{children:\"cp .env.example .env\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:172,columnNumber:47},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:172,columnNumber:4},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:172,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:164,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"running-tests\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#running-tests\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this),\"Running tests\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:174,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"pnpm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:144},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"test\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:181},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:176,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\",lineNumber:1,columnNumber:1},this)}function Nn(m={}){let{wrapper:e}=m.components||{};return e?(0,n.jsxDEV)(e,Object.assign({},m,{children:(0,n.jsxDEV)(Fe,m,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-f941a3c8-66a7-48df-b631-0b73ab779bde.mdx\"},this):Fe(m)}var kn=Nn;return _n(xn);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;"
},
"_id": "projects/upstash-kafka.mdx",
"_raw": {
"sourceFilePath": "projects/upstash-kafka.mdx",
"sourceFileName": "upstash-kafka.mdx",
"sourceFileDir": "projects",
"contentType": "mdx",
"flattenedPath": "projects/upstash-kafka"
},
"type": "Project",
"path": "/projects/upstash-kafka",
"slug": "upstash-kafka"
},
"documentHash": "1679819588795",
"hasWarnings": false,
"documentTypeName": "Project"
},
"projects/upstash-qstash-sdk.mdx": {
"document": {
"published": true,
"title": "@upstash/qstash",
"description": "A typescript client and consumer for QStash.",
"date": "2022-07-18T00:00:00.000Z",
"url": "https://upstash.com/qstash",
"repository": "upstash/sdk-qstash-ts",
"body": {
"raw": "\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<r;n++)t[n-1]=arguments[n];ke(\"error\",e,t)}}function ke(e,r,t){{var n=_.ReactDebugCurrentFrame,i=n.getStackAddendum();i!==\"\"&&(r+=\"%s\",t=t.concat([i]));var u=t.map(function(o){return String(o)});u.unshift(\"Warning: \"+r),Function.prototype.apply.call(console[e],console,u)}}var De=!1,Fe=!1,Ae=!1,Ie=!1,Ye=!1,Q;Q=Symbol.for(\"react.module.reference\");function $e(e){return!!(typeof e==\"string\"||typeof e==\"function\"||e===E||e===X||Ye||e===m||e===I||e===Y||Ie||e===Se||De||Fe||Ae||typeof e==\"object\"&&e!==null&&(e.$$typeof===$||e.$$typeof===P||e.$$typeof===K||e.$$typeof===H||e.$$typeof===w||e.$$typeof===Q||e.getModuleId!==void 0))}function We(e,r,t){var n=e.displayName;if(n)return n;var i=r.displayName||r.name||\"\";return i!==\"\"?t+\"(\"+i+\")\":t}function Z(e){return e.displayName||\"Context\"}function b(e){if(e==null)return null;if(typeof e.tag==\"number\"&&d(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"),typeof e==\"function\")return e.displayName||e.name||null;if(typeof e==\"string\")return e;switch(e){case E:return\"Fragment\";case h:return\"Portal\";case X:return\"Profiler\";case m:return\"StrictMode\";case I:return\"Suspense\";case Y:return\"SuspenseList\"}if(typeof e==\"object\")switch(e.$$typeof){case H:var r=e;return Z(r)+\".Consumer\";case K:var t=e;return Z(t._context)+\".Provider\";case w:return We(e,e.render,\"ForwardRef\");case P:var n=e.displayName||null;return n!==null?n:b(e.type)||\"Memo\";case $:{var i=e,u=i._payload,o=i._init;try{return b(o(u))}catch{return null}}}return null}var y=Object.assign,C=0,ee,re,te,ne,ae,oe,ie;function ue(){}ue.__reactDisabledLog=!0;function Ne(){{if(C===0){ee=console.log,re=console.info,te=console.warn,ne=console.error,ae=console.group,oe=console.groupCollapsed,ie=console.groupEnd;var e={configurable:!0,enumerable:!0,value:ue,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}C++}}function Me(){{if(C--,C===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:y({},e,{value:ee}),info:y({},e,{value:re}),warn:y({},e,{value:te}),error:y({},e,{value:ne}),group:y({},e,{value:ae}),groupCollapsed:y({},e,{value:oe}),groupEnd:y({},e,{value:ie})})}C<0&&d(\"disabledDepth fell below zero. This is a bug in React. Please file an issue.\")}}var W=_.ReactCurrentDispatcher,N;function S(e,r,t){{if(N===void 0)try{throw Error()}catch(i){var n=i.stack.trim().match(/\\n( *(at )?)/);N=n&&n[1]||\"\"}return`\n`+N+e}}var M=!1,j;{var Ve=typeof WeakMap==\"function\"?WeakMap:Map;j=new Ve}function se(e,r){if(!e||M)return\"\";{var t=j.get(e);if(t!==void 0)return t}var n;M=!0;var i=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var u;u=W.current,W.current=null,Ne();try{if(r){var o=function(){throw Error()};if(Object.defineProperty(o.prototype,\"props\",{set:function(){throw Error()}}),typeof Reflect==\"object\"&&Reflect.construct){try{Reflect.construct(o,[])}catch(g){n=g}Reflect.construct(e,[],o)}else{try{o.call()}catch(g){n=g}e.call(o.prototype)}}else{try{throw Error()}catch(g){n=g}e()}}catch(g){if(g&&n&&typeof g.stack==\"string\"){for(var a=g.stack.split(`\n`),v=n.stack.split(`\n`),f=a.length-1,l=v.length-1;f>=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(\"<anonymous>\")&&(p=p.replace(\"<anonymous>\",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<e.length;t++){var n=e[t];B(n)&&me(n,r)}else if(B(e))e._store&&(e._store.validated=!0);else if(e){var i=xe(e);if(typeof i==\"function\"&&i!==e.entries)for(var u=i.call(e),o;!(o=u.next()).done;)B(o.value)&&me(o.value,r)}}}function ar(e){{var r=e.type;if(r==null||typeof r==\"string\")return;var t;if(typeof r==\"function\")t=r.propTypes;else if(typeof r==\"object\"&&(r.$$typeof===w||r.$$typeof===P))t=r.propTypes;else return;if(t){var n=b(r);qe(t,e.props,\"prop\",n,e)}else if(r.PropTypes!==void 0&&!q){q=!0;var i=b(r);d(\"Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?\",i||\"Unknown\")}typeof r.getDefaultProps==\"function\"&&!r.getDefaultProps.isReactClassApproved&&d(\"getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.\")}}function or(e){{for(var r=Object.keys(e.props),t=0;t<r.length;t++){var n=r[t];if(n!==\"children\"&&n!==\"key\"){R(e),d(\"Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.\",n),R(null);break}}e.ref!==null&&(R(e),d(\"Invalid attribute `ref` supplied to `React.Fragment`.\"),R(null))}}function ir(e,r,t,n,i,u){{var o=$e(e);if(!o){var a=\"\";(e===void 0||typeof e==\"object\"&&e!==null&&Object.keys(e).length===0)&&(a+=\" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.\");var v=tr(i);v?a+=v:a+=be();var f;e===null?f=\"null\":V(e)?f=\"array\":e!==void 0&&e.$$typeof===c?(f=\"<\"+(b(e.type)||\"Unknown\")+\" />\",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<p.length;T++)Ee(p[T],e);Object.freeze&&Object.freeze(p)}else d(\"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\");else Ee(p,e)}return e===E?or(l):ar(l),l}}var ur=ir;z.Fragment=E,z.jsxDEV=ur})()});var we=G((Tr,Oe)=>{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>br});var A=pr(we()),br={title:\"@upstash/qstash\",description:\"A typescript client and consumer for QStash.\",date:\"2022-07-18\",url:\"https://upstash.com/qstash\",repository:\"upstash/sdk-qstash-ts\",published:!0};function Pe(s){let c=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(c.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-2f5760c4-1322-4e46-9d1d-1912b9ec4d97.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-2f5760c4-1322-4e46-9d1d-1912b9ec4d97.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-2f5760c4-1322-4e46-9d1d-1912b9ec4d97.mdx\"},this):Pe(s)}var mr=gr;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;"
},
"_id": "projects/upstash-qstash-sdk.mdx",
"_raw": {
"sourceFilePath": "projects/upstash-qstash-sdk.mdx",
"sourceFileName": "upstash-qstash-sdk.mdx",
"sourceFileDir": "projects",
"contentType": "mdx",
"flattenedPath": "projects/upstash-qstash-sdk"
},
"type": "Project",
"path": "/projects/upstash-qstash-sdk",
"slug": "upstash-qstash-sdk"
},
"documentHash": "1679819591035",
"hasWarnings": false,
"documentTypeName": "Project"
},
"projects/upstash-ratelimit.mdx": {
"document": {
"published": true,
"title": "@upstash/ratelimit",
"description": "Ratelimiting library for serverless and edge runtimes. Built on top of Upstash Redis.",
"date": "2022-06-06T00:00:00.000Z",
"url": "https://upstash.com/ratelimit",
"repository": "upstash/ratelimit",
"body": {
"raw": "\nTODO:",
"code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var 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)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 fr(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(cr(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<r;n++)t[n-1]=arguments[n];ke(\"error\",e,t)}}function ke(e,r,t){{var n=_.ReactDebugCurrentFrame,i=n.getStackAddendum();i!==\"\"&&(r+=\"%s\",t=t.concat([i]));var u=t.map(function(o){return String(o)});u.unshift(\"Warning: \"+r),Function.prototype.apply.call(console[e],console,u)}}var De=!1,Fe=!1,Ae=!1,Ie=!1,Ye=!1,Z;Z=Symbol.for(\"react.module.reference\");function $e(e){return!!(typeof e==\"string\"||typeof e==\"function\"||e===E||e===X||Ye||e===m||e===I||e===Y||Ie||e===Se||De||Fe||Ae||typeof e==\"object\"&&e!==null&&(e.$$typeof===$||e.$$typeof===P||e.$$typeof===K||e.$$typeof===H||e.$$typeof===w||e.$$typeof===Z||e.getModuleId!==void 0))}function We(e,r,t){var n=e.displayName;if(n)return n;var i=r.displayName||r.name||\"\";return i!==\"\"?t+\"(\"+i+\")\":t}function Q(e){return e.displayName||\"Context\"}function b(e){if(e==null)return null;if(typeof e.tag==\"number\"&&d(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"),typeof e==\"function\")return e.displayName||e.name||null;if(typeof e==\"string\")return e;switch(e){case E:return\"Fragment\";case h:return\"Portal\";case X:return\"Profiler\";case m:return\"StrictMode\";case I:return\"Suspense\";case Y:return\"SuspenseList\"}if(typeof e==\"object\")switch(e.$$typeof){case H:var r=e;return Q(r)+\".Consumer\";case K:var t=e;return Q(t._context)+\".Provider\";case w:return We(e,e.render,\"ForwardRef\");case P:var n=e.displayName||null;return n!==null?n:b(e.type)||\"Memo\";case $:{var i=e,u=i._payload,o=i._init;try{return b(o(u))}catch{return null}}}return null}var y=Object.assign,C=0,ee,re,te,ne,ae,oe,ie;function ue(){}ue.__reactDisabledLog=!0;function Ne(){{if(C===0){ee=console.log,re=console.info,te=console.warn,ne=console.error,ae=console.group,oe=console.groupCollapsed,ie=console.groupEnd;var e={configurable:!0,enumerable:!0,value:ue,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}C++}}function Me(){{if(C--,C===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:y({},e,{value:ee}),info:y({},e,{value:re}),warn:y({},e,{value:te}),error:y({},e,{value:ne}),group:y({},e,{value:ae}),groupCollapsed:y({},e,{value:oe}),groupEnd:y({},e,{value:ie})})}C<0&&d(\"disabledDepth fell below zero. This is a bug in React. Please file an issue.\")}}var W=_.ReactCurrentDispatcher,N;function S(e,r,t){{if(N===void 0)try{throw Error()}catch(i){var n=i.stack.trim().match(/\\n( *(at )?)/);N=n&&n[1]||\"\"}return`\n`+N+e}}var M=!1,j;{var Ve=typeof WeakMap==\"function\"?WeakMap:Map;j=new Ve}function se(e,r){if(!e||M)return\"\";{var t=j.get(e);if(t!==void 0)return t}var n;M=!0;var i=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var u;u=W.current,W.current=null,Ne();try{if(r){var o=function(){throw Error()};if(Object.defineProperty(o.prototype,\"props\",{set:function(){throw Error()}}),typeof Reflect==\"object\"&&Reflect.construct){try{Reflect.construct(o,[])}catch(g){n=g}Reflect.construct(e,[],o)}else{try{o.call()}catch(g){n=g}e.call(o.prototype)}}else{try{throw Error()}catch(g){n=g}e()}}catch(g){if(g&&n&&typeof g.stack==\"string\"){for(var a=g.stack.split(`\n`),v=n.stack.split(`\n`),f=a.length-1,c=v.length-1;f>=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(\"<anonymous>\")&&(p=p.replace(\"<anonymous>\",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 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={},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 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 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,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<e.length;t++){var n=e[t];G(n)&&me(n,r)}else if(G(e))e._store&&(e._store.validated=!0);else if(e){var i=xe(e);if(typeof i==\"function\"&&i!==e.entries)for(var u=i.call(e),o;!(o=u.next()).done;)G(o.value)&&me(o.value,r)}}}function ar(e){{var r=e.type;if(r==null||typeof r==\"string\")return;var t;if(typeof r==\"function\")t=r.propTypes;else if(typeof r==\"object\"&&(r.$$typeof===w||r.$$typeof===P))t=r.propTypes;else return;if(t){var n=b(r);Be(t,e.props,\"prop\",n,e)}else if(r.PropTypes!==void 0&&!B){B=!0;var i=b(r);d(\"Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?\",i||\"Unknown\")}typeof r.getDefaultProps==\"function\"&&!r.getDefaultProps.isReactClassApproved&&d(\"getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.\")}}function or(e){{for(var r=Object.keys(e.props),t=0;t<r.length;t++){var n=r[t];if(n!==\"children\"&&n!==\"key\"){R(e),d(\"Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.\",n),R(null);break}}e.ref!==null&&(R(e),d(\"Invalid attribute `ref` supplied to `React.Fragment`.\"),R(null))}}function ir(e,r,t,n,i,u){{var o=$e(e);if(!o){var a=\"\";(e===void 0||typeof e==\"object\"&&e!==null&&Object.keys(e).length===0)&&(a+=\" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.\");var v=tr(i);v?a+=v:a+=be();var f;e===null?f=\"null\":V(e)?f=\"array\":e!==void 0&&e.$$typeof===l?(f=\"<\"+(b(e.type)||\"Unknown\")+\" />\",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<p.length;T++)Ee(p[T],e);Object.freeze&&Object.freeze(p)}else d(\"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\");else Ee(p,e)}return e===E?or(c):ar(c),c}}var ur=ir;z.Fragment=E,z.jsxDEV=ur})()});var we=q((Tr,Oe)=>{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>br});var A=pr(we()),br={title:\"@upstash/ratelimit\",description:\"Ratelimiting library for serverless and edge runtimes. Built on top of Upstash Redis.\",date:\"2022-06-06\",url:\"https://upstash.com/ratelimit\",repository:\"upstash/ratelimit\",published:!0};function Pe(s){let 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-37fe23d1-747d-41e2-83b3-756ee13806a3.mdx\",lineNumber:11,columnNumber:1},this)}function gr(s={}){let{wrapper:l}=s.components||{};return l?(0,A.jsxDEV)(l,Object.assign({},s,{children:(0,A.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-37fe23d1-747d-41e2-83b3-756ee13806a3.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-37fe23d1-747d-41e2-83b3-756ee13806a3.mdx\"},this):Pe(s)}var mr=gr;return hr(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;"
},
"_id": "projects/upstash-ratelimit.mdx",
"_raw": {
"sourceFilePath": "projects/upstash-ratelimit.mdx",
"sourceFileName": "upstash-ratelimit.mdx",
"sourceFileDir": "projects",
"contentType": "mdx",
"flattenedPath": "projects/upstash-ratelimit"
},
"type": "Project",
"path": "/projects/upstash-ratelimit",
"slug": "upstash-ratelimit"
},
"documentHash": "1679819595280",
"hasWarnings": false,
"documentTypeName": "Project"
},
"projects/upstash-react-ui.mdx": {
"document": {
"published": true,
"title": "React.js CLI",
"description": "A CLI React component to interact with Upstash Redis databases.",
"date": "2023-02-05T00:00:00.000Z",
"url": "https://upstash.com",
"repository": "upstash/react-ui",
"body": {
"raw": "\nTODO:",
"code": "var Component=(()=>{var sr=Object.create;var F=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var fr=Object.getOwnPropertyNames;var lr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,c)=>()=>(c||s((c={exports:{}}).exports,c),c.exports),vr=(s,c)=>{for(var b in c)F(s,b,{get:c[b],enumerable:!0})},_e=(s,c,b,E)=>{if(c&&typeof c==\"object\"||typeof c==\"function\")for(let m of fr(c))!dr.call(s,m)&&m!==b&&F(s,m,{get:()=>c[m],enumerable:!(E=cr(c,m))||E.enumerable});return s};var pr=(s,c,b)=>(b=s!=null?sr(lr(s)):{},_e(c||!s||!s.__esModule?F(b,\"default\",{value:s,enumerable:!0}):b,s)),br=s=>_e(F({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),c=Symbol.for(\"react.element\"),b=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),$=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n<r;n++)t[n-1]=arguments[n];ke(\"error\",e,t)}}function ke(e,r,t){{var n=_.ReactDebugCurrentFrame,i=n.getStackAddendum();i!==\"\"&&(r+=\"%s\",t=t.concat([i]));var u=t.map(function(o){return String(o)});u.unshift(\"Warning: \"+r),Function.prototype.apply.call(console[e],console,u)}}var De=!1,Fe=!1,Ae=!1,Ie=!1,Ye=!1,Z;Z=Symbol.for(\"react.module.reference\");function $e(e){return!!(typeof e==\"string\"||typeof e==\"function\"||e===E||e===X||Ye||e===m||e===I||e===Y||Ie||e===Se||De||Fe||Ae||typeof e==\"object\"&&e!==null&&(e.$$typeof===$||e.$$typeof===P||e.$$typeof===K||e.$$typeof===H||e.$$typeof===w||e.$$typeof===Z||e.getModuleId!==void 0))}function We(e,r,t){var n=e.displayName;if(n)return n;var i=r.displayName||r.name||\"\";return i!==\"\"?t+\"(\"+i+\")\":t}function Q(e){return e.displayName||\"Context\"}function h(e){if(e==null)return null;if(typeof e.tag==\"number\"&&d(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"),typeof e==\"function\")return e.displayName||e.name||null;if(typeof e==\"string\")return e;switch(e){case E:return\"Fragment\";case b:return\"Portal\";case X:return\"Profiler\";case m:return\"StrictMode\";case I:return\"Suspense\";case Y:return\"SuspenseList\"}if(typeof e==\"object\")switch(e.$$typeof){case H:var r=e;return Q(r)+\".Consumer\";case K:var t=e;return Q(t._context)+\".Provider\";case w:return We(e,e.render,\"ForwardRef\");case P:var n=e.displayName||null;return n!==null?n:h(e.type)||\"Memo\";case $:{var i=e,u=i._payload,o=i._init;try{return h(o(u))}catch{return null}}}return null}var y=Object.assign,C=0,ee,re,te,ne,ae,oe,ie;function ue(){}ue.__reactDisabledLog=!0;function Ne(){{if(C===0){ee=console.log,re=console.info,te=console.warn,ne=console.error,ae=console.group,oe=console.groupCollapsed,ie=console.groupEnd;var e={configurable:!0,enumerable:!0,value:ue,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}C++}}function Me(){{if(C--,C===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:y({},e,{value:ee}),info:y({},e,{value:re}),warn:y({},e,{value:te}),error:y({},e,{value:ne}),group:y({},e,{value:ae}),groupCollapsed:y({},e,{value:oe}),groupEnd:y({},e,{value:ie})})}C<0&&d(\"disabledDepth fell below zero. This is a bug in React. Please file an issue.\")}}var W=_.ReactCurrentDispatcher,N;function S(e,r,t){{if(N===void 0)try{throw Error()}catch(i){var n=i.stack.trim().match(/\\n( *(at )?)/);N=n&&n[1]||\"\"}return`\n`+N+e}}var M=!1,j;{var Ve=typeof WeakMap==\"function\"?WeakMap:Map;j=new Ve}function se(e,r){if(!e||M)return\"\";{var t=j.get(e);if(t!==void 0)return t}var n;M=!0;var i=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var u;u=W.current,W.current=null,Ne();try{if(r){var o=function(){throw Error()};if(Object.defineProperty(o.prototype,\"props\",{set:function(){throw Error()}}),typeof Reflect==\"object\"&&Reflect.construct){try{Reflect.construct(o,[])}catch(g){n=g}Reflect.construct(e,[],o)}else{try{o.call()}catch(g){n=g}e.call(o.prototype)}}else{try{throw Error()}catch(g){n=g}e()}}catch(g){if(g&&n&&typeof g.stack==\"string\"){for(var a=g.stack.split(`\n`),v=n.stack.split(`\n`),f=a.length-1,l=v.length-1;f>=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(\"<anonymous>\")&&(p=p.replace(\"<anonymous>\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(f>=1&&l>=0);break}}}finally{M=!1,W.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Le(e,r,t){return se(e,!1)}function Ue(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Ue(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case Y:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Le(e.render);case P:return x(e.type,r,t);case $:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,ce={},fe=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);fe.setExtraStackFrame(t)}else fe.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(f){a=f}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return le(e),!1}catch{return!0}}function le(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),le(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,L;L={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=h(O.current.type);L[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',h(O.current.type),e.ref),L[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:c,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var f=e.defaultProps;for(u in f)o[u]===void 0&&(o[u]=f[u])}if(a||v){var l=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,l),v&&Qe(o,l)}return er(e,a,v,i,n,O.current,o)}}var U=_.ReactCurrentOwner,be=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===c}function he(){{if(U.current){var e=h(U.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=he();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==U.current&&(n=\" It was passed a child from \"+h(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t<e.length;t++){var n=e[t];G(n)&&me(n,r)}else if(G(e))e._store&&(e._store.validated=!0);else if(e){var i=xe(e);if(typeof i==\"function\"&&i!==e.entries)for(var u=i.call(e),o;!(o=u.next()).done;)G(o.value)&&me(o.value,r)}}}function ar(e){{var r=e.type;if(r==null||typeof r==\"string\")return;var t;if(typeof r==\"function\")t=r.propTypes;else if(typeof r==\"object\"&&(r.$$typeof===w||r.$$typeof===P))t=r.propTypes;else return;if(t){var n=h(r);Be(t,e.props,\"prop\",n,e)}else if(r.PropTypes!==void 0&&!B){B=!0;var i=h(r);d(\"Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?\",i||\"Unknown\")}typeof r.getDefaultProps==\"function\"&&!r.getDefaultProps.isReactClassApproved&&d(\"getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.\")}}function or(e){{for(var r=Object.keys(e.props),t=0;t<r.length;t++){var n=r[t];if(n!==\"children\"&&n!==\"key\"){R(e),d(\"Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.\",n),R(null);break}}e.ref!==null&&(R(e),d(\"Invalid attribute `ref` supplied to `React.Fragment`.\"),R(null))}}function ir(e,r,t,n,i,u){{var o=$e(e);if(!o){var a=\"\";(e===void 0||typeof e==\"object\"&&e!==null&&Object.keys(e).length===0)&&(a+=\" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.\");var v=tr(i);v?a+=v:a+=he();var f;e===null?f=\"null\":V(e)?f=\"array\":e!==void 0&&e.$$typeof===c?(f=\"<\"+(h(e.type)||\"Unknown\")+\" />\",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<p.length;T++)Ee(p[T],e);Object.freeze&&Object.freeze(p)}else d(\"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\");else Ee(p,e)}return e===E?or(l):ar(l),l}}var ur=ir;z.Fragment=E,z.jsxDEV=ur})()});var we=q((Tr,Oe)=>{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>hr});var A=pr(we()),hr={title:\"React.js CLI\",description:\"A CLI React component to interact with Upstash Redis databases.\",date:\"2023-02-05\",url:\"https://upstash.com\",repository:\"upstash/react-ui\",published:!0};function Pe(s){let c=Object.assign({p:\"p\"},s.components);return(0,A.jsxDEV)(c.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-cb7470d6-8beb-40f7-8d67-d853d6fc6345.mdx\",lineNumber:11,columnNumber:1},this)}function gr(s={}){let{wrapper:c}=s.components||{};return c?(0,A.jsxDEV)(c,Object.assign({},s,{children:(0,A.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-cb7470d6-8beb-40f7-8d67-d853d6fc6345.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-cb7470d6-8beb-40f7-8d67-d853d6fc6345.mdx\"},this):Pe(s)}var mr=gr;return br(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;"
},
"_id": "projects/upstash-react-ui.mdx",
"_raw": {
"sourceFilePath": "projects/upstash-react-ui.mdx",
"sourceFileName": "upstash-react-ui.mdx",
"sourceFileDir": "projects",
"contentType": "mdx",
"flattenedPath": "projects/upstash-react-ui"
},
"type": "Project",
"path": "/projects/upstash-react-ui",
"slug": "upstash-react-ui"
},
"documentHash": "1679819598600",
"hasWarnings": false,
"documentTypeName": "Project"
},
"projects/upstash-redis.mdx": {
"document": {
"published": true,
"title": "@upstash/redis",
"description": "A fully typed Redis client built for Upstash Redis and HTTP, perfect for serverless and edge runtimes.",
"date": "2022-03-14T00:00:00.000Z",
"url": "https://upstash.com/redis",
"repository": "upstash/upstash-redis",
"body": {
"raw": "\n\n`@upstash/redis` is an HTTP/REST based Redis client for typescript, built on top\nof [Upstash REST API](https://docs.upstash.com/features/restapi).\n\nIt is the only connectionless (HTTP based) Redis client and designed for:\n\n- Serverless functions (AWS Lambda ...)\n- Cloudflare Workers (see\n [the example](https://github.com/upstash/upstash-redis/tree/main/examples/cloudflare-workers))\n- Fastly Compute@Edge (see\n [the example](https://github.com/upstash/upstash-redis/tree/main/examples/fastly))\n- Next.js, Jamstack ...\n- Client side web/mobile applications\n- WebAssembly\n- and other environments where HTTP is preferred over TCP.\n\nSee\n[the list of APIs](https://docs.upstash.com/features/restapi#rest---redis-api-compatibility)\nsupported.\n\n## Quick Start\n\n### Install\n\n#### Node.js\n\n```bash\nnpm install @upstash/redis\n```\n\n#### Deno\n\n```ts\nimport { Redis } from \"https://deno.land/x/upstash_redis/mod.ts\";\n```\n\n### Create database\n\nCreate a new redis database on [upstash](https://console.upstash.com/)\n\n## Basic Usage:\n\n```ts\nimport { Redis } from \"@upstash/redis\"\n\nconst redis = new Redis({\n url: <UPSTASH_REDIS_REST_URL>,\n token: <UPSTASH_REDIS_REST_TOKEN>,\n})\n\n// string\nawait redis.set('key', 'value');\nlet data = await redis.get('key');\nconsole.log(data)\n\nawait redis.set('key2', 'value2', {ex: 1});\n\n// sorted set\nawait redis.zadd('scores', { score: 1, member: 'team1' })\ndata = await redis.zrange('scores', 0, 100 )\nconsole.log(data)\n\n// list\nawait redis.lpush('elements', 'magnesium')\ndata = await redis.lrange('elements', 0, 100 )\nconsole.log(data)\n\n// hash\nawait redis.hset('people', {name: 'joe'})\ndata = await redis.hget('people', 'name' )\nconsole.log(data)\n\n// sets\nawait redis.sadd('animals', 'cat')\ndata = await redis.spop('animals', 1)\nconsole.log(data)\n```\n",
"code": "var Component=(()=>{var dn=Object.create;var O=Object.defineProperty;var ln=Object.getOwnPropertyDescriptor;var mn=Object.getOwnPropertyNames;var un=Object.getPrototypeOf,fn=Object.prototype.hasOwnProperty;var q=(l,e)=>()=>(e||l((e={exports:{}}).exports,e),e.exports),hn=(l,e)=>{for(var _ in e)O(l,_,{get:e[_],enumerable:!0})},ye=(l,e,_,x)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let k of mn(e))!fn.call(l,k)&&k!==_&&O(l,k,{get:()=>e[k],enumerable:!(x=ln(e,k))||x.enumerable});return l};var bn=(l,e,_)=>(_=l!=null?dn(un(l)):{},ye(e||!l||!l.__esModule?O(_,\"default\",{value:l,enumerable:!0}):_,l)),_n=l=>ye(O({},\"__esModule\",{value:!0}),l);var Ee=q((gn,ge)=>{ge.exports=React});var je=q(z=>{\"use strict\";(function(){\"use strict\";var l=Ee(),e=Symbol.for(\"react.element\"),_=Symbol.for(\"react.portal\"),x=Symbol.for(\"react.fragment\"),k=Symbol.for(\"react.strict_mode\"),G=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),X=Symbol.for(\"react.context\"),F=Symbol.for(\"react.forward_ref\"),B=Symbol.for(\"react.suspense\"),D=Symbol.for(\"react.suspense_list\"),R=Symbol.for(\"react.memo\"),A=Symbol.for(\"react.lazy\"),Re=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Ce=\"@@iterator\";function Te(r){if(r===null||typeof r!=\"object\")return null;var a=J&&r[J]||r[Ce];return typeof a==\"function\"?a:null}var g=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function f(r){{for(var a=arguments.length,c=new Array(a>1?a-1:0),t=1;t<a;t++)c[t-1]=arguments[t];we(\"error\",r,c)}}function we(r,a,c){{var t=g.ReactDebugCurrentFrame,d=t.getStackAddendum();d!==\"\"&&(a+=\"%s\",c=c.concat([d]));var i=c.map(function(s){return String(s)});i.unshift(\"Warning: \"+a),Function.prototype.apply.call(console[r],console,i)}}var Se=!1,Pe=!1,Oe=!1,Be=!1,De=!1,Q;Q=Symbol.for(\"react.module.reference\");function Ae(r){return!!(typeof r==\"string\"||typeof r==\"function\"||r===x||r===G||De||r===k||r===B||r===D||Be||r===Re||Se||Pe||Oe||typeof r==\"object\"&&r!==null&&(r.$$typeof===A||r.$$typeof===R||r.$$typeof===K||r.$$typeof===X||r.$$typeof===F||r.$$typeof===Q||r.getModuleId!==void 0))}function Ie(r,a,c){var t=r.displayName;if(t)return t;var d=a.displayName||a.name||\"\";return d!==\"\"?c+\"(\"+d+\")\":c}function Z(r){return r.displayName||\"Context\"}function p(r){if(r==null)return null;if(typeof r.tag==\"number\"&&f(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"),typeof r==\"function\")return r.displayName||r.name||null;if(typeof r==\"string\")return r;switch(r){case x:return\"Fragment\";case _:return\"Portal\";case G:return\"Profiler\";case k:return\"StrictMode\";case B:return\"Suspense\";case D:return\"SuspenseList\"}if(typeof r==\"object\")switch(r.$$typeof){case X:var a=r;return Z(a)+\".Consumer\";case K:var c=r;return Z(c._context)+\".Provider\";case F:return Ie(r,r.render,\"ForwardRef\");case R:var t=r.displayName||null;return t!==null?t:p(r.type)||\"Memo\";case A:{var d=r,i=d._payload,s=d._init;try{return p(s(i))}catch{return null}}}return null}var y=Object.assign,U=0,ee,ne,re,ae,ce,te,oe;function se(){}se.__reactDisabledLog=!0;function Le(){{if(U===0){ee=console.log,ne=console.info,re=console.warn,ae=console.error,ce=console.group,te=console.groupCollapsed,oe=console.groupEnd;var r={configurable:!0,enumerable:!0,value:se,writable:!0};Object.defineProperties(console,{info:r,log:r,warn:r,error:r,group:r,groupCollapsed:r,groupEnd:r})}U++}}function We(){{if(U--,U===0){var r={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:y({},r,{value:ee}),info:y({},r,{value:ne}),warn:y({},r,{value:re}),error:y({},r,{value:ae}),group:y({},r,{value:ce}),groupCollapsed:y({},r,{value:te}),groupEnd:y({},r,{value:oe})})}U<0&&f(\"disabledDepth fell below zero. This is a bug in React. Please file an issue.\")}}var I=g.ReactCurrentDispatcher,L;function C(r,a,c){{if(L===void 0)try{throw Error()}catch(d){var t=d.stack.trim().match(/\\n( *(at )?)/);L=t&&t[1]||\"\"}return`\n`+L+r}}var W=!1,T;{var Ye=typeof WeakMap==\"function\"?WeakMap:Map;T=new Ye}function de(r,a){if(!r||W)return\"\";{var c=T.get(r);if(c!==void 0)return c}var t;W=!0;var d=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var i;i=I.current,I.current=null,Le();try{if(a){var s=function(){throw Error()};if(Object.defineProperty(s.prototype,\"props\",{set:function(){throw Error()}}),typeof Reflect==\"object\"&&Reflect.construct){try{Reflect.construct(s,[])}catch(N){t=N}Reflect.construct(r,[],s)}else{try{s.call()}catch(N){t=N}r.call(s.prototype)}}else{try{throw Error()}catch(N){t=N}r()}}catch(N){if(N&&t&&typeof N.stack==\"string\"){for(var o=N.stack.split(`\n`),h=t.stack.split(`\n`),m=o.length-1,u=h.length-1;m>=1&&u>=0&&o[m]!==h[u];)u--;for(;m>=1&&u>=0;m--,u--)if(o[m]!==h[u]){if(m!==1||u!==1)do if(m--,u--,u<0||o[m]!==h[u]){var b=`\n`+o[m].replace(\" at new \",\" at \");return r.displayName&&b.includes(\"<anonymous>\")&&(b=b.replace(\"<anonymous>\",r.displayName)),typeof r==\"function\"&&T.set(r,b),b}while(m>=1&&u>=0);break}}}finally{W=!1,I.current=i,We(),Error.prepareStackTrace=d}var j=r?r.displayName||r.name:\"\",xe=j?C(j):\"\";return typeof r==\"function\"&&T.set(r,xe),xe}function $e(r,a,c){return de(r,!1)}function Me(r){var a=r.prototype;return!!(a&&a.isReactComponent)}function w(r,a,c){if(r==null)return\"\";if(typeof r==\"function\")return de(r,Me(r));if(typeof r==\"string\")return C(r);switch(r){case B:return C(\"Suspense\");case D:return C(\"SuspenseList\")}if(typeof r==\"object\")switch(r.$$typeof){case F:return $e(r.render);case R:return w(r.type,a,c);case A:{var t=r,d=t._payload,i=t._init;try{return w(i(d),a,c)}catch{}}}return\"\"}var S=Object.prototype.hasOwnProperty,ie={},le=g.ReactDebugCurrentFrame;function P(r){if(r){var a=r._owner,c=w(r.type,r._source,a?a.type:null);le.setExtraStackFrame(c)}else le.setExtraStackFrame(null)}function Ve(r,a,c,t,d){{var i=Function.call.bind(S);for(var s in r)if(i(r,s)){var o=void 0;try{if(typeof r[s]!=\"function\"){var h=Error((t||\"React class\")+\": \"+c+\" type `\"+s+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof r[s]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw h.name=\"Invariant Violation\",h}o=r[s](a,s,t,c,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(m){o=m}o&&!(o instanceof Error)&&(P(d),f(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",t||\"React class\",c,s,typeof o),P(null)),o instanceof Error&&!(o.message in ie)&&(ie[o.message]=!0,P(d),f(\"Failed %s type: %s\",c,o.message),P(null))}}}var He=Array.isArray;function Y(r){return He(r)}function qe(r){{var a=typeof Symbol==\"function\"&&Symbol.toStringTag,c=a&&r[Symbol.toStringTag]||r.constructor.name||\"Object\";return c}}function ze(r){try{return me(r),!1}catch{return!0}}function me(r){return\"\"+r}function ue(r){if(ze(r))return f(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(r)),me(r)}var v=g.ReactCurrentOwner,Ge={key:!0,ref:!0,__self:!0,__source:!0},fe,he,$;$={};function Ke(r){if(S.call(r,\"ref\")){var a=Object.getOwnPropertyDescriptor(r,\"ref\").get;if(a&&a.isReactWarning)return!1}return r.ref!==void 0}function Xe(r){if(S.call(r,\"key\")){var a=Object.getOwnPropertyDescriptor(r,\"key\").get;if(a&&a.isReactWarning)return!1}return r.key!==void 0}function Je(r,a){if(typeof r.ref==\"string\"&&v.current&&a&&v.current.stateNode!==a){var c=p(v.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(v.current.type),r.ref),$[c]=!0)}}function Qe(r,a){{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)\",a))};c.isReactWarning=!0,Object.defineProperty(r,\"key\",{get:c,configurable:!0})}}function Ze(r,a){{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)\",a))};c.isReactWarning=!0,Object.defineProperty(r,\"ref\",{get:c,configurable:!0})}}var en=function(r,a,c,t,d,i,s){var o={$$typeof:e,type:r,key:a,ref:c,props:s,_owner:i};return o._store={},Object.defineProperty(o._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(o,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:t}),Object.defineProperty(o,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:d}),Object.freeze&&(Object.freeze(o.props),Object.freeze(o)),o};function nn(r,a,c,t,d){{var i,s={},o=null,h=null;c!==void 0&&(ue(c),o=\"\"+c),Xe(a)&&(ue(a.key),o=\"\"+a.key),Ke(a)&&(h=a.ref,Je(a,d));for(i in a)S.call(a,i)&&!Ge.hasOwnProperty(i)&&(s[i]=a[i]);if(r&&r.defaultProps){var m=r.defaultProps;for(i in m)s[i]===void 0&&(s[i]=m[i])}if(o||h){var u=typeof r==\"function\"?r.displayName||r.name||\"Unknown\":r;o&&Qe(s,u),h&&Ze(s,u)}return en(r,o,h,d,t,v.current,s)}}var M=g.ReactCurrentOwner,be=g.ReactDebugCurrentFrame;function E(r){if(r){var a=r._owner,c=w(r.type,r._source,a?a.type:null);be.setExtraStackFrame(c)}else be.setExtraStackFrame(null)}var V;V=!1;function H(r){return typeof r==\"object\"&&r!==null&&r.$$typeof===e}function _e(){{if(M.current){var r=p(M.current.type);if(r)return`\n\nCheck the render method of \\``+r+\"`.\"}return\"\"}}function rn(r){{if(r!==void 0){var a=r.fileName.replace(/^.*[\\\\\\/]/,\"\"),c=r.lineNumber;return`\n\nCheck your code at `+a+\":\"+c+\".\"}return\"\"}}var pe={};function an(r){{var a=_e();if(!a){var c=typeof r==\"string\"?r:r.displayName||r.name;c&&(a=`\n\nCheck the top-level render call using <`+c+\">.\")}return a}}function Ne(r,a){{if(!r._store||r._store.validated||r.key!=null)return;r._store.validated=!0;var c=an(a);if(pe[c])return;pe[c]=!0;var t=\"\";r&&r._owner&&r._owner!==M.current&&(t=\" It was passed a child from \"+p(r._owner.type)+\".\"),E(r),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,t),E(null)}}function ke(r,a){{if(typeof r!=\"object\")return;if(Y(r))for(var c=0;c<r.length;c++){var t=r[c];H(t)&&Ne(t,a)}else if(H(r))r._store&&(r._store.validated=!0);else if(r){var d=Te(r);if(typeof d==\"function\"&&d!==r.entries)for(var i=d.call(r),s;!(s=i.next()).done;)H(s.value)&&Ne(s.value,a)}}}function cn(r){{var a=r.type;if(a==null||typeof a==\"string\")return;var c;if(typeof a==\"function\")c=a.propTypes;else if(typeof a==\"object\"&&(a.$$typeof===F||a.$$typeof===R))c=a.propTypes;else return;if(c){var t=p(a);Ve(c,r.props,\"prop\",t,r)}else if(a.PropTypes!==void 0&&!V){V=!0;var d=p(a);f(\"Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?\",d||\"Unknown\")}typeof a.getDefaultProps==\"function\"&&!a.getDefaultProps.isReactClassApproved&&f(\"getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.\")}}function tn(r){{for(var a=Object.keys(r.props),c=0;c<a.length;c++){var t=a[c];if(t!==\"children\"&&t!==\"key\"){E(r),f(\"Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.\",t),E(null);break}}r.ref!==null&&(E(r),f(\"Invalid attribute `ref` supplied to `React.Fragment`.\"),E(null))}}function on(r,a,c,t,d,i){{var s=Ae(r);if(!s){var o=\"\";(r===void 0||typeof r==\"object\"&&r!==null&&Object.keys(r).length===0)&&(o+=\" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.\");var h=rn(d);h?o+=h:o+=_e();var m;r===null?m=\"null\":Y(r)?m=\"array\":r!==void 0&&r.$$typeof===e?(m=\"<\"+(p(r.type)||\"Unknown\")+\" />\",o=\" Did you accidentally export a JSX literal instead of a component?\"):m=typeof r,f(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",m,o)}var u=nn(r,a,c,d,i);if(u==null)return u;if(s){var b=a.children;if(b!==void 0)if(t)if(Y(b)){for(var j=0;j<b.length;j++)ke(b[j],r);Object.freeze&&Object.freeze(b)}else f(\"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\");else ke(b,r)}return r===x?tn(u):cn(u),u}}var sn=on;z.Fragment=x,z.jsxDEV=sn})()});var ve=q((jn,Ue)=>{\"use strict\";Ue.exports=je()});var xn={};hn(xn,{default:()=>kn,frontmatter:()=>pn});var n=bn(ve()),pn={title:\"@upstash/redis\",description:\"A fully typed Redis client built for Upstash Redis and HTTP, perfect for serverless and edge runtimes.\",date:\"2022-03-14\",url:\"https://upstash.com/redis\",repository:\"upstash/upstash-redis\",published:!0};function Fe(l){let e=Object.assign({p:\"p\",code:\"code\",a:\"a\",ul:\"ul\",li:\"li\",h2:\"h2\",span:\"span\",h3:\"h3\",h4:\"h4\",div:\"div\",pre:\"pre\"},l.components);return(0,n.jsxDEV)(n.Fragment,{children:[(0,n.jsxDEV)(e.p,{children:[(0,n.jsxDEV)(e.code,{children:\"@upstash/redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:12,columnNumber:1},this),` is an HTTP/REST based Redis client for typescript, built on top\nof `,(0,n.jsxDEV)(e.a,{href:\"https://docs.upstash.com/features/restapi\",children:\"Upstash REST API\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:13,columnNumber:4},this),\".\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:\"It is the only connectionless (HTTP based) Redis client and designed for:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.ul,{children:[`\n`,(0,n.jsxDEV)(e.li,{children:\"Serverless functions (AWS Lambda ...)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:[`Cloudflare Workers (see\n`,(0,n.jsxDEV)(e.a,{href:\"https://github.com/upstash/upstash-redis/tree/main/examples/cloudflare-workers\",children:\"the example\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:19,columnNumber:3},this),\")\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:[`Fastly Compute@Edge (see\n`,(0,n.jsxDEV)(e.a,{href:\"https://github.com/upstash/upstash-redis/tree/main/examples/fastly\",children:\"the example\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:21,columnNumber:3},this),\")\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"Next.js, Jamstack ...\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:22,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"Client side web/mobile applications\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:23,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"WebAssembly\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:24,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.li,{children:\"and other environments where HTTP is preferred over TCP.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:25,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:[`See\n`,(0,n.jsxDEV)(e.a,{href:\"https://docs.upstash.com/features/restapi#rest---redis-api-compatibility\",children:\"the list of APIs\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:28,columnNumber:1},this),`\nsupported.`]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:27,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"quick-start\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#quick-start\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\"},this),\"Quick Start\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h3,{id:\"install\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#install\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\"},this),\"Install\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:33,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h4,{id:\"nodejs\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#nodejs\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\"},this),\"Node.js\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:35,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"npm\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:1,columnNumber:143},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"install\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:1,columnNumber:180},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:1,columnNumber:223},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"@upstash/redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:1,columnNumber:260},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:37,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h4,{id:\"deno\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#deno\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\"},this),\"Deno\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:41,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" { Redis } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:1,columnNumber:146},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:1,columnNumber:193},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:1,columnNumber:233},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"https://deno.land/x/upstash_redis/mod.ts\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:1,columnNumber:270},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\";\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:1,columnNumber:358},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:43,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h3,{id:\"create-database\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#create-database\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\"},this),\"Create database\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:47,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.p,{children:[\"Create a new redis database on \",(0,n.jsxDEV)(e.a,{href:\"https://console.upstash.com/\",children:\"upstash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:49,columnNumber:32},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:49,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.h2,{id:\"basic-usage\",children:[(0,n.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#basic-usage\",children:(0,n.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\"},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\"},this),\"Basic Usage:\"]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:51,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,n.jsxDEV)(e.pre,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:(0,n.jsxDEV)(e.code,{\"data-language\":\"ts\",\"data-theme\":\"default\",children:[(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"import\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:1,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" { Redis } \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:1,columnNumber:146},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"from\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:1,columnNumber:193},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:1,columnNumber:233},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"@upstash/redis\"'},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:1,columnNumber:270},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"const\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:3,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:3,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:3,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:3,columnNumber:139},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:3,columnNumber:176},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:3,columnNumber:213},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"new\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:3,columnNumber:250},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:3,columnNumber:289},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"Redis\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:3,columnNumber:326},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"({\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:3,columnNumber:367},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" url: <\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:4,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"UPSTASH_REDIS_REST_URL\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:4,columnNumber:67},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\">,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:4,columnNumber:125},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" token: <\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:5,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"UPSTASH_REDIS_REST_TOKEN\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:5,columnNumber:69},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\">,\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:5,columnNumber:129},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// string\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:9,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:9,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"set\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:9,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:9,columnNumber:143},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'key'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:9,columnNumber:180},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:9,columnNumber:229},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'value'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:9,columnNumber:267},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\");\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:9,columnNumber:318},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"let\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:10,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" data \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:10,columnNumber:59},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:10,columnNumber:101},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:10,columnNumber:138},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:10,columnNumber:175},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:10,columnNumber:216},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"get\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:10,columnNumber:259},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:10,columnNumber:298},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'key'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:10,columnNumber:335},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\");\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:10,columnNumber:384},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"console.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:11,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"log\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:11,columnNumber:64},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(data)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:11,columnNumber:103},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:13,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:13,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"set\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:13,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:13,columnNumber:143},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'key2'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:13,columnNumber:180},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:13,columnNumber:230},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'value2'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:13,columnNumber:268},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", {ex: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:13,columnNumber:320},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:13,columnNumber:363},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"});\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:13,columnNumber:400},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// sorted set\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:15,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:16,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:16,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"zadd\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:16,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:16,columnNumber:144},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'scores'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:16,columnNumber:181},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", { score: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:16,columnNumber:233},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:16,columnNumber:280},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", member: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:16,columnNumber:317},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'team1'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:16,columnNumber:363},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" })\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:16,columnNumber:414},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"data \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:17,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:17,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:17,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:17,columnNumber:135},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:17,columnNumber:176},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"zrange\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:17,columnNumber:219},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:17,columnNumber:261},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'scores'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:17,columnNumber:298},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:17,columnNumber:350},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"0\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:17,columnNumber:388},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:17,columnNumber:425},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"100\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:17,columnNumber:463},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" )\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:17,columnNumber:502},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"console.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:18,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"log\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:18,columnNumber:64},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(data)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:18,columnNumber:103},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// list\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:20,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:21,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:21,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"lpush\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:21,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:21,columnNumber:145},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'elements'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:21,columnNumber:182},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:21,columnNumber:236},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'magnesium'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:21,columnNumber:274},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\")\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:21,columnNumber:329},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:21,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"data \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:22,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:22,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:22,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:22,columnNumber:135},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:22,columnNumber:176},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"lrange\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:22,columnNumber:219},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:22,columnNumber:261},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'elements'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:22,columnNumber:298},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:22,columnNumber:352},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"0\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:22,columnNumber:390},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:22,columnNumber:427},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"100\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:22,columnNumber:465},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" )\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:22,columnNumber:504},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:22,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"console.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:23,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"log\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:23,columnNumber:64},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(data)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:23,columnNumber:103},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:23,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:24,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// hash\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:25,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:25,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:26,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:26,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"hset\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:26,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:26,columnNumber:144},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'people'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:26,columnNumber:181},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", {name: \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:26,columnNumber:233},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'joe'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:26,columnNumber:278},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"})\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:26,columnNumber:327},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:26,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"data \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:27,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:27,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:27,columnNumber:98},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:27,columnNumber:135},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:27,columnNumber:176},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"hget\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:27,columnNumber:219},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:27,columnNumber:259},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'people'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:27,columnNumber:296},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:27,columnNumber:348},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'name'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:27,columnNumber:386},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" )\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:27,columnNumber:436},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:27,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"console.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:28,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"log\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:28,columnNumber:64},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(data)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:28,columnNumber:103},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:28,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:29,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:(0,n.jsxDEV)(e.span,{style:{color:\"#6A737D\"},children:\"// sets\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:30,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:30,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:31,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:31,columnNumber:61},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"sadd\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:31,columnNumber:104},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:31,columnNumber:144},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'animals'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:31,columnNumber:181},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:31,columnNumber:234},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'cat'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:31,columnNumber:272},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\")\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:31,columnNumber:321},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"data \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:32,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:32,columnNumber:62},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:32,columnNumber:99},this),(0,n.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"await\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:32,columnNumber:136},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" redis.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:32,columnNumber:177},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"spop\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:32,columnNumber:220},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:32,columnNumber:260},this),(0,n.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"'animals'\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:32,columnNumber:297},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:32,columnNumber:350},this),(0,n.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"1\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:32,columnNumber:388},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\")\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:32,columnNumber:425},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:32,columnNumber:1},this),`\n`,(0,n.jsxDEV)(e.span,{className:\"line\",children:[(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"console.\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:33,columnNumber:20},this),(0,n.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"log\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:33,columnNumber:64},this),(0,n.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"(data)\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:33,columnNumber:103},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:33,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:53,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\",lineNumber:1,columnNumber:1},this)}function Nn(l={}){let{wrapper:e}=l.components||{};return e?(0,n.jsxDEV)(e,Object.assign({},l,{children:(0,n.jsxDEV)(Fe,l,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-93a1e3d2-f694-441c-8926-7ce5fc1adfb7.mdx\"},this):Fe(l)}var kn=Nn;return _n(xn);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;"
},
"_id": "projects/upstash-redis.mdx",
"_raw": {
"sourceFilePath": "projects/upstash-redis.mdx",
"sourceFileName": "upstash-redis.mdx",
"sourceFileDir": "projects",
"contentType": "mdx",
"flattenedPath": "projects/upstash-redis"
},
"type": "Project",
"path": "/projects/upstash-redis",
"slug": "upstash-redis"
},
"documentHash": "1679819604294",
"hasWarnings": false,
"documentTypeName": "Project"
},
"projects/upstash-web-analytics.mdx": {
"document": {
"published": true,
"title": "Upstash Web Analytics",
"description": "A library to record and analyse web page traffic and user behaviour",
"repository": "upstash/web-analytics",
"body": {
"raw": "\nTODO:",
"code": "var Component=(()=>{var sr=Object.create;var A=Object.defineProperty;var cr=Object.getOwnPropertyDescriptor;var lr=Object.getOwnPropertyNames;var fr=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty;var q=(s,c)=>()=>(c||s((c={exports:{}}).exports,c),c.exports),vr=(s,c)=>{for(var b in c)A(s,b,{get:c[b],enumerable:!0})},_e=(s,c,b,E)=>{if(c&&typeof c==\"object\"||typeof c==\"function\")for(let m of lr(c))!dr.call(s,m)&&m!==b&&A(s,m,{get:()=>c[m],enumerable:!(E=cr(c,m))||E.enumerable});return s};var pr=(s,c,b)=>(b=s!=null?sr(fr(s)):{},_e(c||!s||!s.__esModule?A(b,\"default\",{value:s,enumerable:!0}):b,s)),br=s=>_e(A({},\"__esModule\",{value:!0}),s);var Te=q((_r,Re)=>{Re.exports=React});var Ce=q(z=>{\"use strict\";(function(){\"use strict\";var s=Te(),c=Symbol.for(\"react.element\"),b=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),m=Symbol.for(\"react.strict_mode\"),X=Symbol.for(\"react.profiler\"),K=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),I=Symbol.for(\"react.suspense\"),W=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),Y=Symbol.for(\"react.lazy\"),Se=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,je=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=J&&e[J]||e[je];return typeof r==\"function\"?r:null}var _=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function d(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n<r;n++)t[n-1]=arguments[n];ke(\"error\",e,t)}}function ke(e,r,t){{var n=_.ReactDebugCurrentFrame,i=n.getStackAddendum();i!==\"\"&&(r+=\"%s\",t=t.concat([i]));var u=t.map(function(o){return String(o)});u.unshift(\"Warning: \"+r),Function.prototype.apply.call(console[e],console,u)}}var De=!1,Ae=!1,Fe=!1,Ie=!1,We=!1,Z;Z=Symbol.for(\"react.module.reference\");function Ye(e){return!!(typeof e==\"string\"||typeof e==\"function\"||e===E||e===X||We||e===m||e===I||e===W||Ie||e===Se||De||Ae||Fe||typeof e==\"object\"&&e!==null&&(e.$$typeof===Y||e.$$typeof===P||e.$$typeof===K||e.$$typeof===H||e.$$typeof===w||e.$$typeof===Z||e.getModuleId!==void 0))}function $e(e,r,t){var n=e.displayName;if(n)return n;var i=r.displayName||r.name||\"\";return i!==\"\"?t+\"(\"+i+\")\":t}function Q(e){return e.displayName||\"Context\"}function h(e){if(e==null)return null;if(typeof e.tag==\"number\"&&d(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"),typeof e==\"function\")return e.displayName||e.name||null;if(typeof e==\"string\")return e;switch(e){case E:return\"Fragment\";case b:return\"Portal\";case X:return\"Profiler\";case m:return\"StrictMode\";case I:return\"Suspense\";case W:return\"SuspenseList\"}if(typeof e==\"object\")switch(e.$$typeof){case H:var r=e;return Q(r)+\".Consumer\";case K:var t=e;return Q(t._context)+\".Provider\";case w:return $e(e,e.render,\"ForwardRef\");case P:var n=e.displayName||null;return n!==null?n:h(e.type)||\"Memo\";case Y:{var i=e,u=i._payload,o=i._init;try{return h(o(u))}catch{return null}}}return null}var y=Object.assign,C=0,ee,re,te,ne,ae,oe,ie;function ue(){}ue.__reactDisabledLog=!0;function Ne(){{if(C===0){ee=console.log,re=console.info,te=console.warn,ne=console.error,ae=console.group,oe=console.groupCollapsed,ie=console.groupEnd;var e={configurable:!0,enumerable:!0,value:ue,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}C++}}function Me(){{if(C--,C===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:y({},e,{value:ee}),info:y({},e,{value:re}),warn:y({},e,{value:te}),error:y({},e,{value:ne}),group:y({},e,{value:ae}),groupCollapsed:y({},e,{value:oe}),groupEnd:y({},e,{value:ie})})}C<0&&d(\"disabledDepth fell below zero. This is a bug in React. Please file an issue.\")}}var $=_.ReactCurrentDispatcher,N;function S(e,r,t){{if(N===void 0)try{throw Error()}catch(i){var n=i.stack.trim().match(/\\n( *(at )?)/);N=n&&n[1]||\"\"}return`\n`+N+e}}var M=!1,j;{var Ve=typeof WeakMap==\"function\"?WeakMap:Map;j=new Ve}function se(e,r){if(!e||M)return\"\";{var t=j.get(e);if(t!==void 0)return t}var n;M=!0;var i=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var u;u=$.current,$.current=null,Ne();try{if(r){var o=function(){throw Error()};if(Object.defineProperty(o.prototype,\"props\",{set:function(){throw Error()}}),typeof Reflect==\"object\"&&Reflect.construct){try{Reflect.construct(o,[])}catch(g){n=g}Reflect.construct(e,[],o)}else{try{o.call()}catch(g){n=g}e.call(o.prototype)}}else{try{throw Error()}catch(g){n=g}e()}}catch(g){if(g&&n&&typeof g.stack==\"string\"){for(var a=g.stack.split(`\n`),v=n.stack.split(`\n`),l=a.length-1,f=v.length-1;l>=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(\"<anonymous>\")&&(p=p.replace(\"<anonymous>\",e.displayName)),typeof e==\"function\"&&j.set(e,p),p}while(l>=1&&f>=0);break}}}finally{M=!1,$.current=u,Me(),Error.prepareStackTrace=i}var T=e?e.displayName||e.name:\"\",ye=T?S(T):\"\";return typeof e==\"function\"&&j.set(e,ye),ye}function Ue(e,r,t){return se(e,!1)}function Le(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function x(e,r,t){if(e==null)return\"\";if(typeof e==\"function\")return se(e,Le(e));if(typeof e==\"string\")return S(e);switch(e){case I:return S(\"Suspense\");case W:return S(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case w:return Ue(e.render);case P:return x(e.type,r,t);case Y:{var n=e,i=n._payload,u=n._init;try{return x(u(i),r,t)}catch{}}}return\"\"}var k=Object.prototype.hasOwnProperty,ce={},le=_.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);le.setExtraStackFrame(t)}else le.setExtraStackFrame(null)}function Be(e,r,t,n,i){{var u=Function.call.bind(k);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!=\"function\"){var v=Error((n||\"React class\")+\": \"+t+\" type `\"+o+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[o]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw v.name=\"Invariant Violation\",v}a=e[o](r,o,n,t,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(l){a=l}a&&!(a instanceof Error)&&(D(i),d(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",n||\"React class\",t,o,typeof a),D(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,D(i),d(\"Failed %s type: %s\",t,a.message),D(null))}}}var Ge=Array.isArray;function V(e){return Ge(e)}function qe(e){{var r=typeof Symbol==\"function\"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return t}}function ze(e){try{return fe(e),!1}catch{return!0}}function fe(e){return\"\"+e}function de(e){if(ze(e))return d(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",qe(e)),fe(e)}var O=_.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},ve,pe,U;U={};function Ke(e){if(k.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function He(e){if(k.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Je(e,r){if(typeof e.ref==\"string\"&&O.current&&r&&O.current.stateNode!==r){var t=h(O.current.type);U[t]||(d('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',h(O.current.type),e.ref),U[t]=!0)}}function Ze(e,r){{var t=function(){ve||(ve=!0,d(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}}function Qe(e,r){{var t=function(){pe||(pe=!0,d(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}}var er=function(e,r,t,n,i,u,o){var a={$$typeof:c,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function rr(e,r,t,n,i){{var u,o={},a=null,v=null;t!==void 0&&(de(t),a=\"\"+t),He(r)&&(de(r.key),a=\"\"+r.key),Ke(r)&&(v=r.ref,Je(r,i));for(u in r)k.call(r,u)&&!Xe.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var l=e.defaultProps;for(u in l)o[u]===void 0&&(o[u]=l[u])}if(a||v){var f=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;a&&Ze(o,f),v&&Qe(o,f)}return er(e,a,v,i,n,O.current,o)}}var L=_.ReactCurrentOwner,be=_.ReactDebugCurrentFrame;function R(e){if(e){var r=e._owner,t=x(e.type,e._source,r?r.type:null);be.setExtraStackFrame(t)}else be.setExtraStackFrame(null)}var B;B=!1;function G(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===c}function he(){{if(L.current){var e=h(L.current.type);if(e)return`\n\nCheck the render method of \\``+e+\"`.\"}return\"\"}}function tr(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),t=e.lineNumber;return`\n\nCheck your code at `+r+\":\"+t+\".\"}return\"\"}}var ge={};function nr(e){{var r=he();if(!r){var t=typeof e==\"string\"?e:e.displayName||e.name;t&&(r=`\n\nCheck the top-level render call using <`+t+\">.\")}return r}}function me(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=nr(r);if(ge[t])return;ge[t]=!0;var n=\"\";e&&e._owner&&e._owner!==L.current&&(n=\" It was passed a child from \"+h(e._owner.type)+\".\"),R(e),d('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),R(null)}}function Ee(e,r){{if(typeof e!=\"object\")return;if(V(e))for(var t=0;t<e.length;t++){var n=e[t];G(n)&&me(n,r)}else if(G(e))e._store&&(e._store.validated=!0);else if(e){var i=xe(e);if(typeof i==\"function\"&&i!==e.entries)for(var u=i.call(e),o;!(o=u.next()).done;)G(o.value)&&me(o.value,r)}}}function ar(e){{var r=e.type;if(r==null||typeof r==\"string\")return;var t;if(typeof r==\"function\")t=r.propTypes;else if(typeof r==\"object\"&&(r.$$typeof===w||r.$$typeof===P))t=r.propTypes;else return;if(t){var n=h(r);Be(t,e.props,\"prop\",n,e)}else if(r.PropTypes!==void 0&&!B){B=!0;var i=h(r);d(\"Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?\",i||\"Unknown\")}typeof r.getDefaultProps==\"function\"&&!r.getDefaultProps.isReactClassApproved&&d(\"getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.\")}}function or(e){{for(var r=Object.keys(e.props),t=0;t<r.length;t++){var n=r[t];if(n!==\"children\"&&n!==\"key\"){R(e),d(\"Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.\",n),R(null);break}}e.ref!==null&&(R(e),d(\"Invalid attribute `ref` supplied to `React.Fragment`.\"),R(null))}}function ir(e,r,t,n,i,u){{var o=Ye(e);if(!o){var a=\"\";(e===void 0||typeof e==\"object\"&&e!==null&&Object.keys(e).length===0)&&(a+=\" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.\");var v=tr(i);v?a+=v:a+=he();var l;e===null?l=\"null\":V(e)?l=\"array\":e!==void 0&&e.$$typeof===c?(l=\"<\"+(h(e.type)||\"Unknown\")+\" />\",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<p.length;T++)Ee(p[T],e);Object.freeze&&Object.freeze(p)}else d(\"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\");else Ee(p,e)}return e===E?or(f):ar(f),f}}var ur=ir;z.Fragment=E,z.jsxDEV=ur})()});var we=q((Tr,Oe)=>{\"use strict\";Oe.exports=Ce()});var Er={};vr(Er,{default:()=>mr,frontmatter:()=>hr});var F=pr(we()),hr={title:\"Upstash Web Analytics\",description:\"A library to record and analyse web page traffic and user behaviour\",repository:\"upstash/web-analytics\",published:!0};function Pe(s){let c=Object.assign({p:\"p\"},s.components);return(0,F.jsxDEV)(c.p,{children:\"TODO:\"},void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-6692e122-da3d-46ed-b1b6-14cd52b3c074.mdx\",lineNumber:8,columnNumber:1},this)}function gr(s={}){let{wrapper:c}=s.components||{};return c?(0,F.jsxDEV)(c,Object.assign({},s,{children:(0,F.jsxDEV)(Pe,s,void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-6692e122-da3d-46ed-b1b6-14cd52b3c074.mdx\"},this)}),void 0,!1,{fileName:\"/Users/andreasthomas/github/chronark/chronark.com/content/projects/_mdx_bundler_entry_point-6692e122-da3d-46ed-b1b6-14cd52b3c074.mdx\"},this):Pe(s)}var mr=gr;return br(Er);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;"
},
"_id": "projects/upstash-web-analytics.mdx",
"_raw": {
"sourceFilePath": "projects/upstash-web-analytics.mdx",
"sourceFileName": "upstash-web-analytics.mdx",
"sourceFileDir": "projects",
"contentType": "mdx",
"flattenedPath": "projects/upstash-web-analytics"
},
"type": "Project",
"path": "/projects/upstash-web-analytics",
"slug": "upstash-web-analytics"
},
"documentHash": "1679820082861",
"hasWarnings": false,
"documentTypeName": "Project"
}
}
}