diff --git a/_app/immutable/chunks/10 questions to evaluate a startup idea.CgztSJf-.js b/_app/immutable/chunks/10 questions to evaluate a startup idea.CbPhcJNk.js similarity index 99% rename from _app/immutable/chunks/10 questions to evaluate a startup idea.CgztSJf-.js rename to _app/immutable/chunks/10 questions to evaluate a startup idea.CbPhcJNk.js index 34f6699249..a0d5006a6d 100644 --- a/_app/immutable/chunks/10 questions to evaluate a startup idea.CgztSJf-.js +++ b/_app/immutable/chunks/10 questions to evaluate a startup idea.CbPhcJNk.js @@ -1 +1 @@ -import{s as Fe,p as re,q as Ie,e as n,a as r,c as s,m as o,g as u,o as m,i,n as Se,f as a}from"./scheduler.ewBkyc9q.js";import{S as Ae,i as ze,c as Ge,a as Je,m as We,t as Ye,b as Ze,d as Ee}from"./index.DpmaPz1F.js";import{g as Ne,a as $e}from"./spread.CgU5AtxT.js";import{M as Oe}from"./MDSveXNoteLayout.Bx5vQYjx.js";function Re(G){let l,y='This list comes from YC Group Partner Jared Friedman in his Startup School video on How to Get and Evaluate Startup Ideas.',c,h,d=' 1. Do you have founder/market fit?',p,f,ue="This might be the most important criteria. It’s a question of if you are the right team to be working on this idea. Do you know the industry you’re building in? Do you have the skills needed to execute?",J,L,de="When searching for a startup idea, you should scope the exercise to a good startup idea for your team. Focus on ideas that are connected to domains you and your co-founders are going to excel in.",W,b,he=' 2. How big is the market?',Y,M,pe="For a startup, you generally need a $1bn+ market. There are two common ways to get there:",Z,g,ce="
<script lang="ts">
+import{s as W,p as O,q as Z,e as h,a as c,H as L,u as $,c as y,m as u,g as d,v as H,i as e,n as Y,f as t}from"./scheduler.ewBkyc9q.js";import{S as ss,i as as,c as ns,a as ls,m as es,t as ts,b as os,d as is}from"./index.DpmaPz1F.js";import{g as ps,a as J}from"./spread.CgU5AtxT.js";import{M as rs}from"./MDSveXNoteLayout.Dbh0E4KQ.js";function ks(g){let a,k='TypeScript Playground is an online tool to interactive with TypeScript. It’s a great way to test out small snippets, share repros, and experiment with the language as it is portable and requires no setup. Recently, I learned about another amazing feature - it’s possible to Dynamically generate TypeScript Playground links for any TypeScript code! Technical writing should Make example code interactive, and this is an excellent way to do it.',p,i,l="Once I’ve got my TS playground link generated, all that’s left is to put the link on the page. Easy!",o,r,q="I already built a copy button for my code blocks, which makes this even easier. I modified that code to render TS playground links instead of copy buttons. This Svelte component renders a link as a small square button:",E,C,V=`<script lang="ts">
import { Icon } from '@steeze-ui/svelte-icon';
import { ArrowTopRightOnSquare } from '@steeze-ui/heroicons';
diff --git a/_app/immutable/chunks/Adding users to new teams with Lucia auth and Prisma.BDKAgZrZ.js b/_app/immutable/chunks/Adding users to new teams with Lucia auth and Prisma.dMAvioWp.js
similarity index 99%
rename from _app/immutable/chunks/Adding users to new teams with Lucia auth and Prisma.BDKAgZrZ.js
rename to _app/immutable/chunks/Adding users to new teams with Lucia auth and Prisma.dMAvioWp.js
index d4ed06a0f5..6b45ad52e0 100644
--- a/_app/immutable/chunks/Adding users to new teams with Lucia auth and Prisma.BDKAgZrZ.js
+++ b/_app/immutable/chunks/Adding users to new teams with Lucia auth and Prisma.dMAvioWp.js
@@ -1,4 +1,4 @@
-import{s as il,p as li,q as fn,e as t,a as n,H as p,u as k,c as r,m as o,g as l,v as c,o as y,i as e,n as nl,f as i}from"./scheduler.ewBkyc9q.js";import{S as ll,i as tl,c as rl,a as ol,m as pl,t as kl,b as cl,d as dl}from"./index.DpmaPz1F.js";import{g as hl,a as gn}from"./spread.CgU5AtxT.js";import{M as yl}from"./MDSveXNoteLayout.Bx5vQYjx.js";function Al(Ls){let d,B='Recently I’ve been building Doc Duck, a user feedback platform. I wanted to add support for teams so that a customer can invite their coworkers to also participate. Multiple people from a team/company wanting access to the software is a really common scenario in B2B. For Doc Duck, I anticipate that an analyst or PM will want to view data in the dashboard and share it with their team. Plus they will want an engineer to do the integration work. In this post, I’m going to explain how I added support for teams and wired up that information in the auth library I’m using, Lucia-auth so that when accessing a user’s session I also get the information about teams they are on.',D,A,h='Updating the database with tables for auth and teams',u,m,ti='First, I needed to add the relevant tables and fields to my database to support auth & teams. I’m using prisma
, so the following is what I’ve added to my schema.prisma
file to support the fields needed for Lucia and to add support for teams.',Oa,Ms,wn=`// This describes a user's role in a team.
+import{s as il,p as li,q as fn,e as t,a as n,H as p,u as k,c as r,m as o,g as l,v as c,o as y,i as e,n as nl,f as i}from"./scheduler.ewBkyc9q.js";import{S as ll,i as tl,c as rl,a as ol,m as pl,t as kl,b as cl,d as dl}from"./index.DpmaPz1F.js";import{g as hl,a as gn}from"./spread.CgU5AtxT.js";import{M as yl}from"./MDSveXNoteLayout.Dbh0E4KQ.js";function Al(Ls){let d,B='Recently I’ve been building Doc Duck, a user feedback platform. I wanted to add support for teams so that a customer can invite their coworkers to also participate. Multiple people from a team/company wanting access to the software is a really common scenario in B2B. For Doc Duck, I anticipate that an analyst or PM will want to view data in the dashboard and share it with their team. Plus they will want an engineer to do the integration work. In this post, I’m going to explain how I added support for teams and wired up that information in the auth library I’m using, Lucia-auth so that when accessing a user’s session I also get the information about teams they are on.',D,A,h='Updating the database with tables for auth and teams',u,m,ti='First, I needed to add the relevant tables and fields to my database to support auth & teams. I’m using prisma
, so the following is what I’ve added to my schema.prisma
file to support the fields needed for Lucia and to add support for teams.',Oa,Ms,wn=`// This describes a user's role in a team.
enum Role {
admin
user
diff --git a/_app/immutable/chunks/Beautifully render markdown code blocks in Svelte.mHUdLjzS.js b/_app/immutable/chunks/Beautifully render markdown code blocks in Svelte.DjOORdUi.js
similarity index 99%
rename from _app/immutable/chunks/Beautifully render markdown code blocks in Svelte.mHUdLjzS.js
rename to _app/immutable/chunks/Beautifully render markdown code blocks in Svelte.DjOORdUi.js
index 4927814e85..1fb5e4768f 100644
--- a/_app/immutable/chunks/Beautifully render markdown code blocks in Svelte.mHUdLjzS.js
+++ b/_app/immutable/chunks/Beautifully render markdown code blocks in Svelte.DjOORdUi.js
@@ -1,4 +1,4 @@
-import{s as _s,p as ns,q as Ds,e as r,a as t,H,u as S,c as p,m as k,g as o,v as M,o as es,i as e,n as bs,f as n}from"./scheduler.ewBkyc9q.js";import{S as Ts,i as Hs,c as Ss,a as Ms,m as Ls,t as js,b as Es,d as Fs}from"./index.DpmaPz1F.js";import{g as Is,a as us}from"./spread.CgU5AtxT.js";import{M as Ps}from"./MDSveXNoteLayout.Bx5vQYjx.js";function qs(T){let i,f="I love the craft of building software. It amazes me that I can write something and have computers reliably and consistently do what I told it to. Add a few more clicks and I can make it instantly available to anyone, anywhere on the planet, so long as they have an internet connected device.",d,h,l="When I code something particularly interesting I want to share how I did it. Teaching is a valuable part of my own learning process, and it’s rewarding to help other people get excited about building. Sharing code is a critical part of that, and this note is about how I make the code I share look great!",c,y,is='To start with, it’s helpful to understand a bit about my pipeline for getting from raw markdown code blocks to a rendered page on allandeutsch.com.',G,A,ls=`mdsvex is a svelte preprocessor that uses remark to process raw markdown and remark-rehype to transform it to HTML mdsvex passes the markdown code blocks to a code highlighter to provide syntax highlighting A meta
string in the code fence of code blocks is used to pass options to twoslash; I use fenceparser
to parse the code fence I wrote a highlighter that uses shiki to render code in light & dark themes
+import{s as _s,p as ns,q as Ds,e as r,a as t,H,u as S,c as p,m as k,g as o,v as M,o as es,i as e,n as bs,f as n}from"./scheduler.ewBkyc9q.js";import{S as Ts,i as Hs,c as Ss,a as Ms,m as Ls,t as js,b as Es,d as Fs}from"./index.DpmaPz1F.js";import{g as Is,a as us}from"./spread.CgU5AtxT.js";import{M as Ps}from"./MDSveXNoteLayout.Dbh0E4KQ.js";function qs(T){let i,f="I love the craft of building software. It amazes me that I can write something and have computers reliably and consistently do what I told it to. Add a few more clicks and I can make it instantly available to anyone, anywhere on the planet, so long as they have an internet connected device.",d,h,l="When I code something particularly interesting I want to share how I did it. Teaching is a valuable part of my own learning process, and it’s rewarding to help other people get excited about building. Sharing code is a critical part of that, and this note is about how I make the code I share look great!",c,y,is='To start with, it’s helpful to understand a bit about my pipeline for getting from raw markdown code blocks to a rendered page on allandeutsch.com.',G,A,ls=` mdsvex is a svelte preprocessor that uses remark to process raw markdown and remark-rehype to transform it to HTML mdsvex passes the markdown code blocks to a code highlighter to provide syntax highlighting A meta
string in the code fence of code blocks is used to pass options to twoslash; I use fenceparser
to parse the code fence I wrote a highlighter that uses shiki to render code in light & dark themes
- It uses @shikijs/twoslash to provide type annotations on typescript code
A CSS media query styles the code using the light or dark theme based on the user’s preference `,J,m,ts='Installing the dependencies',N,g,os="My site is built using “Static Site Generation” (SSG), a technique which compiles my source into static HTML, CSS, and JS files at build time so the deployment can be delivered to visitors really efficiently via CDN since no logic needs to run on each request. This approach means I can do the highlighting at build time rather than runtime, and all of the tools I listed above can be included as dev dependencies. to install them:",R,L,gs='npm install --save-dev @shikijs/twoslash shiki mdsvex fenceparser
',j,E,vs=' ',F,D,rs='Configuring mdsvex',Z,v,ps='One important thing to know about mdsvex is that it is a svelte preprocessor. This is important to note: the preprocessor code doesn’t get preprocessed because it runs before the compiler. For now, that means it cannot use TypeScript because it would need to be compiled to JS first and that doesn’t happen for reasons. Hopefully that will change in the future.',U,B,ks="What this means practically is that the mdsvex config can’t be implemented in TypeScript: it must be javascript. Here’s how I configured mine to highlight code blocks!",K,I,Bs=`import { defineMDSveXConfig as defineConfig, escapeSvelte } from 'mdsvex';
import { codeToHtml } from 'shiki';
import { transformerTwoslash } from '@shikijs/twoslash';
diff --git a/_app/immutable/chunks/Branded Types.CL6b9hEC.js b/_app/immutable/chunks/Branded Types.DGDRa01-.js
similarity index 99%
rename from _app/immutable/chunks/Branded Types.CL6b9hEC.js
rename to _app/immutable/chunks/Branded Types.DGDRa01-.js
index 2d70c19a01..f23e92168a 100644
--- a/_app/immutable/chunks/Branded Types.CL6b9hEC.js
+++ b/_app/immutable/chunks/Branded Types.DGDRa01-.js
@@ -1,4 +1,4 @@
-import{s as La,p as Gs,q as Ba,e as p,a as e,H as c,u as d,c as i,m as r,g as o,v as h,i as n,n as Ia,f as l}from"./scheduler.ewBkyc9q.js";import{S as Sa,i as Ma,c as qa,a as Qa,m as Ya,t as Na,b as Ka,d as ja}from"./index.DpmaPz1F.js";import{g as Ga,a as Da}from"./spread.CgU5AtxT.js";import{M as Ja}from"./MDSveXNoteLayout.Bx5vQYjx.js";function Oa(G){let t,B="Typescript is built on set theory, which is a cool feature for a language. it makes it possible to smash types together gracefully, like this:",A,D,k=`type type User = {
+import{s as La,p as Gs,q as Ba,e as p,a as e,H as c,u as d,c as i,m as r,g as o,v as h,i as n,n as Ia,f as l}from"./scheduler.ewBkyc9q.js";import{S as Sa,i as Ma,c as qa,a as Qa,m as Ya,t as Na,b as Ka,d as ja}from"./index.DpmaPz1F.js";import{g as Ga,a as Da}from"./spread.CgU5AtxT.js";import{M as Ja}from"./MDSveXNoteLayout.Dbh0E4KQ.js";function Oa(G){let t,B="Typescript is built on set theory, which is a cool feature for a language. it makes it possible to smash types together gracefully, like this:",A,D,k=`type type User = {
email: string;
password: string;
}
User = {
diff --git a/_app/immutable/chunks/Build infrastructure after not having it becomes painful.BNitDpYR.js b/_app/immutable/chunks/Build infrastructure after not having it becomes painful.CvmUycDI.js
similarity index 97%
rename from _app/immutable/chunks/Build infrastructure after not having it becomes painful.BNitDpYR.js
rename to _app/immutable/chunks/Build infrastructure after not having it becomes painful.CvmUycDI.js
index 56e2b1a351..2ca4bc9882 100644
--- a/_app/immutable/chunks/Build infrastructure after not having it becomes painful.BNitDpYR.js
+++ b/_app/immutable/chunks/Build infrastructure after not having it becomes painful.CvmUycDI.js
@@ -1 +1 @@
-import{s as $,p as b,q as w,e as d,a as g,c as _,m as h,g as v,i as c,n as k,f}from"./scheduler.ewBkyc9q.js";import{S as L,i as M,c as B,a as H,m as W,t as P,b as S,d as j}from"./index.DpmaPz1F.js";import{g as q,a as T}from"./spread.CgU5AtxT.js";import{M as Z}from"./MDSveXNoteLayout.Bx5vQYjx.js";function A(m){let t,l="When starting something new, it can be tempting to build infrastructure and supporting pieces early on. That infrastructure - once built - can reduce the friction of the activity. There are a few problems with doing so too early though:",s,i,e="Building infrastructure for an activity is time taken away from actually doing the activity Without some experience doing the activity, it’s hard to determine what infrastructure is truly valuable Building infrastructure isn’t progress, whereas doing the activity is The activity may not be continued long term, and the infrastructure is unlikely to be a worthwhile investment in the short term ",n,r,y="When lack of infrastructure becomes painful, it creates clarity about what problems the infrastructure needs to solve.",p,o,x="Once it becomes clear than an activity is going to continue, Automation unlocks progressively more meaningful problems.";return{c(){t=d("p"),t.textContent=l,s=g(),i=d("ul"),i.innerHTML=e,n=g(),r=d("p"),r.textContent=y,p=g(),o=d("p"),o.innerHTML=x},l(a){t=_(a,"P",{"data-svelte-h":!0}),h(t)!=="svelte-gcu0n6"&&(t.textContent=l),s=v(a),i=_(a,"UL",{"data-svelte-h":!0}),h(i)!=="svelte-16rulgd"&&(i.innerHTML=e),n=v(a),r=_(a,"P",{"data-svelte-h":!0}),h(r)!=="svelte-1agja4r"&&(r.textContent=y),p=v(a),o=_(a,"P",{"data-svelte-h":!0}),h(o)!=="svelte-go18a"&&(o.innerHTML=x)},m(a,u){c(a,t,u),c(a,s,u),c(a,i,u),c(a,n,u),c(a,r,u),c(a,p,u),c(a,o,u)},p:k,d(a){a&&(f(t),f(s),f(i),f(n),f(r),f(p),f(o))}}}function D(m){let t,l;const s=[m[0],C];let i={$$slots:{default:[A]},$$scope:{ctx:m}};for(let e=0;e{l(0,t=b(b({},t),w(s)))},t=w(t),[t]}class E extends L{constructor(t){super(),M(this,t,N,D,$,{})}}export{E as default,C as metadata};
+import{s as $,p as b,q as w,e as d,a as g,c as _,m as h,g as v,i as c,n as k,f}from"./scheduler.ewBkyc9q.js";import{S as L,i as M,c as B,a as H,m as W,t as P,b as S,d as j}from"./index.DpmaPz1F.js";import{g as q,a as T}from"./spread.CgU5AtxT.js";import{M as Z}from"./MDSveXNoteLayout.Dbh0E4KQ.js";function A(m){let t,l="When starting something new, it can be tempting to build infrastructure and supporting pieces early on. That infrastructure - once built - can reduce the friction of the activity. There are a few problems with doing so too early though:",s,i,e="Building infrastructure for an activity is time taken away from actually doing the activity Without some experience doing the activity, it’s hard to determine what infrastructure is truly valuable Building infrastructure isn’t progress, whereas doing the activity is The activity may not be continued long term, and the infrastructure is unlikely to be a worthwhile investment in the short term ",n,r,y="When lack of infrastructure becomes painful, it creates clarity about what problems the infrastructure needs to solve.",p,o,x="Once it becomes clear than an activity is going to continue, Automation unlocks progressively more meaningful problems.";return{c(){t=d("p"),t.textContent=l,s=g(),i=d("ul"),i.innerHTML=e,n=g(),r=d("p"),r.textContent=y,p=g(),o=d("p"),o.innerHTML=x},l(a){t=_(a,"P",{"data-svelte-h":!0}),h(t)!=="svelte-gcu0n6"&&(t.textContent=l),s=v(a),i=_(a,"UL",{"data-svelte-h":!0}),h(i)!=="svelte-16rulgd"&&(i.innerHTML=e),n=v(a),r=_(a,"P",{"data-svelte-h":!0}),h(r)!=="svelte-1agja4r"&&(r.textContent=y),p=v(a),o=_(a,"P",{"data-svelte-h":!0}),h(o)!=="svelte-go18a"&&(o.innerHTML=x)},m(a,u){c(a,t,u),c(a,s,u),c(a,i,u),c(a,n,u),c(a,r,u),c(a,p,u),c(a,o,u)},p:k,d(a){a&&(f(t),f(s),f(i),f(n),f(r),f(p),f(o))}}}function D(m){let t,l;const s=[m[0],C];let i={$$slots:{default:[A]},$$scope:{ctx:m}};for(let e=0;e{l(0,t=b(b({},t),w(s)))},t=w(t),[t]}class E extends L{constructor(t){super(),M(this,t,N,D,$,{})}}export{E as default,C as metadata};
diff --git a/_app/immutable/chunks/Classy coding - JavaScript OOP through the ages.d2kAFBeU.js b/_app/immutable/chunks/Classy coding - JavaScript OOP through the ages.DRJiKFc3.js
similarity index 99%
rename from _app/immutable/chunks/Classy coding - JavaScript OOP through the ages.d2kAFBeU.js
rename to _app/immutable/chunks/Classy coding - JavaScript OOP through the ages.DRJiKFc3.js
index 4801b6ba8d..03588cfff8 100644
--- a/_app/immutable/chunks/Classy coding - JavaScript OOP through the ages.d2kAFBeU.js
+++ b/_app/immutable/chunks/Classy coding - JavaScript OOP through the ages.DRJiKFc3.js
@@ -1,4 +1,4 @@
-import{s as pl,p as Yt,q as _i,e as l,a as n,H as p,u as c,c as o,m as r,g as i,v as h,o as C,i as a,n as cl,f as t}from"./scheduler.ewBkyc9q.js";import{S as hl,i as dl,c as kl,a as yl,m as ul,t as fl,b as Al,d as ml}from"./index.DpmaPz1F.js";import{g as wl,a as bi}from"./spread.CgU5AtxT.js";import{M as Bl}from"./MDSveXNoteLayout.Bx5vQYjx.js";function vl(Us){let d,m="This blog post was originally presented at SeattleJS in August 2024.",f,y,k='Constructing a class in JavaScript',u,A,Nt="Object-Oriented Programming (OOP) has been around for a long time and in many languages. JavaScript is no exception to that, which should come as no surprise to anyone using JS today. It hasn’t always been a first-class paradigm in the language, though.",ua,x,Wt="Let’s embark on a journey to learn about how OOP has been done throughout JavaScript’s history, with our destination set on understanding how we should do it today and what all the modern syntax is doing for us under the hood.",fa,w,Gt='The prototype chain',Aa,T,Zt="Imagine a classic OOP problem - you have a bunch of objects that share an “is a” relationship. This “is a” relationship is typically used to explain when multiple objects should share a “class” type. I’ll use rectangles to keep it easy. So we have a bunch of objects, each of which “is a” rectangle - how do we represent that so and give each rectangle instance the interface a rectangle class should have?",ma,L,Ut="To start, let’s make a rectangle instance. Write or paste this code into your browser console to make one:",wa,Ks,xi=`let rect1 = {width: 4, height: 5};
+import{s as pl,p as Yt,q as _i,e as l,a as n,H as p,u as c,c as o,m as r,g as i,v as h,o as C,i as a,n as cl,f as t}from"./scheduler.ewBkyc9q.js";import{S as hl,i as dl,c as kl,a as yl,m as ul,t as fl,b as Al,d as ml}from"./index.DpmaPz1F.js";import{g as wl,a as bi}from"./spread.CgU5AtxT.js";import{M as Bl}from"./MDSveXNoteLayout.Dbh0E4KQ.js";function vl(Us){let d,m="This blog post was originally presented at SeattleJS in August 2024.",f,y,k='Constructing a class in JavaScript',u,A,Nt="Object-Oriented Programming (OOP) has been around for a long time and in many languages. JavaScript is no exception to that, which should come as no surprise to anyone using JS today. It hasn’t always been a first-class paradigm in the language, though.",ua,x,Wt="Let’s embark on a journey to learn about how OOP has been done throughout JavaScript’s history, with our destination set on understanding how we should do it today and what all the modern syntax is doing for us under the hood.",fa,w,Gt='The prototype chain',Aa,T,Zt="Imagine a classic OOP problem - you have a bunch of objects that share an “is a” relationship. This “is a” relationship is typically used to explain when multiple objects should share a “class” type. I’ll use rectangles to keep it easy. So we have a bunch of objects, each of which “is a” rectangle - how do we represent that so and give each rectangle instance the interface a rectangle class should have?",ma,L,Ut="To start, let’s make a rectangle instance. Write or paste this code into your browser console to make one:",wa,Ks,xi=`let rect1 = {width: 4, height: 5};
rect1
`,$s,Xs,Ti=` `,se,M,Kt="The second line should cause the console to display a reference to the rect1
object. You may have noticed that both properties fit in a single line, but the dev tools still give you an option to expand the object. Isn’t that weird?",Ba,R,$t=' ',va,H,Xt="If my object only those two properties and they both fit on screen, why would I need to expand it?",ga,E,sn="As you’ll quickly find, there’s my height
and width
properties, as well as some weird [[Prototype]]
object. Continuing to expand the [[Prototype]]
object reveals a few more things. Some of them, like toString()
and hasOwnProperty()
probably look familiar. Others, such as isPrototypeOf()
may not be.",Da,j,en="You see, JavaScript has an unusual approach to inheritance called a prototype chain. It’s a linked list of object instances. Each instance makes up one part of the object. I think it’s easier to understand interactive exploration, so crack open your browser dev console or favorite JS REPL and let’s explore!",_a,S,an="The special [[Prototype]]
property on this object by default is called the object prototype. Whenever you create an object in JS, the object prototype is added to your object’s prototype chain automatically. You can also access it without dev tools by using an arcane incantation: rect1.__proto__
. Entering that in the dev tools console will show the same thing as expanding the [[Prototype]]
object, and that’s because it is the same object.",ba,F,tn="But how does this relate to our rectangle? Well it turns out that you can specify a custom prototype object. Think of prototype objects as a “class” or “class type” from other languages. First, let’s define the functionality of our rectangle class:",Ca,ee,Li=`const baseRectangle = {
isSquare: function() { return this.width === this.height },
diff --git a/_app/immutable/chunks/Dynamically generate TypeScript Playground links.ydr-BTfi.js b/_app/immutable/chunks/Dynamically generate TypeScript Playground links.CwQL_Ke-.js
similarity index 99%
rename from _app/immutable/chunks/Dynamically generate TypeScript Playground links.ydr-BTfi.js
rename to _app/immutable/chunks/Dynamically generate TypeScript Playground links.CwQL_Ke-.js
index 1e3aa18ff1..8b0f0b1c97 100644
--- a/_app/immutable/chunks/Dynamically generate TypeScript Playground links.ydr-BTfi.js
+++ b/_app/immutable/chunks/Dynamically generate TypeScript Playground links.CwQL_Ke-.js
@@ -1,4 +1,4 @@
-import{s as J,p as E,q as R,e as d,a as c,H as U,u as Z,c as h,m as y,g as m,v as j,i as l,n as N,f as t}from"./scheduler.ewBkyc9q.js";import{S as W,i as X,c as K,a as Q,m as V,t as Y,b as ss,d as as}from"./index.DpmaPz1F.js";import{g as es,a as z}from"./spread.CgU5AtxT.js";import{M as ns}from"./MDSveXNoteLayout.Bx5vQYjx.js";function ls(B){let a,k='Recently I was presenting a talk at SeattleJS on Branded Types using my blog post as the visual content. I wanted to do some live coding, so I decided to add TypeScript playground links to my code snippets.',p,o,e='Fun fact: it’s possible to dynamically generate TypeScript playground links!',i,r,P="The process is fairly simple:",x,u,H="Use lz-string
to base64 encode and zip the source code and URI encode the result (use LZString.compressToEncodedURIComponent()
, an easy one-liner) Append the encoded string to a playground URL Put the link on the code block ",b,D,I="I love this solution because it generates an updated link every time I build my site. I’m guaranteed to have up-to-date playground links and don’t have to do anything after the initial setup. Awesome!",L,f,F='I followed the TS playground docs to write the code that generates TS playground links. I updated my code highlighter function to generate the TS playground links and add them to a data-tsplay
attribute on the containing <pre>
tag for each TS code block. Check it out:',w,C,O=`import LZString from 'lz-string';
+import{s as J,p as E,q as R,e as d,a as c,H as U,u as Z,c as h,m as y,g as m,v as j,i as l,n as N,f as t}from"./scheduler.ewBkyc9q.js";import{S as W,i as X,c as K,a as Q,m as V,t as Y,b as ss,d as as}from"./index.DpmaPz1F.js";import{g as es,a as z}from"./spread.CgU5AtxT.js";import{M as ns}from"./MDSveXNoteLayout.Dbh0E4KQ.js";function ls(B){let a,k='Recently I was presenting a talk at SeattleJS on Branded Types using my blog post as the visual content. I wanted to do some live coding, so I decided to add TypeScript playground links to my code snippets.',p,o,e='Fun fact: it’s possible to dynamically generate TypeScript playground links!',i,r,P="The process is fairly simple:",x,u,H="Use lz-string
to base64 encode and zip the source code and URI encode the result (use LZString.compressToEncodedURIComponent()
, an easy one-liner) Append the encoded string to a playground URL Put the link on the code block ",b,D,I="I love this solution because it generates an updated link every time I build my site. I’m guaranteed to have up-to-date playground links and don’t have to do anything after the initial setup. Awesome!",L,f,F='I followed the TS playground docs to write the code that generates TS playground links. I updated my code highlighter function to generate the TS playground links and add them to a data-tsplay
attribute on the containing <pre>
tag for each TS code block. Check it out:',w,C,O=`import LZString from 'lz-string';
import { codeToHtml } from 'shiki';
import { transformerTwoslash } from '@shikijs/twoslash';
import { lex, parse } from 'fenceparser';
diff --git a/_app/immutable/chunks/Gifts.D3riRslI.js b/_app/immutable/chunks/Gifts.DybrrHY-.js
similarity index 98%
rename from _app/immutable/chunks/Gifts.D3riRslI.js
rename to _app/immutable/chunks/Gifts.DybrrHY-.js
index 59fa47ae35..c4d6713fc0 100644
--- a/_app/immutable/chunks/Gifts.D3riRslI.js
+++ b/_app/immutable/chunks/Gifts.DybrrHY-.js
@@ -1 +1 @@
-import{s as F,p as L,q,e as m,a as g,c as h,m as u,g as b,i as s,f as l,n as Z}from"./scheduler.ewBkyc9q.js";import{S as O,i as Q,c as D,a as E,m as G,t as N,b as Y,d as U}from"./index.DpmaPz1F.js";import{g as R,a as z}from"./spread.CgU5AtxT.js";import{M as V}from"./MDSveXNoteLayout.Bx5vQYjx.js";import{T as W}from"./Table.D4VRZ6lr.js";function X(p){let e,f="Price Item ",r,n,a='$20 Bambu Lab P1 compatible PLA filament ??? A new iPhone 13 pro max case $30 The Art of Doing Science and Engineering $30 The Nature of Code $50 Dominion board game $180 Trash fire signet ring $320 Burning bridge ring $400 Egofit walker Pro $400ah Adjustable dumbbells $460 Le Creuset 7.25qt dutch oven in Cream $1600 Herman Miller Aeron in mineral/satin aluminum (used is fine!) $1900 Apple Studio display with VESA mount (used is fine!) $2400 Tenon mini smart desk (used is fine!) ??? Space age / retrofuturistic decor ';return{c(){e=m("thead"),e.innerHTML=f,r=g(),n=m("tbody"),n.innerHTML=a},l(o){e=h(o,"THEAD",{"data-svelte-h":!0}),u(e)!=="svelte-m5fnal"&&(e.innerHTML=f),r=b(o),n=h(o,"TBODY",{"data-svelte-h":!0}),u(n)!=="svelte-2teed8"&&(n.innerHTML=a)},m(o,d){s(o,e,d),s(o,r,d),s(o,n,d)},p:Z,d(o){o&&(l(e),l(r),l(n))}}}function J(p){let e,f="Soon I will complete another lap around the sun, and I find myself in the fortunate position of having many wonderful people who wish to celebrate with me! Some wish to show their love with gifts, but often it can be challenging to figure out what to give. My hope with this post is to share my thoughts on gifting, some broad ideas of gifts I think are great, and some specific examples for anyone who prefers to know exactly what to get.",r,n,a="My view is that gifts should always be optional. I don’t ask or expect anyone to give me gifts, and I dislike when they are expected from me in other contexts. I think expectation robs them of their meaning as a gesture of love.",o,d,M="Sometimes I have a great idea for a gift for someone, and it brings me a lot of joy to give someone a gift they love. Not everyone is the same way, though. If you find buying gifts stressful and unpleasant, please don’t!",x,w,P="For those who want to give me a gift, I’ve identified some themes among gifts that I tend to like:",$,y,S="They facilitate having quality time with the people in my life They bring joy, inspiration, and/or beauty into my life They are something I didn’t know existed or are hard to procure They are useful They are something I can see often that will remind me of the gift giver They are made by you ",T,v,H="It’s possible for a gift to touch on multiple themes and even to cost nothing. As one example, a friend helped me with some gardening. We got to spend some quality time together making my home more beautiful, and the plants double as a reminder of our friendship every time I see them.",C,_,A="If you really want to give me a gift, but none of those themes are leading you to a specific gift, or you are the type of person who prefers to pick something from a wishlist, I have one below. I apologize for the limited options at lower price points. Typically if I know I want something and it’s inexpensive, I will just buy it for myself and it doesn’t have the chance to end up on such a list.",I,c,k;return c=new W({props:{$$slots:{default:[X]},$$scope:{ctx:p}}}),{c(){e=m("p"),e.textContent=f,r=g(),n=m("p"),n.innerHTML=a,o=g(),d=m("p"),d.textContent=M,x=g(),w=m("p"),w.innerHTML=P,$=g(),y=m("ul"),y.innerHTML=S,T=g(),v=m("p"),v.textContent=H,C=g(),_=m("p"),_.textContent=A,I=g(),D(c.$$.fragment)},l(t){e=h(t,"P",{"data-svelte-h":!0}),u(e)!=="svelte-1it5kwz"&&(e.textContent=f),r=b(t),n=h(t,"P",{"data-svelte-h":!0}),u(n)!=="svelte-d59k34"&&(n.innerHTML=a),o=b(t),d=h(t,"P",{"data-svelte-h":!0}),u(d)!=="svelte-g6qop1"&&(d.textContent=M),x=b(t),w=h(t,"P",{"data-svelte-h":!0}),u(w)!=="svelte-evikek"&&(w.innerHTML=P),$=b(t),y=h(t,"UL",{"data-svelte-h":!0}),u(y)!=="svelte-1oxapta"&&(y.innerHTML=S),T=b(t),v=h(t,"P",{"data-svelte-h":!0}),u(v)!=="svelte-pe1npl"&&(v.textContent=H),C=b(t),_=h(t,"P",{"data-svelte-h":!0}),u(_)!=="svelte-1d6dxbc"&&(_.textContent=A),I=b(t),E(c.$$.fragment,t)},m(t,i){s(t,e,i),s(t,r,i),s(t,n,i),s(t,o,i),s(t,d,i),s(t,x,i),s(t,w,i),s(t,$,i),s(t,y,i),s(t,T,i),s(t,v,i),s(t,C,i),s(t,_,i),s(t,I,i),G(c,t,i),k=!0},p(t,i){const j={};i&2&&(j.$$scope={dirty:i,ctx:t}),c.$set(j)},i(t){k||(N(c.$$.fragment,t),k=!0)},o(t){Y(c.$$.fragment,t),k=!1},d(t){t&&(l(e),l(r),l(n),l(o),l(d),l(x),l(w),l($),l(y),l(T),l(v),l(C),l(_),l(I)),U(c,t)}}}function K(p){let e,f;const r=[p[0],B];let n={$$slots:{default:[J]},$$scope:{ctx:p}};for(let a=0;a{f(0,e=L(L({},e),q(r)))},e=q(e),[e]}class st extends O{constructor(e){super(),Q(this,e,tt,K,F,{})}}export{st as default,B as metadata};
+import{s as F,p as L,q,e as m,a as g,c as h,m as u,g as b,i as s,f as l,n as Z}from"./scheduler.ewBkyc9q.js";import{S as O,i as Q,c as D,a as E,m as G,t as N,b as Y,d as U}from"./index.DpmaPz1F.js";import{g as R,a as z}from"./spread.CgU5AtxT.js";import{M as V}from"./MDSveXNoteLayout.Dbh0E4KQ.js";import{T as W}from"./Table.Bswvj4Nz.js";function X(p){let e,f="Price Item ",r,n,a='$20 Bambu Lab P1 compatible PLA filament ??? A new iPhone 13 pro max case $30 The Art of Doing Science and Engineering $30 The Nature of Code $50 Dominion board game $180 Trash fire signet ring $320 Burning bridge ring $400 Egofit walker Pro $400ah Adjustable dumbbells $460 Le Creuset 7.25qt dutch oven in Cream $1600 Herman Miller Aeron in mineral/satin aluminum (used is fine!) $1900 Apple Studio display with VESA mount (used is fine!) $2400 Tenon mini smart desk (used is fine!) ??? Space age / retrofuturistic decor ';return{c(){e=m("thead"),e.innerHTML=f,r=g(),n=m("tbody"),n.innerHTML=a},l(o){e=h(o,"THEAD",{"data-svelte-h":!0}),u(e)!=="svelte-m5fnal"&&(e.innerHTML=f),r=b(o),n=h(o,"TBODY",{"data-svelte-h":!0}),u(n)!=="svelte-2teed8"&&(n.innerHTML=a)},m(o,d){s(o,e,d),s(o,r,d),s(o,n,d)},p:Z,d(o){o&&(l(e),l(r),l(n))}}}function J(p){let e,f="Soon I will complete another lap around the sun, and I find myself in the fortunate position of having many wonderful people who wish to celebrate with me! Some wish to show their love with gifts, but often it can be challenging to figure out what to give. My hope with this post is to share my thoughts on gifting, some broad ideas of gifts I think are great, and some specific examples for anyone who prefers to know exactly what to get.",r,n,a="My view is that gifts should always be optional. I don’t ask or expect anyone to give me gifts, and I dislike when they are expected from me in other contexts. I think expectation robs them of their meaning as a gesture of love.",o,d,M="Sometimes I have a great idea for a gift for someone, and it brings me a lot of joy to give someone a gift they love. Not everyone is the same way, though. If you find buying gifts stressful and unpleasant, please don’t!",x,w,P="For those who want to give me a gift, I’ve identified some themes among gifts that I tend to like:",$,y,S="They facilitate having quality time with the people in my life They bring joy, inspiration, and/or beauty into my life They are something I didn’t know existed or are hard to procure They are useful They are something I can see often that will remind me of the gift giver They are made by you ",T,v,H="It’s possible for a gift to touch on multiple themes and even to cost nothing. As one example, a friend helped me with some gardening. We got to spend some quality time together making my home more beautiful, and the plants double as a reminder of our friendship every time I see them.",C,_,A="If you really want to give me a gift, but none of those themes are leading you to a specific gift, or you are the type of person who prefers to pick something from a wishlist, I have one below. I apologize for the limited options at lower price points. Typically if I know I want something and it’s inexpensive, I will just buy it for myself and it doesn’t have the chance to end up on such a list.",I,c,k;return c=new W({props:{$$slots:{default:[X]},$$scope:{ctx:p}}}),{c(){e=m("p"),e.textContent=f,r=g(),n=m("p"),n.innerHTML=a,o=g(),d=m("p"),d.textContent=M,x=g(),w=m("p"),w.innerHTML=P,$=g(),y=m("ul"),y.innerHTML=S,T=g(),v=m("p"),v.textContent=H,C=g(),_=m("p"),_.textContent=A,I=g(),D(c.$$.fragment)},l(t){e=h(t,"P",{"data-svelte-h":!0}),u(e)!=="svelte-1it5kwz"&&(e.textContent=f),r=b(t),n=h(t,"P",{"data-svelte-h":!0}),u(n)!=="svelte-d59k34"&&(n.innerHTML=a),o=b(t),d=h(t,"P",{"data-svelte-h":!0}),u(d)!=="svelte-g6qop1"&&(d.textContent=M),x=b(t),w=h(t,"P",{"data-svelte-h":!0}),u(w)!=="svelte-evikek"&&(w.innerHTML=P),$=b(t),y=h(t,"UL",{"data-svelte-h":!0}),u(y)!=="svelte-1oxapta"&&(y.innerHTML=S),T=b(t),v=h(t,"P",{"data-svelte-h":!0}),u(v)!=="svelte-pe1npl"&&(v.textContent=H),C=b(t),_=h(t,"P",{"data-svelte-h":!0}),u(_)!=="svelte-1d6dxbc"&&(_.textContent=A),I=b(t),E(c.$$.fragment,t)},m(t,i){s(t,e,i),s(t,r,i),s(t,n,i),s(t,o,i),s(t,d,i),s(t,x,i),s(t,w,i),s(t,$,i),s(t,y,i),s(t,T,i),s(t,v,i),s(t,C,i),s(t,_,i),s(t,I,i),G(c,t,i),k=!0},p(t,i){const j={};i&2&&(j.$$scope={dirty:i,ctx:t}),c.$set(j)},i(t){k||(N(c.$$.fragment,t),k=!0)},o(t){Y(c.$$.fragment,t),k=!1},d(t){t&&(l(e),l(r),l(n),l(o),l(d),l(x),l(w),l($),l(y),l(T),l(v),l(C),l(_),l(I)),U(c,t)}}}function K(p){let e,f;const r=[p[0],B];let n={$$slots:{default:[J]},$$scope:{ctx:p}};for(let a=0;a{f(0,e=L(L({},e),q(r)))},e=q(e),[e]}class st extends O{constructor(e){super(),Q(this,e,tt,K,F,{})}}export{st as default,B as metadata};
diff --git a/_app/immutable/chunks/Gold Mac n Cheese.wwiG7Xog.js b/_app/immutable/chunks/Gold Mac n Cheese.BMABLiCG.js
similarity index 98%
rename from _app/immutable/chunks/Gold Mac n Cheese.wwiG7Xog.js
rename to _app/immutable/chunks/Gold Mac n Cheese.BMABLiCG.js
index d9bc89134c..804ecc0c27 100644
--- a/_app/immutable/chunks/Gold Mac n Cheese.wwiG7Xog.js
+++ b/_app/immutable/chunks/Gold Mac n Cheese.BMABLiCG.js
@@ -1,3 +1,3 @@
-import{s as de,p as U,q as ee,e as d,a as m,c as u,m as c,g as p,o as E,i as n,f as i,n as ue}from"./scheduler.ewBkyc9q.js";import{S as ce,i as he,c as ne,a as ie,m as le,t as se,b as oe,d as re}from"./index.DpmaPz1F.js";import{g as me,a as te}from"./spread.CgU5AtxT.js";import{M as pe}from"./MDSveXNoteLayout.Bx5vQYjx.js";import{T as fe}from"./Table.D4VRZ6lr.js";function ve(v){let t,f="Ingredient Amount ",r,o,l="Orzo pasta (dry) 3/4 cup grape or cherry tomatoes ~8 tomatoes Chicken (or vegetable) stock .75 quarts Cougar gold cheese 2.5 cups Butter 2 tbsp Heavy cream 1/2 cup Saffron ~1/3 tsp ";return{c(){t=d("thead"),t.innerHTML=f,r=m(),o=d("tbody"),o.innerHTML=l},l(s){t=u(s,"THEAD",{"data-svelte-h":!0}),c(t)!=="svelte-1tnhzrc"&&(t.innerHTML=f),r=p(s),o=u(s,"TBODY",{"data-svelte-h":!0}),c(o)!=="svelte-eylzu0"&&(o.innerHTML=l)},m(s,h){n(s,t,h),n(s,r,h),n(s,o,h)},p:ue,d(s){s&&(i(t),i(r),i(o))}}}function _e(v){let t,f="As a kid, I absolutely loved mac n cheese. Easily my favorite dish. Even if it came in a blue box and the cheese was a powder that smelled a bit like dog food, I still enjoyed it. As I grew from an adolescent to a teenager and young adult, I would never miss out on the opportunity to order a fancy mac n cheese at a nice restaurant.",r,o,l="Now that I’m an adult, just about everything has changed! I’ve traveled the world and explored the cuisines of many cultures. I’ve dined in michelin-starred restaurants and even learned some molecular gastronomy techniques. My palate is much more refined than it was in my blue box mac n cheese days.",s,h,G="But I still adore mac n cheese. Some things never change 😅",M,y,N="Recently I’ve been on a mission to make an incredible mac n cheese that beautifully combines my favorite takes on mac n cheese into one luxurious package.",w,C,Z="This is a working note as I iterate on the recipe. I haven’t figure out how to incorporate all my favorite aspects of the best mac n cheeses I’ve eaten yet. This recipe isn’t done, but it is already delicious and at a point where guests rave about it.",I,k,R="Some of the techniques that make this mac n cheese especially luxurious are:",q,T,W="Cooking the macaroni in stock instead of water to produce a richer flavor Cougar gold cheese has a particularly deep and complex flavor. I prefer this to mixing cheeses. Using saffron for an elevated taste and rich gold color The blistered tomatoes add some complementary acidity that helps balance the fattiness of the cheese ",z,_,X='Ingredients',S,$,Y="These ingredients make ~4 modest or 2-3 generous servings. As a main dish, plan on a generous serving per person.",O,x,A,b,F='Prep',P,H,J="Break up the cheese into small pieces. This isn’t an exact science, but the smaller the pieces the faster it melts. Wash the tomatoes ",B,g,K='Steps',j,L,Q=`Bring 2 cups of chicken stock to a low boil. Use a wide pot or sauté pan if available.
+import{s as de,p as U,q as ee,e as d,a as m,c as u,m as c,g as p,o as E,i as n,f as i,n as ue}from"./scheduler.ewBkyc9q.js";import{S as ce,i as he,c as ne,a as ie,m as le,t as se,b as oe,d as re}from"./index.DpmaPz1F.js";import{g as me,a as te}from"./spread.CgU5AtxT.js";import{M as pe}from"./MDSveXNoteLayout.Dbh0E4KQ.js";import{T as fe}from"./Table.Bswvj4Nz.js";function ve(v){let t,f="Ingredient Amount ",r,o,l="Orzo pasta (dry) 3/4 cup grape or cherry tomatoes ~8 tomatoes Chicken (or vegetable) stock .75 quarts Cougar gold cheese 2.5 cups Butter 2 tbsp Heavy cream 1/2 cup Saffron ~1/3 tsp ";return{c(){t=d("thead"),t.innerHTML=f,r=m(),o=d("tbody"),o.innerHTML=l},l(s){t=u(s,"THEAD",{"data-svelte-h":!0}),c(t)!=="svelte-1tnhzrc"&&(t.innerHTML=f),r=p(s),o=u(s,"TBODY",{"data-svelte-h":!0}),c(o)!=="svelte-eylzu0"&&(o.innerHTML=l)},m(s,h){n(s,t,h),n(s,r,h),n(s,o,h)},p:ue,d(s){s&&(i(t),i(r),i(o))}}}function _e(v){let t,f="As a kid, I absolutely loved mac n cheese. Easily my favorite dish. Even if it came in a blue box and the cheese was a powder that smelled a bit like dog food, I still enjoyed it. As I grew from an adolescent to a teenager and young adult, I would never miss out on the opportunity to order a fancy mac n cheese at a nice restaurant.",r,o,l="Now that I’m an adult, just about everything has changed! I’ve traveled the world and explored the cuisines of many cultures. I’ve dined in michelin-starred restaurants and even learned some molecular gastronomy techniques. My palate is much more refined than it was in my blue box mac n cheese days.",s,h,G="But I still adore mac n cheese. Some things never change 😅",M,y,N="Recently I’ve been on a mission to make an incredible mac n cheese that beautifully combines my favorite takes on mac n cheese into one luxurious package.",w,C,Z="This is a working note as I iterate on the recipe. I haven’t figure out how to incorporate all my favorite aspects of the best mac n cheeses I’ve eaten yet. This recipe isn’t done, but it is already delicious and at a point where guests rave about it.",I,k,R="Some of the techniques that make this mac n cheese especially luxurious are:",q,T,W=" Cooking the macaroni in stock instead of water to produce a richer flavor Cougar gold cheese has a particularly deep and complex flavor. I prefer this to mixing cheeses. Using saffron for an elevated taste and rich gold color The blistered tomatoes add some complementary acidity that helps balance the fattiness of the cheese ",z,_,X='Ingredients',S,$,Y="These ingredients make ~4 modest or 2-3 generous servings. As a main dish, plan on a generous serving per person.",O,x,A,b,F='Prep',P,H,J="Break up the cheese into small pieces. This isn’t an exact science, but the smaller the pieces the faster it melts. Wash the tomatoes ",B,g,K='Steps',j,L,Q=`Bring 2 cups of chicken stock to a low boil. Use a wide pot or sauté pan if available.
- Add 1/4 of the saffron to the stock
- if using unsalted chicken stock, add ~1tsp kosher salt.
Add dry orzo to chicken stock and reduce temperature to medium-low.
- Cover and stir every minute.
- Only add more chicken stock in small amounts if there is little to no liquid left. The goal is to get the orzo to slightly less than al dente with almost no liquid left.
- Turn off the heat and keep covered.
In a separate pan, melt the butter over medium heat. Once it is hot, add the tomatoes. Sauté the tomatoes for 1.5-2 minutes without moving them. Once they start to blister, rotate and repeat. Once tomatoes are twice blistered, reduce heat to medium-low. Add the cream, crumbled cougar gold cheese, and remaining saffron to the pan. Stir cheese and cream continuously until the cheese is fully melted. Once cheese is fully melted, combine cheese & tomatoes into the pot with orzo and mix together until thoroughly coated. Serve and enjoy! `,D;return x=new fe({props:{$$slots:{default:[ve]},$$scope:{ctx:v}}}),{c(){t=d("p"),t.textContent=f,r=m(),o=d("p"),o.textContent=l,s=m(),h=d("p"),h.textContent=G,M=m(),y=d("p"),y.textContent=N,w=m(),C=d("p"),C.innerHTML=Z,I=m(),k=d("p"),k.textContent=R,q=m(),T=d("ul"),T.innerHTML=W,z=m(),_=d("h2"),_.innerHTML=X,S=m(),$=d("p"),$.textContent=Y,O=m(),ne(x.$$.fragment),A=m(),b=d("h2"),b.innerHTML=F,P=m(),H=d("ol"),H.innerHTML=J,B=m(),g=d("h2"),g.innerHTML=K,j=m(),L=d("ol"),L.innerHTML=Q,this.h()},l(e){t=u(e,"P",{"data-svelte-h":!0}),c(t)!=="svelte-lv6pwl"&&(t.textContent=f),r=p(e),o=u(e,"P",{"data-svelte-h":!0}),c(o)!=="svelte-1ozemcx"&&(o.textContent=l),s=p(e),h=u(e,"P",{"data-svelte-h":!0}),c(h)!=="svelte-1aismis"&&(h.textContent=G),M=p(e),y=u(e,"P",{"data-svelte-h":!0}),c(y)!=="svelte-8bza9c"&&(y.textContent=N),w=p(e),C=u(e,"P",{"data-svelte-h":!0}),c(C)!=="svelte-elv609"&&(C.innerHTML=Z),I=p(e),k=u(e,"P",{"data-svelte-h":!0}),c(k)!=="svelte-kviz51"&&(k.textContent=R),q=p(e),T=u(e,"UL",{"data-svelte-h":!0}),c(T)!=="svelte-qqgqg6"&&(T.innerHTML=W),z=p(e),_=u(e,"H2",{id:!0,"data-svelte-h":!0}),c(_)!=="svelte-9bt1ri"&&(_.innerHTML=X),S=p(e),$=u(e,"P",{"data-svelte-h":!0}),c($)!=="svelte-1jz11v4"&&($.textContent=Y),O=p(e),ie(x.$$.fragment,e),A=p(e),b=u(e,"H2",{id:!0,"data-svelte-h":!0}),c(b)!=="svelte-1v0ieby"&&(b.innerHTML=F),P=p(e),H=u(e,"OL",{"data-svelte-h":!0}),c(H)!=="svelte-1gtc0s5"&&(H.innerHTML=J),B=p(e),g=u(e,"H2",{id:!0,"data-svelte-h":!0}),c(g)!=="svelte-1g870dg"&&(g.innerHTML=K),j=p(e),L=u(e,"OL",{"data-svelte-h":!0}),c(L)!=="svelte-blhef5"&&(L.innerHTML=Q),this.h()},h(){E(_,"id","ingredients"),E(b,"id","prep"),E(g,"id","steps")},m(e,a){n(e,t,a),n(e,r,a),n(e,o,a),n(e,s,a),n(e,h,a),n(e,M,a),n(e,y,a),n(e,w,a),n(e,C,a),n(e,I,a),n(e,k,a),n(e,q,a),n(e,T,a),n(e,z,a),n(e,_,a),n(e,S,a),n(e,$,a),n(e,O,a),le(x,e,a),n(e,A,a),n(e,b,a),n(e,P,a),n(e,H,a),n(e,B,a),n(e,g,a),n(e,j,a),n(e,L,a),D=!0},p(e,a){const V={};a&2&&(V.$$scope={dirty:a,ctx:e}),x.$set(V)},i(e){D||(se(x.$$.fragment,e),D=!0)},o(e){oe(x.$$.fragment,e),D=!1},d(e){e&&(i(t),i(r),i(o),i(s),i(h),i(M),i(y),i(w),i(C),i(I),i(k),i(q),i(T),i(z),i(_),i(S),i($),i(O),i(A),i(b),i(P),i(H),i(B),i(g),i(j),i(L)),re(x,e)}}}function xe(v){let t,f;const r=[v[0],ae];let o={$$slots:{default:[_e]},$$scope:{ctx:v}};for(let l=0;l{f(0,t=U(U({},t),ee(r)))},t=ee(t),[t]}class $e extends ce{constructor(t){super(),he(this,t,be,xe,de,{})}}export{$e as default,ae as metadata};
diff --git a/_app/immutable/chunks/I use Neovim btw.BSDQA274.js b/_app/immutable/chunks/I use Neovim btw.CjeZDwBV.js
similarity index 99%
rename from _app/immutable/chunks/I use Neovim btw.BSDQA274.js
rename to _app/immutable/chunks/I use Neovim btw.CjeZDwBV.js
index 7e59d5a3b1..d660e5e09f 100644
--- a/_app/immutable/chunks/I use Neovim btw.BSDQA274.js
+++ b/_app/immutable/chunks/I use Neovim btw.CjeZDwBV.js
@@ -1 +1 @@
-import{s as Xe,p as ce,q as Ne,e as o,a as s,c as a,m as l,g as r,o as We,i,n as Ze,f as n}from"./scheduler.ewBkyc9q.js";import{S as Ge,i as Re,c as Ye,a as Be,m as Fe,t as Ke,b as Qe,d as Je}from"./index.DpmaPz1F.js";import{g as et,a as $e}from"./spread.CgU5AtxT.js";import{M as tt}from"./MDSveXNoteLayout.Bx5vQYjx.js";function it(W){let h,p="I’ve been writing code in various capacities for nearly twenty years now, though only seriously for around the past 10 years. Despite getting into Arch linux as a hobby in my early teens, I never really put a lot of thought into my text editor & IDE setup. Notepad++, followed by Sublime text, then Visual Studio, and finally VS Code have always felt sufficient to me.",c,d,u="While I’ve been aware of vim for years, I’ve long held the opinion that the steep learning curve isn’t worth it. Most of my time programming isn’t spent text editing problems. I spend a lot more time on problems like:",m,f,fe="What’s the best approach to implement this? How can I configure X to do Y? How should I architect this system? Which API design is going to be the most intuitive for consumers? What’s the best way to communicate these trade-offs in a spec to ensure we have a valuable discussion about this work? Which edge cases do I need to consider and test for? ",$,y,pe="I have spent comparably little time on text editing problems such as:",O,w,ve="How can I delete this code I’m not using? What’s the fastest way to refactor this hacky testing code into a proper unit/integration test? How can I quickly reshape this series of function calls in object property k:v pairs? ",X,b,ge="Learning vim to optimize my text editing skills - which only take up about 25% of my time “programming” - is something I’ve always concluded is not worth it.",Z,x,ye="Additionally, VS Code has incredibly broad adoption across technology stacks today. It’s excellent plugin architecture has produced a thriving ecosystem of 3rd-party add-ons that means in-editor support for every technology is just a couple clicks away. Plus, Microsoft has done something that seemed impossible in the past: established industry standards for integrating an editor with both programming language tools (via Language Server Protocol, or LSP) and debuggers (via the Debug Adapter Protocol, or DAP). It almost feels ridiculous to consider another editor right now…",G,k,we='As it turns out, Microsoft’s fantastic success establishing industry standards with LSP and DAP has been great for the rest of the editor ecosystem. Thanks to the standardized APIs, other editors have tapped into the incredible work. There are now many editors with modern features (or plugins) built leveraging these standards, such as:',R,I,be='Language-aware semantic syntax highlighting Language-specific text completion suggestions Integrated debugger support ',Y,C,xe="The reality is that while VS Code is perhaps the most dominant a text editor has ever been, the quality of alternatives is also better than ever. Recently, I’ve been doing more and more tinkering with my text editors. I tried out Zed, set up a custom launch.json
to debug a Deno project, and even customized my VS Code UI to look more minimal:",B,T,ke=' ',F,_,Ie='Meanwhile, the YouTube algorithm has been recommending me videos from TypeCraft, a dev YouTuber who makes content about configuring your dev environment using linux, tmux, and neovim. I’ve been in the mood for learning recently, so on Sunday afternoon I decided to go through TypeCraft’s free course on setting up Neovim as an IDE. Note that the course is on setting up the IDE, not on vim motions and keybindings. I went into this with extremely basic vim skills - I could change between normal and insert mode, save a file, exit vim, and not much more.',K,v,Ce='Configuring Neovim',Q,L,Te="Despite my near-complete incompetence, I was able to get through the whole course. That fact says a lot about Chris (TypeCraft)‘s course quality. Neovim aside, I learned a lot about the workings of modern IDEs. If I end up going back to using VS Code as my daily driver, it still feels like time well spent.",J,H,_e='Something I particularly liked was the approach to configuring Neovim. All the extensions are written as lua scripts (and naturally there is a plugin to get better completions in your nvim config files) in ~/.config/nvim/
. He set it up so that the plugin manager, Lazy is loaded first, and it will auto-load any other plugins that are included when Neovim is launched. These factors mean that:',ee,M,Le='the config folder can be version controlled via git cloning the config repo into ~/.config/nvim/
then opening neovim is all it takes to set up a new machine with my IDE To try someone else’s config is as simple as cloning their config ',te,P,He="Another detail I like about the Neovim config is that it is extremely minimal by default, and I only pay the cost of loading in features that I want. As the name implies, the Lazy package manager will lazy load packages by default. This means I only have to wait for my debugging plugins to load when I start to use debugging features! The result is an extremely snappy editor that opens in milliseconds with a minimal UI.",ie,z,Me="This approach of being minimal by default hearkens back to my time with Arch Linux, another environment where nearly all functionality is opt-in. The main drawback is quite obvious - some assembly is required. The benefits are plentiful though, and make a good case for why it’s worth the effort:",ne,q,Pe="It provides the opportunity to customize things to my own preferences Configuring all the features I want helps me learn a bit more about how they work I don’t have to pay a performance costs for things I’m not going to use 🌶️ take: it demonstrates to me and others that I take pride in my tools and my work. ",oe,g,ze='Why I changed my mind about Vim',ae,A,qe="While I’ve historically felt that vim wasn’t worth the effort, a few things have come together to change my mind. These factors really changed how I evaluate the ROI on learning vim. I’m now of the opinion that it’s",le,D,Ae="I’m ashamed to admit it, but the biggest one was putting in some effort to learn vim. I incorrectly believed that it would be akin to learning an alternative keyboard layout like Dvorak: something I tried and decided wasn’t worth it after a couple weeks. The thing is, to have the same productivity with vim only requires knowing three vim hot keys:",se,S,De=":wq
- to save the current file and quit vim i
- Enters “insert mode”, which is basically identical to how every other text editor works - move the cursor with arrow keys, and typing a key adds it at the cursor. Esc
- exits insert mode, which is necessary to save and quit. ",re,V,Se="After learning those three commands, I was surprised to find I’m roughly as productive in vim as without it. It turns out everything I thought was required to match my existing productivity in vim is pure upside. 🤯",he,j,Ve='Another big factor is the IDE experience. Coming from my background building games, I can’t imagine trying to debug code using only print statements; a life choice I’ve found shockingly common among web developers. I’m also quite fond of GitHub Copilot and language-specific completions, and wouldn’t want to give them up by changing IDE. This seemed like a huge barrier, but largely thanks to Microsoft these are widely available features now. I spent a few hours getting them setup, but now my config is on GitHub, so it’ll be extremely fast in the future.',ue,U,je='Vim transforms text-editing into a puzzle game-like experience
',me,E,Ue='The final reason, and one that caught me by surprise, is that using vim is fun! It has really changed the text editing experience. I think of text editing as the necessary labor that shapes and molds text like clay until it matches the picture in my mind of what the code should do. With a basic editor, this is laborious and menial work. It’s akin to sculpting using only a fine chisel. Vim transforms text-editing into a puzzle game-like experience that makes text editing a lot more fun. Look at Primeagen’s enthusiasm for nailing a macro! I have never seen anyone that excited about typing using a regular text editor.',de,N,Ee='The fun alone makes vim worth learning. I love coding, and I’m thrilled to still be finding new ways to add joy to the experience. Given the recent 2024 Stack Overflow developer survey showed only 20% of developers are happy at work, I’m hoping that we can all get a little better at putting the fun into development.';return{c(){h=o("p"),h.textContent=p,c=s(),d=o("p"),d.textContent=u,m=s(),f=o("ul"),f.innerHTML=fe,$=s(),y=o("p"),y.innerHTML=pe,O=s(),w=o("ul"),w.innerHTML=ve,X=s(),b=o("p"),b.textContent=ge,Z=s(),x=o("p"),x.textContent=ye,G=s(),k=o("p"),k.innerHTML=we,R=s(),I=o("ul"),I.innerHTML=be,Y=s(),C=o("p"),C.innerHTML=xe,B=s(),T=o("picture"),T.innerHTML=ke,F=s(),_=o("p"),_.innerHTML=Ie,K=s(),v=o("h2"),v.innerHTML=Ce,Q=s(),L=o("p"),L.textContent=Te,J=s(),H=o("p"),H.innerHTML=_e,ee=s(),M=o("ol"),M.innerHTML=Le,te=s(),P=o("p"),P.innerHTML=He,ie=s(),z=o("p"),z.textContent=Me,ne=s(),q=o("ul"),q.innerHTML=Pe,oe=s(),g=o("h2"),g.innerHTML=ze,ae=s(),A=o("p"),A.textContent=qe,le=s(),D=o("p"),D.textContent=Ae,se=s(),S=o("ul"),S.innerHTML=De,re=s(),V=o("p"),V.textContent=Se,he=s(),j=o("p"),j.innerHTML=Ve,ue=s(),U=o("blockquote"),U.innerHTML=je,me=s(),E=o("p"),E.innerHTML=Ue,de=s(),N=o("p"),N.innerHTML=Ee,this.h()},l(e){h=a(e,"P",{"data-svelte-h":!0}),l(h)!=="svelte-zkivtz"&&(h.textContent=p),c=r(e),d=a(e,"P",{"data-svelte-h":!0}),l(d)!=="svelte-1bbkmym"&&(d.textContent=u),m=r(e),f=a(e,"UL",{"data-svelte-h":!0}),l(f)!=="svelte-ftd1k9"&&(f.innerHTML=fe),$=r(e),y=a(e,"P",{"data-svelte-h":!0}),l(y)!=="svelte-196tzfe"&&(y.innerHTML=pe),O=r(e),w=a(e,"UL",{"data-svelte-h":!0}),l(w)!=="svelte-yefy1y"&&(w.innerHTML=ve),X=r(e),b=a(e,"P",{"data-svelte-h":!0}),l(b)!=="svelte-1lytok8"&&(b.textContent=ge),Z=r(e),x=a(e,"P",{"data-svelte-h":!0}),l(x)!=="svelte-ltcwr0"&&(x.textContent=ye),G=r(e),k=a(e,"P",{"data-svelte-h":!0}),l(k)!=="svelte-1i9zznc"&&(k.innerHTML=we),R=r(e),I=a(e,"UL",{"data-svelte-h":!0}),l(I)!=="svelte-tr1jrt"&&(I.innerHTML=be),Y=r(e),C=a(e,"P",{"data-svelte-h":!0}),l(C)!=="svelte-1rznajm"&&(C.innerHTML=xe),B=r(e),T=a(e,"PICTURE",{"data-svelte-h":!0}),l(T)!=="svelte-1yxtx4e"&&(T.innerHTML=ke),F=r(e),_=a(e,"P",{"data-svelte-h":!0}),l(_)!=="svelte-1l9hf83"&&(_.innerHTML=Ie),K=r(e),v=a(e,"H2",{id:!0,"data-svelte-h":!0}),l(v)!=="svelte-1szpcgd"&&(v.innerHTML=Ce),Q=r(e),L=a(e,"P",{"data-svelte-h":!0}),l(L)!=="svelte-1nkyewk"&&(L.textContent=Te),J=r(e),H=a(e,"P",{"data-svelte-h":!0}),l(H)!=="svelte-bkt5fd"&&(H.innerHTML=_e),ee=r(e),M=a(e,"OL",{"data-svelte-h":!0}),l(M)!=="svelte-hhsid6"&&(M.innerHTML=Le),te=r(e),P=a(e,"P",{"data-svelte-h":!0}),l(P)!=="svelte-4iuswv"&&(P.innerHTML=He),ie=r(e),z=a(e,"P",{"data-svelte-h":!0}),l(z)!=="svelte-19thoi1"&&(z.textContent=Me),ne=r(e),q=a(e,"UL",{"data-svelte-h":!0}),l(q)!=="svelte-1vg8q72"&&(q.innerHTML=Pe),oe=r(e),g=a(e,"H2",{id:!0,"data-svelte-h":!0}),l(g)!=="svelte-1ot9t4k"&&(g.innerHTML=ze),ae=r(e),A=a(e,"P",{"data-svelte-h":!0}),l(A)!=="svelte-15jpkag"&&(A.textContent=qe),le=r(e),D=a(e,"P",{"data-svelte-h":!0}),l(D)!=="svelte-10694c4"&&(D.textContent=Ae),se=r(e),S=a(e,"UL",{"data-svelte-h":!0}),l(S)!=="svelte-1f5wht3"&&(S.innerHTML=De),re=r(e),V=a(e,"P",{"data-svelte-h":!0}),l(V)!=="svelte-1c4tfgf"&&(V.textContent=Se),he=r(e),j=a(e,"P",{"data-svelte-h":!0}),l(j)!=="svelte-1w0kg62"&&(j.innerHTML=Ve),ue=r(e),U=a(e,"BLOCKQUOTE",{"data-svelte-h":!0}),l(U)!=="svelte-1fx5cjq"&&(U.innerHTML=je),me=r(e),E=a(e,"P",{"data-svelte-h":!0}),l(E)!=="svelte-b94g"&&(E.innerHTML=Ue),de=r(e),N=a(e,"P",{"data-svelte-h":!0}),l(N)!=="svelte-1y30bl5"&&(N.innerHTML=Ee),this.h()},h(){We(v,"id","configuring-neovim"),We(g,"id","why-i-changed-my-mind-about-vim")},m(e,t){i(e,h,t),i(e,c,t),i(e,d,t),i(e,m,t),i(e,f,t),i(e,$,t),i(e,y,t),i(e,O,t),i(e,w,t),i(e,X,t),i(e,b,t),i(e,Z,t),i(e,x,t),i(e,G,t),i(e,k,t),i(e,R,t),i(e,I,t),i(e,Y,t),i(e,C,t),i(e,B,t),i(e,T,t),i(e,F,t),i(e,_,t),i(e,K,t),i(e,v,t),i(e,Q,t),i(e,L,t),i(e,J,t),i(e,H,t),i(e,ee,t),i(e,M,t),i(e,te,t),i(e,P,t),i(e,ie,t),i(e,z,t),i(e,ne,t),i(e,q,t),i(e,oe,t),i(e,g,t),i(e,ae,t),i(e,A,t),i(e,le,t),i(e,D,t),i(e,se,t),i(e,S,t),i(e,re,t),i(e,V,t),i(e,he,t),i(e,j,t),i(e,ue,t),i(e,U,t),i(e,me,t),i(e,E,t),i(e,de,t),i(e,N,t)},p:Ze,d(e){e&&(n(h),n(c),n(d),n(m),n(f),n($),n(y),n(O),n(w),n(X),n(b),n(Z),n(x),n(G),n(k),n(R),n(I),n(Y),n(C),n(B),n(T),n(F),n(_),n(K),n(v),n(Q),n(L),n(J),n(H),n(ee),n(M),n(te),n(P),n(ie),n(z),n(ne),n(q),n(oe),n(g),n(ae),n(A),n(le),n(D),n(se),n(S),n(re),n(V),n(he),n(j),n(ue),n(U),n(me),n(E),n(de),n(N))}}}function nt(W){let h,p;const c=[W[0],Oe];let d={$$slots:{default:[it]},$$scope:{ctx:W}};for(let u=0;u{p(0,h=ce(ce({},h),Ne(c)))},h=Ne(h),[h]}class ht extends Ge{constructor(h){super(),Re(this,h,ot,nt,Xe,{})}}export{ht as default,Oe as metadata};
+import{s as Xe,p as ce,q as Ne,e as o,a as s,c as a,m as l,g as r,o as We,i,n as Ze,f as n}from"./scheduler.ewBkyc9q.js";import{S as Ge,i as Re,c as Ye,a as Be,m as Fe,t as Ke,b as Qe,d as Je}from"./index.DpmaPz1F.js";import{g as et,a as $e}from"./spread.CgU5AtxT.js";import{M as tt}from"./MDSveXNoteLayout.Dbh0E4KQ.js";function it(W){let h,p="I’ve been writing code in various capacities for nearly twenty years now, though only seriously for around the past 10 years. Despite getting into Arch linux as a hobby in my early teens, I never really put a lot of thought into my text editor & IDE setup. Notepad++, followed by Sublime text, then Visual Studio, and finally VS Code have always felt sufficient to me.",c,d,u="While I’ve been aware of vim for years, I’ve long held the opinion that the steep learning curve isn’t worth it. Most of my time programming isn’t spent text editing problems. I spend a lot more time on problems like:",m,f,fe="What’s the best approach to implement this? How can I configure X to do Y? How should I architect this system? Which API design is going to be the most intuitive for consumers? What’s the best way to communicate these trade-offs in a spec to ensure we have a valuable discussion about this work? Which edge cases do I need to consider and test for? ",$,y,pe="I have spent comparably little time on text editing problems such as:",O,w,ve="How can I delete this code I’m not using? What’s the fastest way to refactor this hacky testing code into a proper unit/integration test? How can I quickly reshape this series of function calls in object property k:v pairs? ",X,b,ge="Learning vim to optimize my text editing skills - which only take up about 25% of my time “programming” - is something I’ve always concluded is not worth it.",Z,x,ye="Additionally, VS Code has incredibly broad adoption across technology stacks today. It’s excellent plugin architecture has produced a thriving ecosystem of 3rd-party add-ons that means in-editor support for every technology is just a couple clicks away. Plus, Microsoft has done something that seemed impossible in the past: established industry standards for integrating an editor with both programming language tools (via Language Server Protocol, or LSP) and debuggers (via the Debug Adapter Protocol, or DAP). It almost feels ridiculous to consider another editor right now…",G,k,we='As it turns out, Microsoft’s fantastic success establishing industry standards with LSP and DAP has been great for the rest of the editor ecosystem. Thanks to the standardized APIs, other editors have tapped into the incredible work. There are now many editors with modern features (or plugins) built leveraging these standards, such as:',R,I,be='Language-aware semantic syntax highlighting Language-specific text completion suggestions Integrated debugger support ',Y,C,xe="The reality is that while VS Code is perhaps the most dominant a text editor has ever been, the quality of alternatives is also better than ever. Recently, I’ve been doing more and more tinkering with my text editors. I tried out Zed, set up a custom launch.json
to debug a Deno project, and even customized my VS Code UI to look more minimal:",B,T,ke=' ',F,_,Ie='Meanwhile, the YouTube algorithm has been recommending me videos from TypeCraft, a dev YouTuber who makes content about configuring your dev environment using linux, tmux, and neovim. I’ve been in the mood for learning recently, so on Sunday afternoon I decided to go through TypeCraft’s free course on setting up Neovim as an IDE. Note that the course is on setting up the IDE, not on vim motions and keybindings. I went into this with extremely basic vim skills - I could change between normal and insert mode, save a file, exit vim, and not much more.',K,v,Ce='Configuring Neovim',Q,L,Te="Despite my near-complete incompetence, I was able to get through the whole course. That fact says a lot about Chris (TypeCraft)‘s course quality. Neovim aside, I learned a lot about the workings of modern IDEs. If I end up going back to using VS Code as my daily driver, it still feels like time well spent.",J,H,_e='Something I particularly liked was the approach to configuring Neovim. All the extensions are written as lua scripts (and naturally there is a plugin to get better completions in your nvim config files) in ~/.config/nvim/
. He set it up so that the plugin manager, Lazy is loaded first, and it will auto-load any other plugins that are included when Neovim is launched. These factors mean that:',ee,M,Le='the config folder can be version controlled via git cloning the config repo into ~/.config/nvim/
then opening neovim is all it takes to set up a new machine with my IDE To try someone else’s config is as simple as cloning their config ',te,P,He="Another detail I like about the Neovim config is that it is extremely minimal by default, and I only pay the cost of loading in features that I want. As the name implies, the Lazy package manager will lazy load packages by default. This means I only have to wait for my debugging plugins to load when I start to use debugging features! The result is an extremely snappy editor that opens in milliseconds with a minimal UI.",ie,z,Me="This approach of being minimal by default hearkens back to my time with Arch Linux, another environment where nearly all functionality is opt-in. The main drawback is quite obvious - some assembly is required. The benefits are plentiful though, and make a good case for why it’s worth the effort:",ne,q,Pe="It provides the opportunity to customize things to my own preferences Configuring all the features I want helps me learn a bit more about how they work I don’t have to pay a performance costs for things I’m not going to use 🌶️ take: it demonstrates to me and others that I take pride in my tools and my work. ",oe,g,ze='Why I changed my mind about Vim',ae,A,qe="While I’ve historically felt that vim wasn’t worth the effort, a few things have come together to change my mind. These factors really changed how I evaluate the ROI on learning vim. I’m now of the opinion that it’s",le,D,Ae="I’m ashamed to admit it, but the biggest one was putting in some effort to learn vim. I incorrectly believed that it would be akin to learning an alternative keyboard layout like Dvorak: something I tried and decided wasn’t worth it after a couple weeks. The thing is, to have the same productivity with vim only requires knowing three vim hot keys:",se,S,De=":wq
- to save the current file and quit vim i
- Enters “insert mode”, which is basically identical to how every other text editor works - move the cursor with arrow keys, and typing a key adds it at the cursor. Esc
- exits insert mode, which is necessary to save and quit. ",re,V,Se="After learning those three commands, I was surprised to find I’m roughly as productive in vim as without it. It turns out everything I thought was required to match my existing productivity in vim is pure upside. 🤯",he,j,Ve='Another big factor is the IDE experience. Coming from my background building games, I can’t imagine trying to debug code using only print statements; a life choice I’ve found shockingly common among web developers. I’m also quite fond of GitHub Copilot and language-specific completions, and wouldn’t want to give them up by changing IDE. This seemed like a huge barrier, but largely thanks to Microsoft these are widely available features now. I spent a few hours getting them setup, but now my config is on GitHub, so it’ll be extremely fast in the future.',ue,U,je='Vim transforms text-editing into a puzzle game-like experience
',me,E,Ue='The final reason, and one that caught me by surprise, is that using vim is fun! It has really changed the text editing experience. I think of text editing as the necessary labor that shapes and molds text like clay until it matches the picture in my mind of what the code should do. With a basic editor, this is laborious and menial work. It’s akin to sculpting using only a fine chisel. Vim transforms text-editing into a puzzle game-like experience that makes text editing a lot more fun. Look at Primeagen’s enthusiasm for nailing a macro! I have never seen anyone that excited about typing using a regular text editor.',de,N,Ee='The fun alone makes vim worth learning. I love coding, and I’m thrilled to still be finding new ways to add joy to the experience. Given the recent 2024 Stack Overflow developer survey showed only 20% of developers are happy at work, I’m hoping that we can all get a little better at putting the fun into development.';return{c(){h=o("p"),h.textContent=p,c=s(),d=o("p"),d.textContent=u,m=s(),f=o("ul"),f.innerHTML=fe,$=s(),y=o("p"),y.innerHTML=pe,O=s(),w=o("ul"),w.innerHTML=ve,X=s(),b=o("p"),b.textContent=ge,Z=s(),x=o("p"),x.textContent=ye,G=s(),k=o("p"),k.innerHTML=we,R=s(),I=o("ul"),I.innerHTML=be,Y=s(),C=o("p"),C.innerHTML=xe,B=s(),T=o("picture"),T.innerHTML=ke,F=s(),_=o("p"),_.innerHTML=Ie,K=s(),v=o("h2"),v.innerHTML=Ce,Q=s(),L=o("p"),L.textContent=Te,J=s(),H=o("p"),H.innerHTML=_e,ee=s(),M=o("ol"),M.innerHTML=Le,te=s(),P=o("p"),P.innerHTML=He,ie=s(),z=o("p"),z.textContent=Me,ne=s(),q=o("ul"),q.innerHTML=Pe,oe=s(),g=o("h2"),g.innerHTML=ze,ae=s(),A=o("p"),A.textContent=qe,le=s(),D=o("p"),D.textContent=Ae,se=s(),S=o("ul"),S.innerHTML=De,re=s(),V=o("p"),V.textContent=Se,he=s(),j=o("p"),j.innerHTML=Ve,ue=s(),U=o("blockquote"),U.innerHTML=je,me=s(),E=o("p"),E.innerHTML=Ue,de=s(),N=o("p"),N.innerHTML=Ee,this.h()},l(e){h=a(e,"P",{"data-svelte-h":!0}),l(h)!=="svelte-zkivtz"&&(h.textContent=p),c=r(e),d=a(e,"P",{"data-svelte-h":!0}),l(d)!=="svelte-1bbkmym"&&(d.textContent=u),m=r(e),f=a(e,"UL",{"data-svelte-h":!0}),l(f)!=="svelte-ftd1k9"&&(f.innerHTML=fe),$=r(e),y=a(e,"P",{"data-svelte-h":!0}),l(y)!=="svelte-196tzfe"&&(y.innerHTML=pe),O=r(e),w=a(e,"UL",{"data-svelte-h":!0}),l(w)!=="svelte-yefy1y"&&(w.innerHTML=ve),X=r(e),b=a(e,"P",{"data-svelte-h":!0}),l(b)!=="svelte-1lytok8"&&(b.textContent=ge),Z=r(e),x=a(e,"P",{"data-svelte-h":!0}),l(x)!=="svelte-ltcwr0"&&(x.textContent=ye),G=r(e),k=a(e,"P",{"data-svelte-h":!0}),l(k)!=="svelte-1i9zznc"&&(k.innerHTML=we),R=r(e),I=a(e,"UL",{"data-svelte-h":!0}),l(I)!=="svelte-tr1jrt"&&(I.innerHTML=be),Y=r(e),C=a(e,"P",{"data-svelte-h":!0}),l(C)!=="svelte-1rznajm"&&(C.innerHTML=xe),B=r(e),T=a(e,"PICTURE",{"data-svelte-h":!0}),l(T)!=="svelte-1yxtx4e"&&(T.innerHTML=ke),F=r(e),_=a(e,"P",{"data-svelte-h":!0}),l(_)!=="svelte-1l9hf83"&&(_.innerHTML=Ie),K=r(e),v=a(e,"H2",{id:!0,"data-svelte-h":!0}),l(v)!=="svelte-1szpcgd"&&(v.innerHTML=Ce),Q=r(e),L=a(e,"P",{"data-svelte-h":!0}),l(L)!=="svelte-1nkyewk"&&(L.textContent=Te),J=r(e),H=a(e,"P",{"data-svelte-h":!0}),l(H)!=="svelte-bkt5fd"&&(H.innerHTML=_e),ee=r(e),M=a(e,"OL",{"data-svelte-h":!0}),l(M)!=="svelte-hhsid6"&&(M.innerHTML=Le),te=r(e),P=a(e,"P",{"data-svelte-h":!0}),l(P)!=="svelte-4iuswv"&&(P.innerHTML=He),ie=r(e),z=a(e,"P",{"data-svelte-h":!0}),l(z)!=="svelte-19thoi1"&&(z.textContent=Me),ne=r(e),q=a(e,"UL",{"data-svelte-h":!0}),l(q)!=="svelte-1vg8q72"&&(q.innerHTML=Pe),oe=r(e),g=a(e,"H2",{id:!0,"data-svelte-h":!0}),l(g)!=="svelte-1ot9t4k"&&(g.innerHTML=ze),ae=r(e),A=a(e,"P",{"data-svelte-h":!0}),l(A)!=="svelte-15jpkag"&&(A.textContent=qe),le=r(e),D=a(e,"P",{"data-svelte-h":!0}),l(D)!=="svelte-10694c4"&&(D.textContent=Ae),se=r(e),S=a(e,"UL",{"data-svelte-h":!0}),l(S)!=="svelte-1f5wht3"&&(S.innerHTML=De),re=r(e),V=a(e,"P",{"data-svelte-h":!0}),l(V)!=="svelte-1c4tfgf"&&(V.textContent=Se),he=r(e),j=a(e,"P",{"data-svelte-h":!0}),l(j)!=="svelte-1w0kg62"&&(j.innerHTML=Ve),ue=r(e),U=a(e,"BLOCKQUOTE",{"data-svelte-h":!0}),l(U)!=="svelte-1fx5cjq"&&(U.innerHTML=je),me=r(e),E=a(e,"P",{"data-svelte-h":!0}),l(E)!=="svelte-b94g"&&(E.innerHTML=Ue),de=r(e),N=a(e,"P",{"data-svelte-h":!0}),l(N)!=="svelte-1y30bl5"&&(N.innerHTML=Ee),this.h()},h(){We(v,"id","configuring-neovim"),We(g,"id","why-i-changed-my-mind-about-vim")},m(e,t){i(e,h,t),i(e,c,t),i(e,d,t),i(e,m,t),i(e,f,t),i(e,$,t),i(e,y,t),i(e,O,t),i(e,w,t),i(e,X,t),i(e,b,t),i(e,Z,t),i(e,x,t),i(e,G,t),i(e,k,t),i(e,R,t),i(e,I,t),i(e,Y,t),i(e,C,t),i(e,B,t),i(e,T,t),i(e,F,t),i(e,_,t),i(e,K,t),i(e,v,t),i(e,Q,t),i(e,L,t),i(e,J,t),i(e,H,t),i(e,ee,t),i(e,M,t),i(e,te,t),i(e,P,t),i(e,ie,t),i(e,z,t),i(e,ne,t),i(e,q,t),i(e,oe,t),i(e,g,t),i(e,ae,t),i(e,A,t),i(e,le,t),i(e,D,t),i(e,se,t),i(e,S,t),i(e,re,t),i(e,V,t),i(e,he,t),i(e,j,t),i(e,ue,t),i(e,U,t),i(e,me,t),i(e,E,t),i(e,de,t),i(e,N,t)},p:Ze,d(e){e&&(n(h),n(c),n(d),n(m),n(f),n($),n(y),n(O),n(w),n(X),n(b),n(Z),n(x),n(G),n(k),n(R),n(I),n(Y),n(C),n(B),n(T),n(F),n(_),n(K),n(v),n(Q),n(L),n(J),n(H),n(ee),n(M),n(te),n(P),n(ie),n(z),n(ne),n(q),n(oe),n(g),n(ae),n(A),n(le),n(D),n(se),n(S),n(re),n(V),n(he),n(j),n(ue),n(U),n(me),n(E),n(de),n(N))}}}function nt(W){let h,p;const c=[W[0],Oe];let d={$$slots:{default:[it]},$$scope:{ctx:W}};for(let u=0;u{p(0,h=ce(ce({},h),Ne(c)))},h=Ne(h),[h]}class ht extends Ge{constructor(h){super(),Re(this,h,ot,nt,Xe,{})}}export{ht as default,Oe as metadata};
diff --git a/_app/immutable/chunks/I want a smaller phone.CBtpzzFK.js b/_app/immutable/chunks/I want a smaller phone.BQKttvvC.js
similarity index 98%
rename from _app/immutable/chunks/I want a smaller phone.CBtpzzFK.js
rename to _app/immutable/chunks/I want a smaller phone.BQKttvvC.js
index 75f8629e04..4044e6a535 100644
--- a/_app/immutable/chunks/I want a smaller phone.CBtpzzFK.js
+++ b/_app/immutable/chunks/I want a smaller phone.BQKttvvC.js
@@ -1 +1 @@
-import{s as q,p as k,q as M,e as f,a as _,c as g,m as y,g as v,i as l,n as j,f as i}from"./scheduler.ewBkyc9q.js";import{S,i as z,c as A,a as B,m as F,t as H,b as R,d as U}from"./index.DpmaPz1F.js";import{g as Z,a as L}from"./spread.CgU5AtxT.js";import{M as D}from"./MDSveXNoteLayout.Bx5vQYjx.js";function G(c){let t,u="Recently a friend and I decided to spend a Friday working from a nearby island. It was a great change of pace at the end of a long week. I really enjoy finding opportunities to co-work with friends; it’s a great opportunity to catch up, get a new perspective, and discuss ideas. One topic we discussed was smart phones - those great little computers that fit in a pocket and can do almost anything. But are they really great?",r,o,a="When you really think about it, what do you spend time doing on your phone? For me, there are two categories of answers. The first is the things I’m happy to do on my phone and which I consider quite valuable uses:",n,m,C="Getting directions to wherever I’m going playing music Meditating Reading without my kindle Misc work tasks on the go - messaging, calendar, email, etc. Quickly looking things up ",w,p,b="There’s a common theme that ties most of these together - they are mostly short tasks done away from a computer! I’ve come to realize that my productive work is done at a computer, not on a smartphone. The smartphone is a complement to the computer, but not a replacement when it comes to doing productive work.",x,d,T="Unfortunately, I’m also a fallible human. I don’t use my phone for strictly productive work while away from a computer. I also play games, read twitter, and spend more time than I am proud of scrolling through short-form videos. Because the phone is so low-effort, I’ve found I’ll often pick it up even when I have access to something better for the task at hand - namely my laptop. As it turns out, I’m a big stupid dopamine-seeking monkey!",I,h,$="I’ve come to the realization that I don’t really want or need the latest and greatest phone. It doesn’t need to have the largest screen or the fastest processor. I’ve decided that my next phone will be smaller and less enticing to use, and that it’s better that way.";return{c(){t=f("p"),t.textContent=u,r=_(),o=f("p"),o.textContent=a,n=_(),m=f("ul"),m.innerHTML=C,w=_(),p=f("p"),p.textContent=b,x=_(),d=f("p"),d.textContent=T,I=_(),h=f("p"),h.textContent=$},l(e){t=g(e,"P",{"data-svelte-h":!0}),y(t)!=="svelte-il561k"&&(t.textContent=u),r=v(e),o=g(e,"P",{"data-svelte-h":!0}),y(o)!=="svelte-u7qr17"&&(o.textContent=a),n=v(e),m=g(e,"UL",{"data-svelte-h":!0}),y(m)!=="svelte-dnotmj"&&(m.innerHTML=C),w=v(e),p=g(e,"P",{"data-svelte-h":!0}),y(p)!=="svelte-4huf8b"&&(p.textContent=b),x=v(e),d=g(e,"P",{"data-svelte-h":!0}),y(d)!=="svelte-fvpy0e"&&(d.textContent=T),I=v(e),h=g(e,"P",{"data-svelte-h":!0}),y(h)!=="svelte-14iedxg"&&(h.textContent=$)},m(e,s){l(e,t,s),l(e,r,s),l(e,o,s),l(e,n,s),l(e,m,s),l(e,w,s),l(e,p,s),l(e,x,s),l(e,d,s),l(e,I,s),l(e,h,s)},p:j,d(e){e&&(i(t),i(r),i(o),i(n),i(m),i(w),i(p),i(x),i(d),i(I),i(h))}}}function N(c){let t,u;const r=[c[0],P];let o={$$slots:{default:[G]},$$scope:{ctx:c}};for(let a=0;a{u(0,t=k(k({},t),M(r)))},t=M(t),[t]}class J extends S{constructor(t){super(),z(this,t,O,N,q,{})}}export{J as default,P as metadata};
+import{s as q,p as k,q as M,e as f,a as _,c as g,m as y,g as v,i as l,n as j,f as i}from"./scheduler.ewBkyc9q.js";import{S,i as z,c as A,a as B,m as F,t as H,b as R,d as U}from"./index.DpmaPz1F.js";import{g as Z,a as L}from"./spread.CgU5AtxT.js";import{M as D}from"./MDSveXNoteLayout.Dbh0E4KQ.js";function G(c){let t,u="Recently a friend and I decided to spend a Friday working from a nearby island. It was a great change of pace at the end of a long week. I really enjoy finding opportunities to co-work with friends; it’s a great opportunity to catch up, get a new perspective, and discuss ideas. One topic we discussed was smart phones - those great little computers that fit in a pocket and can do almost anything. But are they really great?",r,o,a="When you really think about it, what do you spend time doing on your phone? For me, there are two categories of answers. The first is the things I’m happy to do on my phone and which I consider quite valuable uses:",n,m,C="Getting directions to wherever I’m going playing music Meditating Reading without my kindle Misc work tasks on the go - messaging, calendar, email, etc. Quickly looking things up ",w,p,b="There’s a common theme that ties most of these together - they are mostly short tasks done away from a computer! I’ve come to realize that my productive work is done at a computer, not on a smartphone. The smartphone is a complement to the computer, but not a replacement when it comes to doing productive work.",x,d,T="Unfortunately, I’m also a fallible human. I don’t use my phone for strictly productive work while away from a computer. I also play games, read twitter, and spend more time than I am proud of scrolling through short-form videos. Because the phone is so low-effort, I’ve found I’ll often pick it up even when I have access to something better for the task at hand - namely my laptop. As it turns out, I’m a big stupid dopamine-seeking monkey!",I,h,$="I’ve come to the realization that I don’t really want or need the latest and greatest phone. It doesn’t need to have the largest screen or the fastest processor. I’ve decided that my next phone will be smaller and less enticing to use, and that it’s better that way.";return{c(){t=f("p"),t.textContent=u,r=_(),o=f("p"),o.textContent=a,n=_(),m=f("ul"),m.innerHTML=C,w=_(),p=f("p"),p.textContent=b,x=_(),d=f("p"),d.textContent=T,I=_(),h=f("p"),h.textContent=$},l(e){t=g(e,"P",{"data-svelte-h":!0}),y(t)!=="svelte-il561k"&&(t.textContent=u),r=v(e),o=g(e,"P",{"data-svelte-h":!0}),y(o)!=="svelte-u7qr17"&&(o.textContent=a),n=v(e),m=g(e,"UL",{"data-svelte-h":!0}),y(m)!=="svelte-dnotmj"&&(m.innerHTML=C),w=v(e),p=g(e,"P",{"data-svelte-h":!0}),y(p)!=="svelte-4huf8b"&&(p.textContent=b),x=v(e),d=g(e,"P",{"data-svelte-h":!0}),y(d)!=="svelte-fvpy0e"&&(d.textContent=T),I=v(e),h=g(e,"P",{"data-svelte-h":!0}),y(h)!=="svelte-14iedxg"&&(h.textContent=$)},m(e,s){l(e,t,s),l(e,r,s),l(e,o,s),l(e,n,s),l(e,m,s),l(e,w,s),l(e,p,s),l(e,x,s),l(e,d,s),l(e,I,s),l(e,h,s)},p:j,d(e){e&&(i(t),i(r),i(o),i(n),i(m),i(w),i(p),i(x),i(d),i(I),i(h))}}}function N(c){let t,u;const r=[c[0],P];let o={$$slots:{default:[G]},$$scope:{ctx:c}};for(let a=0;a{u(0,t=k(k({},t),M(r)))},t=M(t),[t]}class J extends S{constructor(t){super(),z(this,t,O,N,q,{})}}export{J as default,P as metadata};
diff --git a/_app/immutable/chunks/Identity functions.BWjbs7CM.js b/_app/immutable/chunks/Identity functions.Uu9-f9Hk.js
similarity index 99%
rename from _app/immutable/chunks/Identity functions.BWjbs7CM.js
rename to _app/immutable/chunks/Identity functions.Uu9-f9Hk.js
index da6e42b6ae..027f9c2d77 100644
--- a/_app/immutable/chunks/Identity functions.BWjbs7CM.js
+++ b/_app/immutable/chunks/Identity functions.Uu9-f9Hk.js
@@ -1,4 +1,4 @@
-import{s as pa,p as vs,q as Ys,e as r,a as p,H as c,u as h,c as t,m as k,g as e,v as d,o as Js,i as n,n as ea,f as o}from"./scheduler.ewBkyc9q.js";import{S as ia,i as ra,c as ta,a as ka,m as ca,t as ha,b as da,d as ya}from"./index.DpmaPz1F.js";import{g as Aa,a as Ps}from"./spread.CgU5AtxT.js";import{M as Ba}from"./MDSveXNoteLayout.Bx5vQYjx.js";function Da(H){let l,u="Identity functions are a tool to improve type information. They take the form of a function that provides TypeScript with extra type information and typically have a return value that is identical to argument passed to them. Typically identity functions are used to either provide a library’s users with better type information, or for a library to get better type information from a user. In both cases, the goal seems to be improving ease of use and developer experience.",B,y,i='Providing type hints to API consumers',A,D,Es="Libraries with many configuration options commonly use an identity function to make it easier for users to configure them. This is typically done by exporting a function with a name like defineConfig()
. It will take a parameter typed identically to the library’s configuration object. Since this tells the IDE what values exist on the object, it can display those options to the users. I much prefer this in-editor experience to tabbing back and forth between my code and the docs. Some tools I use that take this approach are:",ts,f,bs='typescript-eslint vite’s defineConfig ',ks,w,Fs="For example, compare the intellisense help with and without Vite’s defineConfig()
:",cs,S,qs=`import { function defineConfig(config: UserConfig): UserConfig (+3 overloads)
Type helper to make it easier to use vite.config.ts
+import{s as pa,p as vs,q as Ys,e as r,a as p,H as c,u as h,c as t,m as k,g as e,v as d,o as Js,i as n,n as ea,f as o}from"./scheduler.ewBkyc9q.js";import{S as ia,i as ra,c as ta,a as ka,m as ca,t as ha,b as da,d as ya}from"./index.DpmaPz1F.js";import{g as Aa,a as Ps}from"./spread.CgU5AtxT.js";import{M as Ba}from"./MDSveXNoteLayout.Dbh0E4KQ.js";function Da(H){let l,u="Identity functions are a tool to improve type information. They take the form of a function that provides TypeScript with extra type information and typically have a return value that is identical to argument passed to them. Typically identity functions are used to either provide a library’s users with better type information, or for a library to get better type information from a user. In both cases, the goal seems to be improving ease of use and developer experience.",B,y,i='defineConfig()
. It will take a parameter typed identically to the library’s configuration object. Since this tells the IDE what values exist on the object, it can display those options to the users. I much prefer this in-editor experience to tabbing back and forth between my code and the docs. Some tools I use that take this approach are:",ts,f,bs='typescript-eslint vite’s defineConfig ',ks,w,Fs="For example, compare the intellisense help with and without Vite’s defineConfig()
:",cs,S,qs=`import { function defineConfig(config: UserConfig): UserConfig (+3 overloads)
Type helper to make it easier to use vite.config.ts
accepts a direct
{@link
UserConfig
diff --git a/_app/immutable/chunks/Improve site previews on social media by unfurling webpages.DYaIAgRS.js b/_app/immutable/chunks/Improve site previews on social media by unfurling webpages.5o_4F9Og.js
similarity index 99%
rename from _app/immutable/chunks/Improve site previews on social media by unfurling webpages.DYaIAgRS.js
rename to _app/immutable/chunks/Improve site previews on social media by unfurling webpages.5o_4F9Og.js
index 82d338c9e9..f94abf1305 100644
--- a/_app/immutable/chunks/Improve site previews on social media by unfurling webpages.DYaIAgRS.js
+++ b/_app/immutable/chunks/Improve site previews on social media by unfurling webpages.5o_4F9Og.js
@@ -1,4 +1,4 @@
-import{s as me,p as K,q as pe,e as r,a as l,H as R,u as X,c as p,m as c,g as n,v as J,o as fe,i as t,n as De,f as a}from"./scheduler.ewBkyc9q.js";import{S as Be,i as Ce,c as ge,a as Ae,m as ve,t as we,b as be,d as _e}from"./index.DpmaPz1F.js";import{g as xe,a as ce}from"./spread.CgU5AtxT.js";import{M as Te}from"./MDSveXNoteLayout.Bx5vQYjx.js";function Le(x){let i,u='Facebook Twitter Slack LinkedIn ",O,m,V="…and other platforms!",$,f,W='To maximize your click-through rates for social media shares, give social media users a great first impression. To help social media platforms present your content to their users, you need to help them unfurl your pages. This is done using 2 simple APIs: Facebook Open Graph HTML Markup and Twitter Cards.',q,D,ee="Most platforms use the Open Graph API. It has 5 properties you need to know about:",S,B,se=`og:type
specifies what type of content is the focus of a page. There are 6 options:
+import{s as me,p as K,q as pe,e as r,a as l,H as R,u as X,c as p,m as c,g as n,v as J,o as fe,i as t,n as De,f as a}from"./scheduler.ewBkyc9q.js";import{S as Be,i as Ce,c as ge,a as Ae,m as ve,t as we,b as be,d as _e}from"./index.DpmaPz1F.js";import{g as xe,a as ce}from"./spread.CgU5AtxT.js";import{M as Te}from"./MDSveXNoteLayout.Dbh0E4KQ.js";function Le(x){let i,u=' Use OpenGraph meta tags to provide page previews on social media',h,k,o="You built a website to share something valuable with people. If other people find it valuable, they will share it too, on:",d,y,Q="Facebook Twitter Slack LinkedIn ",O,m,V="…and other platforms!",$,f,W='To maximize your click-through rates for social media shares, give social media users a great first impression. To help social media platforms present your content to their users, you need to help them unfurl your pages. This is done using 2 simple APIs: Facebook Open Graph HTML Markup and Twitter Cards.',q,D,ee="Most platforms use the Open Graph API. It has 5 properties you need to know about:",S,B,se=`og:type
specifies what type of content is the focus of a page. There are 6 options:
website
- this is also the default option if no type is specified article
profile
video
music
book
og:url
specifies your website’s Canonical URL. Think of this as the address for your front door. og:title
is the title page title. This should be contextual and specific to each page. Think article title, not site title. og:description
is a brief description of the page content. Use it to help people make a quick decision about if they are interested in the content. It’s a great place for a hook. og:image
is used to specify a preview/thumbnail image for the page. This could be as simple as the header graphic for the page. `,G,C,te='I wrote this note while adding unfurling content to allandeutsch.com. Here’s the Open Graph code I added to the <head>
of my homepage:',N,T,ke=`<meta property="og:type" content="website"/>
<meta property="og:url" content="https://allandeutsch.com" />
<meta property="og:title" content="Allan Deutsch" />
diff --git a/_app/immutable/chunks/Linting and formatting a svelte typescript project.HFg0G87O.js b/_app/immutable/chunks/Linting and formatting a svelte typescript project.-HsE_da6.js
similarity index 99%
rename from _app/immutable/chunks/Linting and formatting a svelte typescript project.HFg0G87O.js
rename to _app/immutable/chunks/Linting and formatting a svelte typescript project.-HsE_da6.js
index 8978ced9b1..a6dbb13541 100644
--- a/_app/immutable/chunks/Linting and formatting a svelte typescript project.HFg0G87O.js
+++ b/_app/immutable/chunks/Linting and formatting a svelte typescript project.-HsE_da6.js
@@ -1,4 +1,4 @@
-import{s as On,p as ka,q as yn,e as l,a as i,H as c,u as k,c as o,m as p,g as t,v as d,o as u,i as a,n as Rn,f as n}from"./scheduler.ewBkyc9q.js";import{S as zn,i as $n,c as Gn,a as Yn,m as Qn,t as Nn,b as Un,d as Kn}from"./index.DpmaPz1F.js";import{g as Wn,a as fn}from"./spread.CgU5AtxT.js";import{M as Vn}from"./MDSveXNoteLayout.Bx5vQYjx.js";function Jn(Bs){let r,g='Lately I’ve been working on Penguinsight. It’s a tool that helps teams building products for developers get precise & actionable feedback on their docs from the people who have to use them. I’ve been building Penguinsight solo, and it’s freeing to build everything myself and understand how it all works. I get a huge boost in personal productivity, but it’s not without downsides.',A,f,h='Often the downsides of working solo aren’t a big issue for me. I understand the importance of craftsmanship in software development, and usually write great code. On rare occasion, I am even struck with divine inspiration; my body becomes a mere vessel used by the incomprehensible powers of the universe to transcribe code until 3 in the morning. There is no greater sensation; it is a peak experience.',y,m,da='After waking up exhausted for the third time last week only to discover some asshole merged poorly formatted code with bugs into staging at 3am, it was time to act… I got up and walked to a coffee shop. With blood flowing and bean juice in hand, I was resolved to reign in that maniac by any means necessary. Tests weren’t cutting it, so it was time to introduce some static analysis tools: a formatter and linter.',ke,I,ha="This ended up being a bigger project than I expected for a few reasons:",de,L,ya='I needed to integrate prettier-plugin-svelte
since started using zed and no longer gett it via VS Code plugin ESLint upgraded to a new flat config format which I needed to learn typescript-eslint doesn’t support the latest eslint 9.0.0 yet, which naturally I discovered after trying to use the eslint 9 😅 There is a new eslint-plugin-svelte which replaced eslint-plugin-svelte3
',he,P,fa="Here’s how I got it all up and running!",ye,B,ua=' Setting up prettier',fe,E,Aa="Prettier handles file formatting. I prefer to have things formatted consistently and I don’t want to think about it, so I configure my editor to format files on save. This has the added benefit of also saving my files when I use cmd+s
as a “format code” hotkey. Nifty!",ue,D,ma=' Installing prettier packages',Ae,j,ga="From the top, here’s the setup. First, install all the dependencies for formatting (I’ve specified version I know work together). Since these are dev tools, using -D
ensures they don’t get bundled into application code.",me,Ds,An=`npm i -D prettier@3.2.5
+import{s as On,p as ka,q as yn,e as l,a as i,H as c,u as k,c as o,m as p,g as t,v as d,o as u,i as a,n as Rn,f as n}from"./scheduler.ewBkyc9q.js";import{S as zn,i as $n,c as Gn,a as Yn,m as Qn,t as Nn,b as Un,d as Kn}from"./index.DpmaPz1F.js";import{g as Wn,a as fn}from"./spread.CgU5AtxT.js";import{M as Vn}from"./MDSveXNoteLayout.Dbh0E4KQ.js";function Jn(Bs){let r,g='Lately I’ve been working on Penguinsight. It’s a tool that helps teams building products for developers get precise & actionable feedback on their docs from the people who have to use them. I’ve been building Penguinsight solo, and it’s freeing to build everything myself and understand how it all works. I get a huge boost in personal productivity, but it’s not without downsides.',A,f,h='Often the downsides of working solo aren’t a big issue for me. I understand the importance of craftsmanship in software development, and usually write great code. On rare occasion, I am even struck with divine inspiration; my body becomes a mere vessel used by the incomprehensible powers of the universe to transcribe code until 3 in the morning. There is no greater sensation; it is a peak experience.',y,m,da='After waking up exhausted for the third time last week only to discover some asshole merged poorly formatted code with bugs into staging at 3am, it was time to act… I got up and walked to a coffee shop. With blood flowing and bean juice in hand, I was resolved to reign in that maniac by any means necessary. Tests weren’t cutting it, so it was time to introduce some static analysis tools: a formatter and linter.',ke,I,ha="This ended up being a bigger project than I expected for a few reasons:",de,L,ya='I needed to integrate prettier-plugin-svelte
since started using zed and no longer gett it via VS Code plugin ESLint upgraded to a new flat config format which I needed to learn typescript-eslint doesn’t support the latest eslint 9.0.0 yet, which naturally I discovered after trying to use the eslint 9 😅 There is a new eslint-plugin-svelte which replaced eslint-plugin-svelte3
',he,P,fa="Here’s how I got it all up and running!",ye,B,ua=' Setting up prettier',fe,E,Aa="Prettier handles file formatting. I prefer to have things formatted consistently and I don’t want to think about it, so I configure my editor to format files on save. This has the added benefit of also saving my files when I use cmd+s
as a “format code” hotkey. Nifty!",ue,D,ma=' Installing prettier packages',Ae,j,ga="From the top, here’s the setup. First, install all the dependencies for formatting (I’ve specified version I know work together). Since these are dev tools, using -D
ensures they don’t get bundled into application code.",me,Ds,An=`npm i -D prettier@3.2.5
npm i -D prettier-plugin-organize-imports@3.2.4
npm i -D prettier-plugin-svelte@3.2.2
npm i -D prettier-plugin-tailwindcss@0.5.13
`,vs,Cs,mn=`Screenshot whole desktop: ⌘+⇧+3
Screenshot box: ⌘+⇧+4
Screen shot/rec settings: ⌘+⇧+5
Open launchpad: Pinch with thumb and three fingers Open file(s)/folder(s): ⌘+O
Show all windows and virtual desktops: Swipe up with three fingers OR ctrl+↑ Minimize active window: ⌘+M
Switch active application: ⌘+tab
Switch focused window of active application: ⌘+`
Open the emoji and symbols keyboard: 🌐 OR ⌃+⌘+space
",n,c,N="Rebind the caps lock
key to the ^ control
key",z,k,V="Open system settings Search “Customize modifier keys” Change Caps Lock
to ^ Control
",R,h,X=' Software stack',U,b,F='Homebrew - a package manager for MacOS. Install this first and you can use it to install raycast, Arc, and warp.dev Raycast - a drop-in spotlight replacement with window management, calculator, unit conversions, and great extensibility ',E,L,ee='brew install --cask raycast
',C,H,te=' ',A,v,G='Arc Browser - A slick browser with better UI and tab management, built on chromium ',P,S,ae='brew install --cask arc
',T,O,se=' ',B,y,J='warp.dev - A super fast, AI-enabled terminal with an IDE-like editing experience ',q,$,le='brew install --cask warp
',D,I,ie=' ',j;return{c(){a=f("h1"),a.innerHTML=d,r=_(),o=f("ul"),o.innerHTML=i,n=_(),c=f("p"),c.innerHTML=N,z=_(),k=f("ol"),k.innerHTML=V,R=_(),h=f("h1"),h.innerHTML=X,U=_(),b=f("ul"),b.innerHTML=F,E=_(),L=new g(!1),C=m(),H=new g(!1),A=_(),v=f("ul"),v.innerHTML=G,P=_(),S=new g(!1),T=m(),O=new g(!1),B=_(),y=f("ul"),y.innerHTML=J,q=_(),$=new g(!1),D=m(),I=new g(!1),j=m(),this.h()},l(e){a=u(e,"H1",{id:!0,"data-svelte-h":!0}),w(a)!=="svelte-1jbeuhp"&&(a.innerHTML=d),r=p(e),o=u(e,"UL",{"data-svelte-h":!0}),w(o)!=="svelte-1bpfigk"&&(o.innerHTML=i),n=p(e),c=u(e,"P",{"data-svelte-h":!0}),w(c)!=="svelte-1x1uvy4"&&(c.innerHTML=N),z=p(e),k=u(e,"OL",{"data-svelte-h":!0}),w(k)!=="svelte-azr560"&&(k.innerHTML=V),R=p(e),h=u(e,"H1",{id:!0,"data-svelte-h":!0}),w(h)!=="svelte-lno3bb"&&(h.innerHTML=X),U=p(e),b=u(e,"UL",{"data-svelte-h":!0}),w(b)!=="svelte-50u9ss"&&(b.innerHTML=F),E=p(e),L=M(e,!1),C=m(),H=M(e,!1),A=p(e),v=u(e,"UL",{"data-svelte-h":!0}),w(v)!=="svelte-1czr7fn"&&(v.innerHTML=G),P=p(e),S=M(e,!1),T=m(),O=M(e,!1),B=p(e),y=u(e,"UL",{"data-svelte-h":!0}),w(y)!=="svelte-1bb5hrj"&&(y.innerHTML=J),q=p(e),$=M(e,!1),D=m(),I=M(e,!1),j=m(),this.h()},h(){Q(a,"id","mac-tips"),Q(h,"id","software-stack"),L.a=C,H.a=A,S.a=T,O.a=B,$.a=D,I.a=j},m(e,t){s(e,a,t),s(e,r,t),s(e,o,t),s(e,n,t),s(e,c,t),s(e,z,t),s(e,k,t),s(e,R,t),s(e,h,t),s(e,U,t),s(e,b,t),s(e,E,t),L.m(ee,e,t),s(e,C,t),H.m(te,e,t),s(e,A,t),s(e,v,t),s(e,P,t),S.m(ae,e,t),s(e,T,t),O.m(se,e,t),s(e,B,t),s(e,y,t),s(e,q,t),$.m(le,e,t),s(e,D,t),I.m(ie,e,t),s(e,j,t)},p:oe,d(e){e&&(l(a),l(r),l(o),l(n),l(c),l(z),l(k),l(R),l(h),l(U),l(b),l(E),l(C),L.d(),H.d(),l(A),l(v),l(P),l(T),S.d(),O.d(),l(B),l(y),l(q),l(D),$.d(),l(j),I.d())}}}function be(x){let a,d;const r=[x[0],Y];let o={$$slots:{default:[ke]},$$scope:{ctx:x}};for(let i=0;i{d(0,a=Z(Z({},a),K(r)))},a=K(a),[a]}class Le extends re{constructor(a){super(),ce(this,a,ve,be,ne,{})}}export{Le as default,Y as metadata};
+import{s as ne,p as Z,q as K,e as f,a as _,H as g,u as m,c as u,m as w,g as p,v as M,o as Q,i as s,n as oe,f as l}from"./scheduler.ewBkyc9q.js";import{S as re,i as ce,c as _e,a as pe,m as de,t as he,b as fe,d as me}from"./index.DpmaPz1F.js";import{g as ue,a as W}from"./spread.CgU5AtxT.js";import{M as we}from"./MDSveXNoteLayout.Dbh0E4KQ.js";function ke(x){let a,d='Screenshot whole desktop: ⌘+⇧+3
Screenshot box: ⌘+⇧+4
Screen shot/rec settings: ⌘+⇧+5
Open launchpad: Pinch with thumb and three fingers Open file(s)/folder(s): ⌘+O
Show all windows and virtual desktops: Swipe up with three fingers OR ctrl+↑ Minimize active window: ⌘+M
Switch active application: ⌘+tab
Switch focused window of active application: ⌘+`
Open the emoji and symbols keyboard: 🌐 OR ⌃+⌘+space
",n,c,N="Rebind the caps lock
key to the ^ control
key",z,k,V="Open system settings Search “Customize modifier keys” Change Caps Lock
to ^ Control
",R,h,X=' Software stack',U,b,F='Homebrew - a package manager for MacOS. Install this first and you can use it to install raycast, Arc, and warp.dev Raycast - a drop-in spotlight replacement with window management, calculator, unit conversions, and great extensibility ',E,L,ee='brew install --cask raycast
',C,H,te=' ',A,v,G='Arc Browser - A slick browser with better UI and tab management, built on chromium ',P,S,ae='brew install --cask arc
',T,O,se=' ',B,y,J='warp.dev - A super fast, AI-enabled terminal with an IDE-like editing experience ',q,$,le='brew install --cask warp
',D,I,ie=' ',j;return{c(){a=f("h1"),a.innerHTML=d,r=_(),o=f("ul"),o.innerHTML=i,n=_(),c=f("p"),c.innerHTML=N,z=_(),k=f("ol"),k.innerHTML=V,R=_(),h=f("h1"),h.innerHTML=X,U=_(),b=f("ul"),b.innerHTML=F,E=_(),L=new g(!1),C=m(),H=new g(!1),A=_(),v=f("ul"),v.innerHTML=G,P=_(),S=new g(!1),T=m(),O=new g(!1),B=_(),y=f("ul"),y.innerHTML=J,q=_(),$=new g(!1),D=m(),I=new g(!1),j=m(),this.h()},l(e){a=u(e,"H1",{id:!0,"data-svelte-h":!0}),w(a)!=="svelte-1jbeuhp"&&(a.innerHTML=d),r=p(e),o=u(e,"UL",{"data-svelte-h":!0}),w(o)!=="svelte-1bpfigk"&&(o.innerHTML=i),n=p(e),c=u(e,"P",{"data-svelte-h":!0}),w(c)!=="svelte-1x1uvy4"&&(c.innerHTML=N),z=p(e),k=u(e,"OL",{"data-svelte-h":!0}),w(k)!=="svelte-azr560"&&(k.innerHTML=V),R=p(e),h=u(e,"H1",{id:!0,"data-svelte-h":!0}),w(h)!=="svelte-lno3bb"&&(h.innerHTML=X),U=p(e),b=u(e,"UL",{"data-svelte-h":!0}),w(b)!=="svelte-50u9ss"&&(b.innerHTML=F),E=p(e),L=M(e,!1),C=m(),H=M(e,!1),A=p(e),v=u(e,"UL",{"data-svelte-h":!0}),w(v)!=="svelte-1czr7fn"&&(v.innerHTML=G),P=p(e),S=M(e,!1),T=m(),O=M(e,!1),B=p(e),y=u(e,"UL",{"data-svelte-h":!0}),w(y)!=="svelte-1bb5hrj"&&(y.innerHTML=J),q=p(e),$=M(e,!1),D=m(),I=M(e,!1),j=m(),this.h()},h(){Q(a,"id","mac-tips"),Q(h,"id","software-stack"),L.a=C,H.a=A,S.a=T,O.a=B,$.a=D,I.a=j},m(e,t){s(e,a,t),s(e,r,t),s(e,o,t),s(e,n,t),s(e,c,t),s(e,z,t),s(e,k,t),s(e,R,t),s(e,h,t),s(e,U,t),s(e,b,t),s(e,E,t),L.m(ee,e,t),s(e,C,t),H.m(te,e,t),s(e,A,t),s(e,v,t),s(e,P,t),S.m(ae,e,t),s(e,T,t),O.m(se,e,t),s(e,B,t),s(e,y,t),s(e,q,t),$.m(le,e,t),s(e,D,t),I.m(ie,e,t),s(e,j,t)},p:oe,d(e){e&&(l(a),l(r),l(o),l(n),l(c),l(z),l(k),l(R),l(h),l(U),l(b),l(E),l(C),L.d(),H.d(),l(A),l(v),l(P),l(T),S.d(),O.d(),l(B),l(y),l(q),l(D),$.d(),l(j),I.d())}}}function be(x){let a,d;const r=[x[0],Y];let o={$$slots:{default:[ke]},$$scope:{ctx:x}};for(let i=0;i{d(0,a=Z(Z({},a),K(r)))},a=K(a),[a]}class Le extends re{constructor(a){super(),ce(this,a,ve,be,ne,{})}}export{Le as default,Y as metadata};
diff --git a/_app/immutable/chunks/Make API misuse hard.DB0lSOHm.js b/_app/immutable/chunks/Make API misuse hard.-SC5Svxk.js
similarity index 98%
rename from _app/immutable/chunks/Make API misuse hard.DB0lSOHm.js
rename to _app/immutable/chunks/Make API misuse hard.-SC5Svxk.js
index e221449e20..e5bf9332d2 100644
--- a/_app/immutable/chunks/Make API misuse hard.DB0lSOHm.js
+++ b/_app/immutable/chunks/Make API misuse hard.-SC5Svxk.js
@@ -1 +1 @@
-import{s as B,p as A,q as j,e as u,a as v,c as p,m as h,g as b,o as U,i as s,n as G,f as n}from"./scheduler.ewBkyc9q.js";import{S as N,i as Z,c as D,a as E,m as F,t as K,b as O,d as V}from"./index.DpmaPz1F.js";import{g as W,a as z}from"./spread.CgU5AtxT.js";import{M as X}from"./MDSveXNoteLayout.Bx5vQYjx.js";function J(w){let t,m="APIs are a tool used to accomplish a task. In almost every case, there exists one or a few correct ways to do it, and many incorrect ways. A great API makes it much more difficult to do it wrong.",l,o,a='unique_ptr
, an API great at avoiding misuse',r,d,M="My favorite example of this principle is the C++ standard library’s unique_ptr<T>
. In C++, memory needs to be manually allocated and freed by the programmer; it’s extremely hard to get right, and every C++ programmer has struggled with issues that arise from doing it wrong. The unique_ptr<T>
addresses this by taking sole custody of a memory block and freeing the memory when it leaves scope or is destructed. If you use a unique_ptr<T>
to manage all the memory you allocate, you will not have a memory leak. It works correctly by default. Great API design!",I,f,C="Sometimes there is a legitimate need to access the memory address of your data directly, which can be done using unique_ptr<T>
‘s get()
or release()
method. This opens up a variety of ways to shoot yourself in the foot by managing memory incorrectly. It’s still possible to shoot yourself in the foot, but doing so requires manually disabling the safety. It’s harder to use incorrectly. Great API design.",x,c,H=' Unity components, an easily misused API',T,y,L="Unity is a popular game engine that uses a component-centric API. Everything in the game is created as a game object, and an object’s behavior is determined by which components are added to it. A component encapsulates both logic and the data it depends on. Often data is needed by multiple behaviors; the most common example is rendering and physics both needing to know where an object is. Components can read and write to each others’ data via the parent game object: this.parent.get<Component>()
.",k,g,q="This API is simple, straightforward, and easy to use. Upon realizing you need to more data for a behavior, it makes it easy to just grab the data and get on with it. Unfortunately, it’s a terribly slow API for games, requiring at least two different cache misses - the parent, and the other component. Used sparingly this isn’t a problem, but used in many components on many game objects, it offers a convenient way to make every part of the game run slowly. Furthermore, the way the API is designed makes it impossible to avoid the cache misses; it’s performance dead-end that can’t be optimized! This API makes it easy to ruin a game’s performance; it’s a poor API design.",P,_,$='I found the idea of APIs limiting performance of game engines so fascinating I did a C++Now presentation on the topic. In the talk, I introduce another API design which is still simple to use, makes it easy to introduce additional data in the future, and keeps the backing implementation possible to optimize in a variety of ways, including with safe concurrency. It’s worth a watch if you build performance-sensitive libraries.';return{c(){t=u("p"),t.innerHTML=m,l=v(),o=u("h2"),o.innerHTML=a,r=v(),d=u("p"),d.innerHTML=M,I=v(),f=u("p"),f.innerHTML=C,x=v(),c=u("h2"),c.innerHTML=H,T=v(),y=u("p"),y.innerHTML=L,k=v(),g=u("p"),g.textContent=q,P=v(),_=u("p"),_.innerHTML=$,this.h()},l(e){t=p(e,"P",{"data-svelte-h":!0}),h(t)!=="svelte-5ecqd8"&&(t.innerHTML=m),l=b(e),o=p(e,"H2",{id:!0,"data-svelte-h":!0}),h(o)!=="svelte-1ujex5"&&(o.innerHTML=a),r=b(e),d=p(e,"P",{"data-svelte-h":!0}),h(d)!=="svelte-1us2pa1"&&(d.innerHTML=M),I=b(e),f=p(e,"P",{"data-svelte-h":!0}),h(f)!=="svelte-12kyeqs"&&(f.innerHTML=C),x=b(e),c=p(e,"H2",{id:!0,"data-svelte-h":!0}),h(c)!=="svelte-83xwk3"&&(c.innerHTML=H),T=b(e),y=p(e,"P",{"data-svelte-h":!0}),h(y)!=="svelte-9tv4mh"&&(y.innerHTML=L),k=b(e),g=p(e,"P",{"data-svelte-h":!0}),h(g)!=="svelte-zmiy4p"&&(g.textContent=q),P=b(e),_=p(e,"P",{"data-svelte-h":!0}),h(_)!=="svelte-16012st"&&(_.innerHTML=$),this.h()},h(){U(o,"id","cs-unique_ptr-an-api-great-at-avoiding-misuse"),U(c,"id","unity-components-an-easily-misused-api")},m(e,i){s(e,t,i),s(e,l,i),s(e,o,i),s(e,r,i),s(e,d,i),s(e,I,i),s(e,f,i),s(e,x,i),s(e,c,i),s(e,T,i),s(e,y,i),s(e,k,i),s(e,g,i),s(e,P,i),s(e,_,i)},p:G,d(e){e&&(n(t),n(l),n(o),n(r),n(d),n(I),n(f),n(x),n(c),n(T),n(y),n(k),n(g),n(P),n(_))}}}function Q(w){let t,m;const l=[w[0],S];let o={$$slots:{default:[J]},$$scope:{ctx:w}};for(let a=0;a{m(0,t=A(A({},t),j(l)))},t=j(t),[t]}class ie extends N{constructor(t){super(),Z(this,t,R,Q,B,{})}}export{ie as default,S as metadata};
+import{s as B,p as A,q as j,e as u,a as v,c as p,m as h,g as b,o as U,i as s,n as G,f as n}from"./scheduler.ewBkyc9q.js";import{S as N,i as Z,c as D,a as E,m as F,t as K,b as O,d as V}from"./index.DpmaPz1F.js";import{g as W,a as z}from"./spread.CgU5AtxT.js";import{M as X}from"./MDSveXNoteLayout.Dbh0E4KQ.js";function J(w){let t,m="APIs are a tool used to accomplish a task. In almost every case, there exists one or a few correct ways to do it, and many incorrect ways. A great API makes it much more difficult to do it wrong.",l,o,a='unique_ptr
, an API great at avoiding misuse',r,d,M="My favorite example of this principle is the C++ standard library’s unique_ptr<T>
. In C++, memory needs to be manually allocated and freed by the programmer; it’s extremely hard to get right, and every C++ programmer has struggled with issues that arise from doing it wrong. The unique_ptr<T>
addresses this by taking sole custody of a memory block and freeing the memory when it leaves scope or is destructed. If you use a unique_ptr<T>
to manage all the memory you allocate, you will not have a memory leak. It works correctly by default. Great API design!",I,f,C="Sometimes there is a legitimate need to access the memory address of your data directly, which can be done using unique_ptr<T>
‘s get()
or release()
method. This opens up a variety of ways to shoot yourself in the foot by managing memory incorrectly. It’s still possible to shoot yourself in the foot, but doing so requires manually disabling the safety. It’s harder to use incorrectly. Great API design.",x,c,H=' Unity components, an easily misused API',T,y,L="Unity is a popular game engine that uses a component-centric API. Everything in the game is created as a game object, and an object’s behavior is determined by which components are added to it. A component encapsulates both logic and the data it depends on. Often data is needed by multiple behaviors; the most common example is rendering and physics both needing to know where an object is. Components can read and write to each others’ data via the parent game object: this.parent.get<Component>()
.",k,g,q="This API is simple, straightforward, and easy to use. Upon realizing you need to more data for a behavior, it makes it easy to just grab the data and get on with it. Unfortunately, it’s a terribly slow API for games, requiring at least two different cache misses - the parent, and the other component. Used sparingly this isn’t a problem, but used in many components on many game objects, it offers a convenient way to make every part of the game run slowly. Furthermore, the way the API is designed makes it impossible to avoid the cache misses; it’s performance dead-end that can’t be optimized! This API makes it easy to ruin a game’s performance; it’s a poor API design.",P,_,$='I found the idea of APIs limiting performance of game engines so fascinating I did a C++Now presentation on the topic. In the talk, I introduce another API design which is still simple to use, makes it easy to introduce additional data in the future, and keeps the backing implementation possible to optimize in a variety of ways, including with safe concurrency. It’s worth a watch if you build performance-sensitive libraries.';return{c(){t=u("p"),t.innerHTML=m,l=v(),o=u("h2"),o.innerHTML=a,r=v(),d=u("p"),d.innerHTML=M,I=v(),f=u("p"),f.innerHTML=C,x=v(),c=u("h2"),c.innerHTML=H,T=v(),y=u("p"),y.innerHTML=L,k=v(),g=u("p"),g.textContent=q,P=v(),_=u("p"),_.innerHTML=$,this.h()},l(e){t=p(e,"P",{"data-svelte-h":!0}),h(t)!=="svelte-5ecqd8"&&(t.innerHTML=m),l=b(e),o=p(e,"H2",{id:!0,"data-svelte-h":!0}),h(o)!=="svelte-1ujex5"&&(o.innerHTML=a),r=b(e),d=p(e,"P",{"data-svelte-h":!0}),h(d)!=="svelte-1us2pa1"&&(d.innerHTML=M),I=b(e),f=p(e,"P",{"data-svelte-h":!0}),h(f)!=="svelte-12kyeqs"&&(f.innerHTML=C),x=b(e),c=p(e,"H2",{id:!0,"data-svelte-h":!0}),h(c)!=="svelte-83xwk3"&&(c.innerHTML=H),T=b(e),y=p(e,"P",{"data-svelte-h":!0}),h(y)!=="svelte-9tv4mh"&&(y.innerHTML=L),k=b(e),g=p(e,"P",{"data-svelte-h":!0}),h(g)!=="svelte-zmiy4p"&&(g.textContent=q),P=b(e),_=p(e,"P",{"data-svelte-h":!0}),h(_)!=="svelte-16012st"&&(_.innerHTML=$),this.h()},h(){U(o,"id","cs-unique_ptr-an-api-great-at-avoiding-misuse"),U(c,"id","unity-components-an-easily-misused-api")},m(e,i){s(e,t,i),s(e,l,i),s(e,o,i),s(e,r,i),s(e,d,i),s(e,I,i),s(e,f,i),s(e,x,i),s(e,c,i),s(e,T,i),s(e,y,i),s(e,k,i),s(e,g,i),s(e,P,i),s(e,_,i)},p:G,d(e){e&&(n(t),n(l),n(o),n(r),n(d),n(I),n(f),n(x),n(c),n(T),n(y),n(k),n(g),n(P),n(_))}}}function Q(w){let t,m;const l=[w[0],S];let o={$$slots:{default:[J]},$$scope:{ctx:w}};for(let a=0;a{m(0,t=A(A({},t),j(l)))},t=j(t),[t]}class ie extends N{constructor(t){super(),Z(this,t,R,Q,B,{})}}export{ie as default,S as metadata};
diff --git a/_app/immutable/chunks/Make example code interactive.CM_Y_3d6.js b/_app/immutable/chunks/Make example code interactive.NiPV8GBo.js
similarity index 98%
rename from _app/immutable/chunks/Make example code interactive.CM_Y_3d6.js
rename to _app/immutable/chunks/Make example code interactive.NiPV8GBo.js
index b4a1cf0c12..27523cd176 100644
--- a/_app/immutable/chunks/Make example code interactive.CM_Y_3d6.js
+++ b/_app/immutable/chunks/Make example code interactive.NiPV8GBo.js
@@ -1 +1 @@
-import{s as $,p as k,q as M,e as h,a as y,c as g,m as f,g as x,i as c,n as H,f as m}from"./scheduler.ewBkyc9q.js";import{S as P,i as S,c as I,a as q,m as W,t as D,b as A,d as j}from"./index.DpmaPz1F.js";import{g as Z,a as C}from"./spread.CgU5AtxT.js";import{M as z}from"./MDSveXNoteLayout.Bx5vQYjx.js";function F(p){let e,o="Seeing a snippet of example code is extremely helpful. It concretely demonstrates how to implement an algorithm, use an API, configure a library, or just about anything else. Code snippets are crucial element of excellent technical writing. Code snippets have one massive gap, though: you can’t execute the code!",s,i,n="While seeing an example of code is very helpful, interacting with the code is even better. When working with a type system, seeing what compiles and what doesn’t and how it impacts runtime values fundamental to understanding it. When working with styling or rendering, seeing exactly what gets rendered and being able to change the code and see how the output changes is critical to learning. Seeing how to use an API is helpful, but it’s no substitute for actually sending a requesting and getting a response.",a,l,w="Developers typically learn best through interaction. Interaction shapes thinking, and the experience of interacting with code improves the developer’s ability to think about the code. When it comes to teaching a technical topic, interactive examples are the holy grail.",_,u,b="Don’t stop at showing example code. Make it interactive.",v,d,T='On my blog I Dynamically generate TypeScript Playground links and Add a demo link to TypeScript code blocks. There is usually a way to make more code examples interactive. Figure out how and get it done!';return{c(){e=h("p"),e.textContent=o,s=y(),i=h("p"),i.innerHTML=n,a=y(),l=h("p"),l.innerHTML=w,_=y(),u=h("p"),u.innerHTML=b,v=y(),d=h("p"),d.innerHTML=T},l(t){e=g(t,"P",{"data-svelte-h":!0}),f(e)!=="svelte-86ex4l"&&(e.textContent=o),s=x(t),i=g(t,"P",{"data-svelte-h":!0}),f(i)!=="svelte-1427lur"&&(i.innerHTML=n),a=x(t),l=g(t,"P",{"data-svelte-h":!0}),f(l)!=="svelte-wqexyc"&&(l.innerHTML=w),_=x(t),u=g(t,"P",{"data-svelte-h":!0}),f(u)!=="svelte-mhqtg9"&&(u.innerHTML=b),v=x(t),d=g(t,"P",{"data-svelte-h":!0}),f(d)!=="svelte-1k7du1z"&&(d.innerHTML=T)},m(t,r){c(t,e,r),c(t,s,r),c(t,i,r),c(t,a,r),c(t,l,r),c(t,_,r),c(t,u,r),c(t,v,r),c(t,d,r)},p:H,d(t){t&&(m(e),m(s),m(i),m(a),m(l),m(_),m(u),m(v),m(d))}}}function N(p){let e,o;const s=[p[0],L];let i={$$slots:{default:[F]},$$scope:{ctx:p}};for(let n=0;n{o(0,e=k(k({},e),M(s)))},e=M(e),[e]}class J extends P{constructor(e){super(),S(this,e,O,N,$,{})}}export{J as default,L as metadata};
+import{s as $,p as k,q as M,e as h,a as y,c as g,m as f,g as x,i as c,n as H,f as m}from"./scheduler.ewBkyc9q.js";import{S as P,i as S,c as I,a as q,m as W,t as D,b as A,d as j}from"./index.DpmaPz1F.js";import{g as Z,a as C}from"./spread.CgU5AtxT.js";import{M as z}from"./MDSveXNoteLayout.Dbh0E4KQ.js";function F(p){let e,o="Seeing a snippet of example code is extremely helpful. It concretely demonstrates how to implement an algorithm, use an API, configure a library, or just about anything else. Code snippets are crucial element of excellent technical writing. Code snippets have one massive gap, though: you can’t execute the code!",s,i,n="While seeing an example of code is very helpful, interacting with the code is even better. When working with a type system, seeing what compiles and what doesn’t and how it impacts runtime values fundamental to understanding it. When working with styling or rendering, seeing exactly what gets rendered and being able to change the code and see how the output changes is critical to learning. Seeing how to use an API is helpful, but it’s no substitute for actually sending a requesting and getting a response.",a,l,w="Developers typically learn best through interaction. Interaction shapes thinking, and the experience of interacting with code improves the developer’s ability to think about the code. When it comes to teaching a technical topic, interactive examples are the holy grail.",_,u,b="Don’t stop at showing example code. Make it interactive.",v,d,T='On my blog I Dynamically generate TypeScript Playground links and Add a demo link to TypeScript code blocks. There is usually a way to make more code examples interactive. Figure out how and get it done!';return{c(){e=h("p"),e.textContent=o,s=y(),i=h("p"),i.innerHTML=n,a=y(),l=h("p"),l.innerHTML=w,_=y(),u=h("p"),u.innerHTML=b,v=y(),d=h("p"),d.innerHTML=T},l(t){e=g(t,"P",{"data-svelte-h":!0}),f(e)!=="svelte-86ex4l"&&(e.textContent=o),s=x(t),i=g(t,"P",{"data-svelte-h":!0}),f(i)!=="svelte-1427lur"&&(i.innerHTML=n),a=x(t),l=g(t,"P",{"data-svelte-h":!0}),f(l)!=="svelte-wqexyc"&&(l.innerHTML=w),_=x(t),u=g(t,"P",{"data-svelte-h":!0}),f(u)!=="svelte-mhqtg9"&&(u.innerHTML=b),v=x(t),d=g(t,"P",{"data-svelte-h":!0}),f(d)!=="svelte-1k7du1z"&&(d.innerHTML=T)},m(t,r){c(t,e,r),c(t,s,r),c(t,i,r),c(t,a,r),c(t,l,r),c(t,_,r),c(t,u,r),c(t,v,r),c(t,d,r)},p:H,d(t){t&&(m(e),m(s),m(i),m(a),m(l),m(_),m(u),m(v),m(d))}}}function N(p){let e,o;const s=[p[0],L];let i={$$slots:{default:[F]},$$scope:{ctx:p}};for(let n=0;n{o(0,e=k(k({},e),M(s)))},e=M(e),[e]}class J extends P{constructor(e){super(),S(this,e,O,N,$,{})}}export{J as default,L as metadata};
diff --git a/_app/immutable/chunks/Money market.ygvC6hRu.js b/_app/immutable/chunks/Money market.DfQ005NQ.js
similarity index 99%
rename from _app/immutable/chunks/Money market.ygvC6hRu.js
rename to _app/immutable/chunks/Money market.DfQ005NQ.js
index cbbe95d099..0035612c90 100644
--- a/_app/immutable/chunks/Money market.ygvC6hRu.js
+++ b/_app/immutable/chunks/Money market.DfQ005NQ.js
@@ -1 +1 @@
-import{s as Re,p as se,q as Le,e as l,a as o,t as ne,H as qe,c as i,m as r,g as p,b as we,d as ae,v as Pe,f as n,o as xe,i as a,h as j,n as ze}from"./scheduler.ewBkyc9q.js";import{S as $e,i as Se,c as je,a as De,m as Ee,t as Ie,b as Oe,d as Ae}from"./index.DpmaPz1F.js";import{g as Be,a as He}from"./spread.CgU5AtxT.js";import{M as Fe}from"./MDSveXNoteLayout.Bx5vQYjx.js";function Ne(z){let s,_="Countries have a Central bank - such as The Federal Reserve in the USA - that governs the banking system and creates money. It doesn’t print money, which is done by the treasury.",y,u,m="Central banks also control the money supply. Money supply is the quantity of money available.",h,c,le='The money supply impacts interest rates. The greater the supply, the lower the market price - ie interest rates. Conversely, decreasing the money supply increases interest rates. This follows basic principles of supply and demand.',D,v,ie="Typically, The Federal Reserve has 3 goals with its Monetary policy:",E,T,me="Maximize employment / minimize unemployment Stabilize the price of money Moderate long-term interest rates ",I,M,re="Central banks control the money supply in three ways:",O,b,oe="Setting the Required reserve ratio Discount policy (the Interest rate for loans from the Central bank to commercial banks) Open market operations (buying and selling government bonds on the open market) ",A,g,pe="Central banks control the money supply by setting the required reserve ratio (RRR). RRR governs the minimum ratio of deposits banks are required to keep as cash. The RRR limits how much money banks can loan out. Higher RRR => more cash in the reserves. By loaning out money, banks “create” money - money is credited to one customer without leaving the account of whoever deposited it! While this increases the money supply, it doesn’t create wealth.",B,L,he="Loaned money can be re-deposited, then re-loaned at the rate allowed by the RRR infinitely. The limit to how much money can be created is limited; it can be calculated using the Money multiplier.",F,d,Y,$,ue="Money multiplier",ee,S,N,Ce='',te,U,w,ye='The money market obeys supply and demand just like any other good. The market price of money is the interest rate that banks pay to borrow from each other.',Z,x,ce="Since the central bank has total control over the money supply, it’s not affected by interest rates. The supply curve is a vertical line.",G,H,de="In the money market, the equilibrium point is when the money demanded is equal to the money supplied, and results in an equilibrium interest rate.",Q,k,_e="Expansionary monetary policy is used during a recession to increase aggregate demand to Potential real GDP and decrease unemployment.",W,C,fe="Contractionary monetary policy is used when inflation rates are high. By decreasing the money supply, they increase the interest rate to decrease aggregate demand.",X,f,ve=' Quantity theory of money',J,R,Te="The quantity theory of money states that there is a directly proportional relationship between the money supply and inflation rate.",K,q,Me="Under the quantity theory of money:",V,P,be="Inflation occurs when the money supply grows faster than output - the aggregate supply Deflation occurs when the money supply grows slower than aggregate supply ";return{c(){s=l("p"),s.innerHTML=_,y=o(),u=l("p"),u.innerHTML=m,h=o(),c=l("p"),c.innerHTML=le,D=o(),v=l("p"),v.innerHTML=ie,E=o(),T=l("ol"),T.innerHTML=me,I=o(),M=l("p"),M.innerHTML=re,O=o(),b=l("ol"),b.innerHTML=oe,A=o(),g=l("p"),g.innerHTML=pe,B=o(),L=l("p"),L.innerHTML=he,F=o(),d=l("p"),Y=ne("The equation for the "),$=l("em"),$.textContent=ue,ee=ne(" is "),S=l("span"),N=new qe(!1),te=ne("."),U=o(),w=l("p"),w.innerHTML=ye,Z=o(),x=l("p"),x.innerHTML=ce,G=o(),H=l("p"),H.innerHTML=de,Q=o(),k=l("p"),k.innerHTML=_e,W=o(),C=l("p"),C.innerHTML=fe,X=o(),f=l("h2"),f.innerHTML=ve,J=o(),R=l("p"),R.innerHTML=Te,K=o(),q=l("p"),q.innerHTML=Me,V=o(),P=l("ol"),P.innerHTML=be,this.h()},l(e){s=i(e,"P",{"data-svelte-h":!0}),r(s)!=="svelte-unuby2"&&(s.innerHTML=_),y=p(e),u=i(e,"P",{"data-svelte-h":!0}),r(u)!=="svelte-1ee8d41"&&(u.innerHTML=m),h=p(e),c=i(e,"P",{"data-svelte-h":!0}),r(c)!=="svelte-gasv6s"&&(c.innerHTML=le),D=p(e),v=i(e,"P",{"data-svelte-h":!0}),r(v)!=="svelte-kyem1t"&&(v.innerHTML=ie),E=p(e),T=i(e,"OL",{"data-svelte-h":!0}),r(T)!=="svelte-gygvtb"&&(T.innerHTML=me),I=p(e),M=i(e,"P",{"data-svelte-h":!0}),r(M)!=="svelte-nlvnzh"&&(M.innerHTML=re),O=p(e),b=i(e,"OL",{"data-svelte-h":!0}),r(b)!=="svelte-1wuviaf"&&(b.innerHTML=oe),A=p(e),g=i(e,"P",{"data-svelte-h":!0}),r(g)!=="svelte-h04zyb"&&(g.innerHTML=pe),B=p(e),L=i(e,"P",{"data-svelte-h":!0}),r(L)!=="svelte-s0h9be"&&(L.innerHTML=he),F=p(e),d=i(e,"P",{});var t=we(d);Y=ae(t,"The equation for the "),$=i(t,"EM",{"data-svelte-h":!0}),r($)!=="svelte-w7d1h"&&($.textContent=ue),ee=ae(t," is "),S=i(t,"SPAN",{class:!0});var ge=we(S);N=Pe(ge,!1),ge.forEach(n),te=ae(t,"."),t.forEach(n),U=p(e),w=i(e,"P",{"data-svelte-h":!0}),r(w)!=="svelte-9t2jw8"&&(w.innerHTML=ye),Z=p(e),x=i(e,"P",{"data-svelte-h":!0}),r(x)!=="svelte-5c8w91"&&(x.innerHTML=ce),G=p(e),H=i(e,"P",{"data-svelte-h":!0}),r(H)!=="svelte-18klzcj"&&(H.innerHTML=de),Q=p(e),k=i(e,"P",{"data-svelte-h":!0}),r(k)!=="svelte-irxk89"&&(k.innerHTML=_e),W=p(e),C=i(e,"P",{"data-svelte-h":!0}),r(C)!=="svelte-1rfa4yh"&&(C.innerHTML=fe),X=p(e),f=i(e,"H2",{id:!0,"data-svelte-h":!0}),r(f)!=="svelte-74hv21"&&(f.innerHTML=ve),J=p(e),R=i(e,"P",{"data-svelte-h":!0}),r(R)!=="svelte-2td9a7"&&(R.innerHTML=Te),K=p(e),q=i(e,"P",{"data-svelte-h":!0}),r(q)!=="svelte-ofbjet"&&(q.innerHTML=Me),V=p(e),P=i(e,"OL",{"data-svelte-h":!0}),r(P)!=="svelte-1pl74jc"&&(P.innerHTML=be),this.h()},h(){N.a=null,xe(S,"class","math math-inline"),xe(f,"id","quantity-theory-of-money")},m(e,t){a(e,s,t),a(e,y,t),a(e,u,t),a(e,h,t),a(e,c,t),a(e,D,t),a(e,v,t),a(e,E,t),a(e,T,t),a(e,I,t),a(e,M,t),a(e,O,t),a(e,b,t),a(e,A,t),a(e,g,t),a(e,B,t),a(e,L,t),a(e,F,t),a(e,d,t),j(d,Y),j(d,$),j(d,ee),j(d,S),N.m(Ce,S),j(d,te),a(e,U,t),a(e,w,t),a(e,Z,t),a(e,x,t),a(e,G,t),a(e,H,t),a(e,Q,t),a(e,k,t),a(e,W,t),a(e,C,t),a(e,X,t),a(e,f,t),a(e,J,t),a(e,R,t),a(e,K,t),a(e,q,t),a(e,V,t),a(e,P,t)},p:ze,d(e){e&&(n(s),n(y),n(u),n(h),n(c),n(D),n(v),n(E),n(T),n(I),n(M),n(O),n(b),n(A),n(g),n(B),n(L),n(F),n(d),n(U),n(w),n(Z),n(x),n(G),n(H),n(Q),n(k),n(W),n(C),n(X),n(f),n(J),n(R),n(K),n(q),n(V),n(P))}}}function Ue(z){let s,_;const y=[z[0],ke];let u={$$slots:{default:[Ne]},$$scope:{ctx:z}};for(let m=0;m{_(0,s=se(se({},s),Le(y)))},s=Le(s),[s]}class Je extends $e{constructor(s){super(),Se(this,s,Ze,Ue,Re,{})}}export{Je as default,ke as metadata};
+import{s as Re,p as se,q as Le,e as l,a as o,t as ne,H as qe,c as i,m as r,g as p,b as we,d as ae,v as Pe,f as n,o as xe,i as a,h as j,n as ze}from"./scheduler.ewBkyc9q.js";import{S as $e,i as Se,c as je,a as De,m as Ee,t as Ie,b as Oe,d as Ae}from"./index.DpmaPz1F.js";import{g as Be,a as He}from"./spread.CgU5AtxT.js";import{M as Fe}from"./MDSveXNoteLayout.Dbh0E4KQ.js";function Ne(z){let s,_="Countries have a Central bank - such as The Federal Reserve in the USA - that governs the banking system and creates money. It doesn’t print money, which is done by the treasury.",y,u,m="Central banks also control the money supply. Money supply is the quantity of money available.",h,c,le='The money supply impacts interest rates. The greater the supply, the lower the market price - ie interest rates. Conversely, decreasing the money supply increases interest rates. This follows basic principles of supply and demand.',D,v,ie="Typically, The Federal Reserve has 3 goals with its Monetary policy:",E,T,me="Maximize employment / minimize unemployment Stabilize the price of money Moderate long-term interest rates ",I,M,re="Central banks control the money supply in three ways:",O,b,oe="Setting the Required reserve ratio Discount policy (the Interest rate for loans from the Central bank to commercial banks) Open market operations (buying and selling government bonds on the open market) ",A,g,pe="Central banks control the money supply by setting the required reserve ratio (RRR). RRR governs the minimum ratio of deposits banks are required to keep as cash. The RRR limits how much money banks can loan out. Higher RRR => more cash in the reserves. By loaning out money, banks “create” money - money is credited to one customer without leaving the account of whoever deposited it! While this increases the money supply, it doesn’t create wealth.",B,L,he="Loaned money can be re-deposited, then re-loaned at the rate allowed by the RRR infinitely. The limit to how much money can be created is limited; it can be calculated using the Money multiplier.",F,d,Y,$,ue="Money multiplier",ee,S,N,Ce='',te,U,w,ye='The money market obeys supply and demand just like any other good. The market price of money is the interest rate that banks pay to borrow from each other.',Z,x,ce="Since the central bank has total control over the money supply, it’s not affected by interest rates. The supply curve is a vertical line.",G,H,de="In the money market, the equilibrium point is when the money demanded is equal to the money supplied, and results in an equilibrium interest rate.",Q,k,_e="Expansionary monetary policy is used during a recession to increase aggregate demand to Potential real GDP and decrease unemployment.",W,C,fe="Contractionary monetary policy is used when inflation rates are high. By decreasing the money supply, they increase the interest rate to decrease aggregate demand.",X,f,ve=' Quantity theory of money',J,R,Te="The quantity theory of money states that there is a directly proportional relationship between the money supply and inflation rate.",K,q,Me="Under the quantity theory of money:",V,P,be="Inflation occurs when the money supply grows faster than output - the aggregate supply Deflation occurs when the money supply grows slower than aggregate supply ";return{c(){s=l("p"),s.innerHTML=_,y=o(),u=l("p"),u.innerHTML=m,h=o(),c=l("p"),c.innerHTML=le,D=o(),v=l("p"),v.innerHTML=ie,E=o(),T=l("ol"),T.innerHTML=me,I=o(),M=l("p"),M.innerHTML=re,O=o(),b=l("ol"),b.innerHTML=oe,A=o(),g=l("p"),g.innerHTML=pe,B=o(),L=l("p"),L.innerHTML=he,F=o(),d=l("p"),Y=ne("The equation for the "),$=l("em"),$.textContent=ue,ee=ne(" is "),S=l("span"),N=new qe(!1),te=ne("."),U=o(),w=l("p"),w.innerHTML=ye,Z=o(),x=l("p"),x.innerHTML=ce,G=o(),H=l("p"),H.innerHTML=de,Q=o(),k=l("p"),k.innerHTML=_e,W=o(),C=l("p"),C.innerHTML=fe,X=o(),f=l("h2"),f.innerHTML=ve,J=o(),R=l("p"),R.innerHTML=Te,K=o(),q=l("p"),q.innerHTML=Me,V=o(),P=l("ol"),P.innerHTML=be,this.h()},l(e){s=i(e,"P",{"data-svelte-h":!0}),r(s)!=="svelte-unuby2"&&(s.innerHTML=_),y=p(e),u=i(e,"P",{"data-svelte-h":!0}),r(u)!=="svelte-1ee8d41"&&(u.innerHTML=m),h=p(e),c=i(e,"P",{"data-svelte-h":!0}),r(c)!=="svelte-gasv6s"&&(c.innerHTML=le),D=p(e),v=i(e,"P",{"data-svelte-h":!0}),r(v)!=="svelte-kyem1t"&&(v.innerHTML=ie),E=p(e),T=i(e,"OL",{"data-svelte-h":!0}),r(T)!=="svelte-gygvtb"&&(T.innerHTML=me),I=p(e),M=i(e,"P",{"data-svelte-h":!0}),r(M)!=="svelte-nlvnzh"&&(M.innerHTML=re),O=p(e),b=i(e,"OL",{"data-svelte-h":!0}),r(b)!=="svelte-1wuviaf"&&(b.innerHTML=oe),A=p(e),g=i(e,"P",{"data-svelte-h":!0}),r(g)!=="svelte-h04zyb"&&(g.innerHTML=pe),B=p(e),L=i(e,"P",{"data-svelte-h":!0}),r(L)!=="svelte-s0h9be"&&(L.innerHTML=he),F=p(e),d=i(e,"P",{});var t=we(d);Y=ae(t,"The equation for the "),$=i(t,"EM",{"data-svelte-h":!0}),r($)!=="svelte-w7d1h"&&($.textContent=ue),ee=ae(t," is "),S=i(t,"SPAN",{class:!0});var ge=we(S);N=Pe(ge,!1),ge.forEach(n),te=ae(t,"."),t.forEach(n),U=p(e),w=i(e,"P",{"data-svelte-h":!0}),r(w)!=="svelte-9t2jw8"&&(w.innerHTML=ye),Z=p(e),x=i(e,"P",{"data-svelte-h":!0}),r(x)!=="svelte-5c8w91"&&(x.innerHTML=ce),G=p(e),H=i(e,"P",{"data-svelte-h":!0}),r(H)!=="svelte-18klzcj"&&(H.innerHTML=de),Q=p(e),k=i(e,"P",{"data-svelte-h":!0}),r(k)!=="svelte-irxk89"&&(k.innerHTML=_e),W=p(e),C=i(e,"P",{"data-svelte-h":!0}),r(C)!=="svelte-1rfa4yh"&&(C.innerHTML=fe),X=p(e),f=i(e,"H2",{id:!0,"data-svelte-h":!0}),r(f)!=="svelte-74hv21"&&(f.innerHTML=ve),J=p(e),R=i(e,"P",{"data-svelte-h":!0}),r(R)!=="svelte-2td9a7"&&(R.innerHTML=Te),K=p(e),q=i(e,"P",{"data-svelte-h":!0}),r(q)!=="svelte-ofbjet"&&(q.innerHTML=Me),V=p(e),P=i(e,"OL",{"data-svelte-h":!0}),r(P)!=="svelte-1pl74jc"&&(P.innerHTML=be),this.h()},h(){N.a=null,xe(S,"class","math math-inline"),xe(f,"id","quantity-theory-of-money")},m(e,t){a(e,s,t),a(e,y,t),a(e,u,t),a(e,h,t),a(e,c,t),a(e,D,t),a(e,v,t),a(e,E,t),a(e,T,t),a(e,I,t),a(e,M,t),a(e,O,t),a(e,b,t),a(e,A,t),a(e,g,t),a(e,B,t),a(e,L,t),a(e,F,t),a(e,d,t),j(d,Y),j(d,$),j(d,ee),j(d,S),N.m(Ce,S),j(d,te),a(e,U,t),a(e,w,t),a(e,Z,t),a(e,x,t),a(e,G,t),a(e,H,t),a(e,Q,t),a(e,k,t),a(e,W,t),a(e,C,t),a(e,X,t),a(e,f,t),a(e,J,t),a(e,R,t),a(e,K,t),a(e,q,t),a(e,V,t),a(e,P,t)},p:ze,d(e){e&&(n(s),n(y),n(u),n(h),n(c),n(D),n(v),n(E),n(T),n(I),n(M),n(O),n(b),n(A),n(g),n(B),n(L),n(F),n(d),n(U),n(w),n(Z),n(x),n(G),n(H),n(Q),n(k),n(W),n(C),n(X),n(f),n(J),n(R),n(K),n(q),n(V),n(P))}}}function Ue(z){let s,_;const y=[z[0],ke];let u={$$slots:{default:[Ne]},$$scope:{ctx:z}};for(let m=0;m{_(0,s=se(se({},s),Le(y)))},s=Le(s),[s]}class Je extends $e{constructor(s){super(),Se(this,s,Ze,Ue,Re,{})}}export{Je as default,ke as metadata};
diff --git a/_app/immutable/chunks/NoteGrid.BecrIczD.js b/_app/immutable/chunks/NoteGrid.bUW_wzot.js
similarity index 99%
rename from _app/immutable/chunks/NoteGrid.BecrIczD.js
rename to _app/immutable/chunks/NoteGrid.bUW_wzot.js
index 74d2cf813d..72a751774d 100644
--- a/_app/immutable/chunks/NoteGrid.BecrIczD.js
+++ b/_app/immutable/chunks/NoteGrid.bUW_wzot.js
@@ -1 +1 @@
-import{s as q,e as v,t as F,a as S,c as k,b as w,d as A,f as d,g as V,o as g,N as G,B as le,i as D,h as _,O as _e,P as me,n as j,u as O,Q as pe,F as z,R as se,S as ge,j as he}from"./scheduler.ewBkyc9q.js";import{S as Q,i as J,t as y,g as L,b as N,e as P,c as K,a as M,m as W,d as X}from"./index.DpmaPz1F.js";import{e as B}from"./each.DRjyAD6E.js";import{s as be}from"./NoteGridStatusFilter.svelte_svelte_type_style_lang.DAoCLRDP.js";function ve(a){let t,s;return{c(){t=v("p"),s=F(a[7]),this.h()},l(e){t=k(e,"P",{class:!0});var l=w(t);s=A(l,a[7]),l.forEach(d),this.h()},h(){g(t,"class","mt-3 line-clamp-3 h-[4.5em] leading-[1.5em] transition-all duration-200")},m(e,l){D(e,t,l),_(t,s)},p:j,d(e){e&&d(t)}}}function ke(a){let t,s,e,l,c,r,o,n,u,i,m,p,$,h,f=`${a[4]??""} ${a[5]??""}`,b,E,C,T=a[7]&&ve(a);return{c(){t=v("a"),s=v("article"),e=v("section"),l=v("header"),c=v("h1"),r=F(a[3]),n=S(),T&&T.c(),u=S(),i=v("section"),m=v("div"),p=F(a[8]),$=S(),h=v("div"),b=F(f),this.h()},l(x){t=k(x,"A",{href:!0,class:!0});var I=w(t);s=k(I,"ARTICLE",{class:!0});var H=w(s);e=k(H,"SECTION",{class:!0});var R=w(e);l=k(R,"HEADER",{class:!0});var Y=w(l);c=k(Y,"H1",{class:!0});var Z=w(c);r=A(Z,a[3]),Z.forEach(d),Y.forEach(d),n=V(R),T&&T.l(R),R.forEach(d),u=V(H),i=k(H,"SECTION",{class:!0});var U=w(i);m=k(U,"DIV",{class:!0});var ee=w(m);p=A(ee,a[8]),ee.forEach(d),$=V(U),h=k(U,"DIV",{class:!0});var te=w(h);b=A(te,f),te.forEach(d),U.forEach(d),H.forEach(d),I.forEach(d),this.h()},h(){g(c,"class","line-clamp-2 h-16 text-lg svelte-1f9x9br"),g(l,"class","svelte-1f9x9br"),g(e,"class","notecontent"),g(m,"class","date min-w-[12ch] text-opacity-50 svelte-1f9x9br"),g(h,"class",G("min-w-[12ch] capitalize text-[hsl(var(--statusColor))]")+" svelte-1f9x9br"),g(i,"class","notemetadata border-t border-t-neutral-content border-opacity-60 pt-1 text-right text-sm svelte-1f9x9br"),g(s,"class",G("group flex h-64 w-full flex-col justify-between border border-solid border-base-300 bg-base-100 px-10 py-8 text-base-content text-opacity-80 transition-all duration-200 hover:border-[hsl(var(--statusColor))] hover:text-opacity-100 hover:shadow-xl hover:shadow-[hsla(var(--statusColor),.25)] active:-translate-y-1 active:scale-[1.01] active:shadow-md")+" svelte-1f9x9br"),g(t,"href",a[6]),g(t,"class","m-4 flex w-full min-w-[300px] max-w-[450px] flex-1 basis-80 text-inherit no-underline"),le(t,"--statusColor",a[1])},m(x,I){D(x,t,I),_(t,s),_(s,e),_(e,l),_(l,c),_(c,r),_(e,n),T&&T.m(e,null),_(s,u),_(s,i),_(i,m),_(m,p),_(i,$),_(i,h),_(h,b),E||(C=_e(o=a[2].call(null,c,{name:"title",applyImmediately:a[9],shouldApply:a[10]})),E=!0)},p(x,[I]){o&&me(o.update)&&I&1&&o.update.call(null,{name:"title",applyImmediately:x[9],shouldApply:x[10]}),x[7]&&T.p(x,I),I&2&&le(t,"--statusColor",x[1])},i:j,o:j,d(x){x&&d(t),T&&T.d(),E=!1,C()}}}function we(a,t,s){let e;const{transition:l}=be();let{metadata:c}=t;const{title:r,lastmod:o,status:n,statusIcon:u,href:i,description:m}=c,p=new Date(Date.parse(o)).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"}),$=function({navigation:f}){var b,E,C,T;return((E=(b=f==null?void 0:f.from)==null?void 0:b.params)==null?void 0:E.slug)===c.slug||((T=(C=f==null?void 0:f.to)==null?void 0:C.params)==null?void 0:T.slug)===c.slug},h=function({navigation:f,isInViewport:b}){var E,C;return b&&((C=(E=f==null?void 0:f.to)==null?void 0:E.params)==null?void 0:C.slug)===c.slug};return a.$$set=f=>{"metadata"in f&&s(0,c=f.metadata)},s(1,e=(()=>{switch(n){case"seedling":return"85, 40%, 55%";case"budding":return"92, 50%, 40%";case"evergreen":return"95, 60%, 30%";default:return null}})()),[c,e,l,r,n,u,i,m,p,$,h]}class de extends Q{constructor(t){super(),J(this,t,we,ke,q,{metadata:0})}}function re(a,t,s){const e=a.slice();return e[5]=t[s],e}function ne(a){let t,s=B(a[0]),e=[];for(let l=0;l{e.includes(n.filterText)?s(1,e=e.filter(u=>u!==n.filterText)):s(1,e=[...e,n.filterText]),c("update",{status:e})},o=n=>r(n);return a.$$set=n=>{"statuses"in n&&s(0,l=n.statuses)},s(1,e=new Array),[l,e,r,o]}class Te extends Q{constructor(t){super(),J(this,t,Ee,ye,q,{statuses:0})}}function oe(a,t,s){const e=a.slice();return e[7]=t[s],e}function ie(a,t,s){const e=a.slice();return e[7]=t[s],e}function ce(a){let t,s;return t=new Te({props:{statuses:a[4]}}),t.$on("update",a[5]),{c(){K(t.$$.fragment)},l(e){M(t.$$.fragment,e)},m(e,l){W(t,e,l),s=!0},p:j,i(e){s||(y(t.$$.fragment,e),s=!0)},o(e){N(t.$$.fragment,e),s=!1},d(e){X(t,e)}}}function xe(a){let t,s,e=B(a[0]),l=[];for(let r=0;rN(l[r],1,1,()=>{l[r]=null});return{c(){for(let r=0;rN(l[r],1,1,()=>{l[r]=null});return{c(){for(let r=0;r{i=null}),P());let b=o;o=$(h),o===b?p[o].p(h,f):(L(),N(p[b],1,1,()=>{p[b]=null}),P(),n=p[o],n?n.p(h,f):(n=p[o]=m[o](h),n.c()),y(n,1),n.m(r,null))},i(h){u||(y(i),y(n),u=!0)},o(h){N(i),N(n),u=!1},d(h){h&&d(t),i&&i.d(),p[o].d()}}}function Ce(a,t,s){let{notes:e}=t,{title:l="Notes"}=t,{showFilters:c=!0}=t,r=e.map(i=>({filterText:i.status??"",displayText:`${i.status} ${i.statusIcon}`})).reduce((i,m)=>i.find(p=>m.filterText===p.filterText)?i:[...i,m],new Array),o=[],n=e;function u(i){o=i.detail.status,c&&(o.length?s(3,n=e.filter(m=>o.includes(m.status??""))):s(3,n=e))}return a.$$set=i=>{"notes"in i&&s(0,e=i.notes),"title"in i&&s(1,l=i.title),"showFilters"in i&&s(2,c=i.showFilters)},[e,l,c,n,r,u]}class Ae extends Q{constructor(t){super(),J(this,t,Ce,$e,q,{notes:0,title:1,showFilters:2})}}export{Ae as N};
+import{s as q,e as v,t as F,a as S,c as k,b as w,d as A,f as d,g as V,o as g,N as G,B as le,i as D,h as _,O as _e,P as me,n as j,u as O,Q as pe,F as z,R as se,S as ge,j as he}from"./scheduler.ewBkyc9q.js";import{S as Q,i as J,t as y,g as L,b as N,e as P,c as K,a as M,m as W,d as X}from"./index.DpmaPz1F.js";import{e as B}from"./each.DRjyAD6E.js";import{s as be}from"./NoteGridStatusFilter.svelte_svelte_type_style_lang.EUtdQhUw.js";function ve(a){let t,s;return{c(){t=v("p"),s=F(a[7]),this.h()},l(e){t=k(e,"P",{class:!0});var l=w(t);s=A(l,a[7]),l.forEach(d),this.h()},h(){g(t,"class","mt-3 line-clamp-3 h-[4.5em] leading-[1.5em] transition-all duration-200")},m(e,l){D(e,t,l),_(t,s)},p:j,d(e){e&&d(t)}}}function ke(a){let t,s,e,l,c,r,o,n,u,i,m,p,$,h,f=`${a[4]??""} ${a[5]??""}`,b,E,C,T=a[7]&&ve(a);return{c(){t=v("a"),s=v("article"),e=v("section"),l=v("header"),c=v("h1"),r=F(a[3]),n=S(),T&&T.c(),u=S(),i=v("section"),m=v("div"),p=F(a[8]),$=S(),h=v("div"),b=F(f),this.h()},l(x){t=k(x,"A",{href:!0,class:!0});var I=w(t);s=k(I,"ARTICLE",{class:!0});var H=w(s);e=k(H,"SECTION",{class:!0});var R=w(e);l=k(R,"HEADER",{class:!0});var Y=w(l);c=k(Y,"H1",{class:!0});var Z=w(c);r=A(Z,a[3]),Z.forEach(d),Y.forEach(d),n=V(R),T&&T.l(R),R.forEach(d),u=V(H),i=k(H,"SECTION",{class:!0});var U=w(i);m=k(U,"DIV",{class:!0});var ee=w(m);p=A(ee,a[8]),ee.forEach(d),$=V(U),h=k(U,"DIV",{class:!0});var te=w(h);b=A(te,f),te.forEach(d),U.forEach(d),H.forEach(d),I.forEach(d),this.h()},h(){g(c,"class","line-clamp-2 h-16 text-lg svelte-1f9x9br"),g(l,"class","svelte-1f9x9br"),g(e,"class","notecontent"),g(m,"class","date min-w-[12ch] text-opacity-50 svelte-1f9x9br"),g(h,"class",G("min-w-[12ch] capitalize text-[hsl(var(--statusColor))]")+" svelte-1f9x9br"),g(i,"class","notemetadata border-t border-t-neutral-content border-opacity-60 pt-1 text-right text-sm svelte-1f9x9br"),g(s,"class",G("group flex h-64 w-full flex-col justify-between border border-solid border-base-300 bg-base-100 px-10 py-8 text-base-content text-opacity-80 transition-all duration-200 hover:border-[hsl(var(--statusColor))] hover:text-opacity-100 hover:shadow-xl hover:shadow-[hsla(var(--statusColor),.25)] active:-translate-y-1 active:scale-[1.01] active:shadow-md")+" svelte-1f9x9br"),g(t,"href",a[6]),g(t,"class","m-4 flex w-full min-w-[300px] max-w-[450px] flex-1 basis-80 text-inherit no-underline"),le(t,"--statusColor",a[1])},m(x,I){D(x,t,I),_(t,s),_(s,e),_(e,l),_(l,c),_(c,r),_(e,n),T&&T.m(e,null),_(s,u),_(s,i),_(i,m),_(m,p),_(i,$),_(i,h),_(h,b),E||(C=_e(o=a[2].call(null,c,{name:"title",applyImmediately:a[9],shouldApply:a[10]})),E=!0)},p(x,[I]){o&&me(o.update)&&I&1&&o.update.call(null,{name:"title",applyImmediately:x[9],shouldApply:x[10]}),x[7]&&T.p(x,I),I&2&&le(t,"--statusColor",x[1])},i:j,o:j,d(x){x&&d(t),T&&T.d(),E=!1,C()}}}function we(a,t,s){let e;const{transition:l}=be();let{metadata:c}=t;const{title:r,lastmod:o,status:n,statusIcon:u,href:i,description:m}=c,p=new Date(Date.parse(o)).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"}),$=function({navigation:f}){var b,E,C,T;return((E=(b=f==null?void 0:f.from)==null?void 0:b.params)==null?void 0:E.slug)===c.slug||((T=(C=f==null?void 0:f.to)==null?void 0:C.params)==null?void 0:T.slug)===c.slug},h=function({navigation:f,isInViewport:b}){var E,C;return b&&((C=(E=f==null?void 0:f.to)==null?void 0:E.params)==null?void 0:C.slug)===c.slug};return a.$$set=f=>{"metadata"in f&&s(0,c=f.metadata)},s(1,e=(()=>{switch(n){case"seedling":return"85, 40%, 55%";case"budding":return"92, 50%, 40%";case"evergreen":return"95, 60%, 30%";default:return null}})()),[c,e,l,r,n,u,i,m,p,$,h]}class de extends Q{constructor(t){super(),J(this,t,we,ke,q,{metadata:0})}}function re(a,t,s){const e=a.slice();return e[5]=t[s],e}function ne(a){let t,s=B(a[0]),e=[];for(let l=0;l{e.includes(n.filterText)?s(1,e=e.filter(u=>u!==n.filterText)):s(1,e=[...e,n.filterText]),c("update",{status:e})},o=n=>r(n);return a.$$set=n=>{"statuses"in n&&s(0,l=n.statuses)},s(1,e=new Array),[l,e,r,o]}class Te extends Q{constructor(t){super(),J(this,t,Ee,ye,q,{statuses:0})}}function oe(a,t,s){const e=a.slice();return e[7]=t[s],e}function ie(a,t,s){const e=a.slice();return e[7]=t[s],e}function ce(a){let t,s;return t=new Te({props:{statuses:a[4]}}),t.$on("update",a[5]),{c(){K(t.$$.fragment)},l(e){M(t.$$.fragment,e)},m(e,l){W(t,e,l),s=!0},p:j,i(e){s||(y(t.$$.fragment,e),s=!0)},o(e){N(t.$$.fragment,e),s=!1},d(e){X(t,e)}}}function xe(a){let t,s,e=B(a[0]),l=[];for(let r=0;rN(l[r],1,1,()=>{l[r]=null});return{c(){for(let r=0;rN(l[r],1,1,()=>{l[r]=null});return{c(){for(let r=0;r{i=null}),P());let b=o;o=$(h),o===b?p[o].p(h,f):(L(),N(p[b],1,1,()=>{p[b]=null}),P(),n=p[o],n?n.p(h,f):(n=p[o]=m[o](h),n.c()),y(n,1),n.m(r,null))},i(h){u||(y(i),y(n),u=!0)},o(h){N(i),N(n),u=!1},d(h){h&&d(t),i&&i.d(),p[o].d()}}}function Ce(a,t,s){let{notes:e}=t,{title:l="Notes"}=t,{showFilters:c=!0}=t,r=e.map(i=>({filterText:i.status??"",displayText:`${i.status} ${i.statusIcon}`})).reduce((i,m)=>i.find(p=>m.filterText===p.filterText)?i:[...i,m],new Array),o=[],n=e;function u(i){o=i.detail.status,c&&(o.length?s(3,n=e.filter(m=>o.includes(m.status??""))):s(3,n=e))}return a.$$set=i=>{"notes"in i&&s(0,e=i.notes),"title"in i&&s(1,l=i.title),"showFilters"in i&&s(2,c=i.showFilters)},[e,l,c,n,r,u]}class Ae extends Q{constructor(t){super(),J(this,t,Ce,$e,q,{notes:0,title:1,showFilters:2})}}export{Ae as N};
diff --git a/_app/immutable/chunks/NoteGridStatusFilter.svelte_svelte_type_style_lang.DAoCLRDP.js b/_app/immutable/chunks/NoteGridStatusFilter.svelte_svelte_type_style_lang.EUtdQhUw.js
similarity index 82%
rename from _app/immutable/chunks/NoteGridStatusFilter.svelte_svelte_type_style_lang.DAoCLRDP.js
rename to _app/immutable/chunks/NoteGridStatusFilter.svelte_svelte_type_style_lang.EUtdQhUw.js
index 5d2cba2f24..66f2f91982 100644
--- a/_app/immutable/chunks/NoteGridStatusFilter.svelte_svelte_type_style_lang.DAoCLRDP.js
+++ b/_app/immutable/chunks/NoteGridStatusFilter.svelte_svelte_type_style_lang.EUtdQhUw.js
@@ -1,4 +1,4 @@
-const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./10 questions to evaluate a startup idea.CgztSJf-.js","./scheduler.ewBkyc9q.js","./index.DpmaPz1F.js","./spread.CgU5AtxT.js","./MDSveXNoteLayout.Bx5vQYjx.js","./index.c5t111vt.js","./each.DRjyAD6E.js","./entry.rlvYqB1v.js","../assets/MDSveXNoteLayout.fO7cJVK6.css","./Add a demo link to TypeScript code blocks.DOBRZgS-.js","./Adding users to new teams with Lucia auth and Prisma.BDKAgZrZ.js","./Beautifully render markdown code blocks in Svelte.mHUdLjzS.js","./Branded Types.CL6b9hEC.js","./Build infrastructure after not having it becomes painful.BNitDpYR.js","./Classy coding - JavaScript OOP through the ages.d2kAFBeU.js","./Dynamically generate TypeScript Playground links.ydr-BTfi.js","./Gifts.D3riRslI.js","./Table.D4VRZ6lr.js","./Gold Mac n Cheese.wwiG7Xog.js","./I use Neovim btw.BSDQA274.js","./I want a smaller phone.CBtpzzFK.js","./Identity functions.BWjbs7CM.js","./Improve site previews on social media by unfurling webpages.DYaIAgRS.js","./Linting and formatting a svelte typescript project.HFg0G87O.js","./Mac tips.B5E3WvWi.js","./Make API misuse hard.DB0lSOHm.js","./Make example code interactive.CM_Y_3d6.js","./Money market.ygvC6hRu.js","./Open neovim edgebar with focus set.NAGooXWn.js","./Pasta Arabica.BGR1I-89.js","./Resolving CORS errors in SvelteKit.DZjzjE4e.js","./Slugs make links readable.BGLpFVCP.js","./Structural types increase data compatibility.biZ-9IAP.js","./Svelte component APIs.DCZc3A1B.js","./The publishing pipeline for allandeutsch.com.DSi5AzjS.js","./Theory and practice.B6aE3Pap.js","./Thinking channels.D2TVXIf8.js","./Total Typescript notes.DH4Oseug.js","./Type branding removes structural type compatibility.BWx-VkUf.js","./TypeScript assertion functions increase type safety.BP-_AQ3S.js","./Work-life balance.y6nWYxIK.js","./ask-dont-tell.CIcu1i0U.js","./avocado-toast.BooYnY_w.js","./blue-ocean-strategy.BWdcKAiD.js","./blue-ocean.DxC3NMWm.js","./business-model-canvas.oh0IwP8M.js","./cafes.uQAuyBOp.js","./competition-factors.C6BxxI0H.js","./compound-growth-most-impactful-at-end.ChVXWD8y.js","./compound-growth-system.COiC_Oy3.js","./consumer-demand.Be62HbrP.js","./cozumel-travel-guide.BkUC5Hb-.js","./cross-price-elasticity.DRc4n9zW.js","./customer-attribute-categories.Bo_Y20oO.js","./customer-relationship.CZdp0T_b.js","./customer-segment.CPn0stp7.js","./devlog 0.RgmRtHXS.js","./devlog 1.DDTDHT6q.js","./devlog 10.DS2f_KL8.js","./devlog 11.BW1hYBMT.js","./devlog 12.CdUHn2un.js","./devlog 2.Bi7CcMPv.js","./devlog 3.Dotf0NoA.js","./devlog 4.BPU-Lm0F.js","./devlog 5.DkktZC2V.js","./devlog 6.PNSwU6us.js","./devlog 7.CGLxAYKP.js","./devlog 8.eO5nFico.js","./devlog 9.C4MrjIvG.js","./devlog index.CSWrnpbr.js","./distribution-channel.BMsJ0_ts.js","./four-actions-framework.ANmRTSWg.js","./fundamental-habits.11R1lV-x.js","./git-cheatsheet.DxWxl8y3.js","./grapow.6ZhevCpR.js","./hard-decisions.DbduR4ji.js","./learning-process.DrjT5K9s.js","./marginal-utility.DFLjb6WP.js","./market-forces.BDqb10W5.js","./microeconomics.BcpR4GD6.js","./monetized-content-compound-growth.Dgqpoaho.js","./opportunity-cost.BzOhaR-X.js","./pdc-travel-guide.9jqm4aHj.js","./positioning-statement.CJSW2jyH.js","./positive-feedback.DHQ-U0EN.js","./price-elasticity-demand.BnOrMkws.js","./price-elasticity.C2oB6lq5.js","./principal-agent-problem.CzYtaNOb.js","./production-cost.CeWgjDIh.js","./red-ocean.CH9bj-G8.js","./restaurants.B1Uq-bOl.js","./segmentation-targeting-positioning.5Cpt97xC.js","./single-option-aversion-bias.CmY0pqxW.js","./situation-analysis.Dd1WRKB3.js","./spaced-repetition-workflow.0MivO-QI.js","./strategy-canvas.zTP9rU7X.js","./supply-demand.CvIqHfiO.js","./sveltekit-storybook-setup.CgnWEul6.js","./three-options-consensus.Cgq8kfaR.js","./traits-successful-blue-ocean-strategy.CJXl_O2n.js","./type-1-2-decisions.d3LyCmWh.js","./ui-shadows.DxQPsGEn.js","./use-contrast-direct-attention.DzdX4TxX.js","./uses.B_CV_03r.js","./utility.Dj2j_1E3.js","./value-curve.DQtutUDh.js","./value-innovation.DSizLb8I.js","./value-proposition.D_C-5Dxe.js","./vicious-virtuous-cycles.DF1LPjiD.js","./world-recursive.D2i5zPin.js"])))=>i.map(i=>d[i]);
-import{o as Bt,a as We}from"./entry.rlvYqB1v.js";import{a3 as Ut}from"./scheduler.ewBkyc9q.js";import{_ as o}from"./preload-helper.C1FmrZbK.js";const Wt=!0,qt=Wt;var E;(function(r){r.assertEqual=s=>s;function e(s){}r.assertIs=e;function t(s){throw new Error}r.assertNever=t,r.arrayToEnum=s=>{const i={};for(const a of s)i[a]=a;return i},r.getValidEnumValues=s=>{const i=r.objectKeys(s).filter(d=>typeof s[s[d]]!="number"),a={};for(const d of i)a[d]=s[d];return r.objectValues(a)},r.objectValues=s=>r.objectKeys(s).map(function(i){return s[i]}),r.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{const i=[];for(const a in s)Object.prototype.hasOwnProperty.call(s,a)&&i.push(a);return i},r.find=(s,i)=>{for(const a of s)if(i(a))return a},r.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&isFinite(s)&&Math.floor(s)===s;function n(s,i=" | "){return s.map(a=>typeof a=="string"?`'${a}'`:a).join(i)}r.joinValues=n,r.jsonStringifyReplacer=(s,i)=>typeof i=="bigint"?i.toString():i})(E||(E={}));var Ie;(function(r){r.mergeShapes=(e,t)=>({...e,...t})})(Ie||(Ie={}));const _=E.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),C=r=>{switch(typeof r){case"undefined":return _.undefined;case"string":return _.string;case"number":return isNaN(r)?_.nan:_.number;case"boolean":return _.boolean;case"function":return _.function;case"bigint":return _.bigint;case"symbol":return _.symbol;case"object":return Array.isArray(r)?_.array:r===null?_.null:r.then&&typeof r.then=="function"&&r.catch&&typeof r.catch=="function"?_.promise:typeof Map<"u"&&r instanceof Map?_.map:typeof Set<"u"&&r instanceof Set?_.set:typeof Date<"u"&&r instanceof Date?_.date:_.object;default:return _.unknown}},c=E.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),qe=r=>JSON.stringify(r,null,2).replace(/"([^"]+)":/g,"$1:");class I extends Error{constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}get errors(){return this.issues}format(e){const t=e||function(i){return i.message},n={_errors:[]},s=i=>{for(const a of i.issues)if(a.code==="invalid_union")a.unionErrors.map(s);else if(a.code==="invalid_return_type")s(a.returnTypeError);else if(a.code==="invalid_arguments")s(a.argumentsError);else if(a.path.length===0)n._errors.push(t(a));else{let d=n,u=0;for(;ut.message){const t={},n=[];for(const s of this.issues)s.path.length>0?(t[s.path[0]]=t[s.path[0]]||[],t[s.path[0]].push(e(s))):n.push(e(s));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}I.create=r=>new I(r);const K=(r,e)=>{let t;switch(r.code){case c.invalid_type:r.received===_.undefined?t="Required":t=`Expected ${r.expected}, received ${r.received}`;break;case c.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(r.expected,E.jsonStringifyReplacer)}`;break;case c.unrecognized_keys:t=`Unrecognized key(s) in object: ${E.joinValues(r.keys,", ")}`;break;case c.invalid_union:t="Invalid input";break;case c.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${E.joinValues(r.options)}`;break;case c.invalid_enum_value:t=`Invalid enum value. Expected ${E.joinValues(r.options)}, received '${r.received}'`;break;case c.invalid_arguments:t="Invalid function arguments";break;case c.invalid_return_type:t="Invalid function return type";break;case c.invalid_date:t="Invalid date";break;case c.invalid_string:typeof r.validation=="object"?"includes"in r.validation?(t=`Invalid input: must include "${r.validation.includes}"`,typeof r.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${r.validation.position}`)):"startsWith"in r.validation?t=`Invalid input: must start with "${r.validation.startsWith}"`:"endsWith"in r.validation?t=`Invalid input: must end with "${r.validation.endsWith}"`:E.assertNever(r.validation):r.validation!=="regex"?t=`Invalid ${r.validation}`:t="Invalid";break;case c.too_small:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at least":"more than"} ${r.minimum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at least":"over"} ${r.minimum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(r.minimum))}`:t="Invalid input";break;case c.too_big:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at most":"less than"} ${r.maximum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at most":"under"} ${r.maximum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="bigint"?t=`BigInt must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly":r.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(r.maximum))}`:t="Invalid input";break;case c.custom:t="Invalid input";break;case c.invalid_intersection_types:t="Intersection results could not be merged";break;case c.not_multiple_of:t=`Number must be a multiple of ${r.multipleOf}`;break;case c.not_finite:t="Number must be finite";break;default:t=e.defaultError,E.assertNever(r)}return{message:t}};let Ge=K;function Je(r){Ge=r}function ge(){return Ge}const ye=r=>{const{data:e,path:t,errorMaps:n,issueData:s}=r,i=[...t,...s.path||[]],a={...s,path:i};if(s.message!==void 0)return{...s,path:i,message:s.message};let d="";const u=n.filter(l=>!!l).slice().reverse();for(const l of u)d=l(a,{data:e,defaultError:d}).message;return{...s,path:i,message:d}},Ye=[];function m(r,e){const t=ge(),n=ye({issueData:e,data:r.data,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,t,t===K?void 0:K].filter(s=>!!s)});r.common.issues.push(n)}class k{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,t){const n=[];for(const s of t){if(s.status==="aborted")return v;s.status==="dirty"&&e.dirty(),n.push(s.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,t){const n=[];for(const s of t){const i=await s.key,a=await s.value;n.push({key:i,value:a})}return k.mergeObjectSync(e,n)}static mergeObjectSync(e,t){const n={};for(const s of t){const{key:i,value:a}=s;if(i.status==="aborted"||a.status==="aborted")return v;i.status==="dirty"&&e.dirty(),a.status==="dirty"&&e.dirty(),i.value!=="__proto__"&&(typeof a.value<"u"||s.alwaysSet)&&(n[i.value]=a.value)}return{status:e.value,value:n}}}const v=Object.freeze({status:"aborted"}),J=r=>({status:"dirty",value:r}),w=r=>({status:"valid",value:r}),xe=r=>r.status==="aborted",Re=r=>r.status==="dirty",ee=r=>r.status==="valid",te=r=>typeof Promise<"u"&&r instanceof Promise;function Ae(r,e,t,n){if(typeof e=="function"?r!==e||!n:!e.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e.get(r)}function He(r,e,t,n,s){if(typeof e=="function"?r!==e||!s:!e.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(r,t),t}var p;(function(r){r.errToObj=e=>typeof e=="string"?{message:e}:e||{},r.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(p||(p={}));var he,ve;class L{constructor(e,t,n,s){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=s}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const Ue=(r,e)=>{if(ee(e))return{success:!0,data:e.value};if(!r.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new I(r.common.issues);return this._error=t,this._error}}};function y(r){if(!r)return{};const{errorMap:e,invalid_type_error:t,required_error:n,description:s}=r;if(e&&(t||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:s}:{errorMap:(a,d)=>{var u,l;const{message:f}=r;return a.code==="invalid_enum_value"?{message:f??d.defaultError}:typeof d.data>"u"?{message:(u=f??n)!==null&&u!==void 0?u:d.defaultError}:a.code!=="invalid_type"?{message:d.defaultError}:{message:(l=f??t)!==null&&l!==void 0?l:d.defaultError}},description:s}}class g{constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(e){return C(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:C(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new k,ctx:{common:e.parent.common,data:e.data,parsedType:C(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(te(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){var n;const s={common:{issues:[],async:(n=t==null?void 0:t.async)!==null&&n!==void 0?n:!1,contextualErrorMap:t==null?void 0:t.errorMap},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:C(e)},i=this._parseSync({data:e,path:s.path,parent:s});return Ue(s,i)}async parseAsync(e,t){const n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){const n={common:{issues:[],contextualErrorMap:t==null?void 0:t.errorMap,async:!0},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:C(e)},s=this._parse({data:e,path:n.path,parent:n}),i=await(te(s)?s:Promise.resolve(s));return Ue(n,i)}refine(e,t){const n=s=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(s):t;return this._refinement((s,i)=>{const a=e(s),d=()=>i.addIssue({code:c.custom,...n(s)});return typeof Promise<"u"&&a instanceof Promise?a.then(u=>u?!0:(d(),!1)):a?!0:(d(),!1)})}refinement(e,t){return this._refinement((n,s)=>e(n)?!0:(s.addIssue(typeof t=="function"?t(n,s):t),!1))}_refinement(e){return new x({schema:this,typeName:h.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return P.create(this,this._def)}nullable(){return $.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return A.create(this,this._def)}promise(){return Q.create(this,this._def)}or(e){return ie.create([this,e],this._def)}and(e){return oe.create(this,e,this._def)}transform(e){return new x({...y(this._def),schema:this,typeName:h.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t=typeof e=="function"?e:()=>e;return new le({...y(this._def),innerType:this,defaultValue:t,typeName:h.ZodDefault})}brand(){return new De({typeName:h.ZodBranded,type:this,...y(this._def)})}catch(e){const t=typeof e=="function"?e:()=>e;return new me({...y(this._def),innerType:this,catchValue:t,typeName:h.ZodCatch})}describe(e){const t=this.constructor;return new t({...this._def,description:e})}pipe(e){return pe.create(this,e)}readonly(){return _e.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const Gt=/^c[^\s-]{8,}$/i,Jt=/^[0-9a-z]+$/,Yt=/^[0-9A-HJKMNP-TV-Z]{26}$/,Ht=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Kt=/^[a-z0-9_-]{21}$/i,Xt=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Qt=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Ft="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let Le;const er=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,tr=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,rr=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Ke="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",nr=new RegExp(`^${Ke}$`);function Xe(r){let e="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return r.precision?e=`${e}\\.\\d{${r.precision}}`:r.precision==null&&(e=`${e}(\\.\\d+)?`),e}function sr(r){return new RegExp(`^${Xe(r)}$`)}function je(r){let e=`${Ke}T${Xe(r)}`;const t=[];return t.push(r.local?"Z?":"Z"),r.offset&&t.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${t.join("|")})`,new RegExp(`^${e}$`)}function ir(r,e){return!!((e==="v4"||!e)&&er.test(r)||(e==="v6"||!e)&&tr.test(r))}class R extends g{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==_.string){const i=this._getOrReturnCtx(e);return m(i,{code:c.invalid_type,expected:_.string,received:i.parsedType}),v}const n=new k;let s;for(const i of this._def.checks)if(i.kind==="min")e.data.lengthi.value&&(s=this._getOrReturnCtx(e,s),m(s,{code:c.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),n.dirty());else if(i.kind==="length"){const a=e.data.length>i.value,d=e.data.lengthe.test(s),{validation:t,code:c.invalid_string,...p.errToObj(n)})}_addCheck(e){return new R({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...p.errToObj(e)})}url(e){return this._addCheck({kind:"url",...p.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...p.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...p.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...p.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...p.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...p.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...p.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...p.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...p.errToObj(e)})}datetime(e){var t,n;return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,offset:(t=e==null?void 0:e.offset)!==null&&t!==void 0?t:!1,local:(n=e==null?void 0:e.local)!==null&&n!==void 0?n:!1,...p.errToObj(e==null?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,...p.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...p.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...p.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t==null?void 0:t.position,...p.errToObj(t==null?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...p.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...p.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...p.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...p.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...p.errToObj(t)})}nonempty(e){return this.min(1,p.errToObj(e))}trim(){return new R({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new R({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new R({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get minLength(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value{var e;return new R({checks:[],typeName:h.ZodString,coerce:(e=r==null?void 0:r.coerce)!==null&&e!==void 0?e:!1,...y(r)})};function or(r,e){const t=(r.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,s=t>n?t:n,i=parseInt(r.toFixed(s).replace(".","")),a=parseInt(e.toFixed(s).replace(".",""));return i%a/Math.pow(10,s)}class N extends g{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==_.number){const i=this._getOrReturnCtx(e);return m(i,{code:c.invalid_type,expected:_.number,received:i.parsedType}),v}let n;const s=new k;for(const i of this._def.checks)i.kind==="int"?E.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),m(n,{code:c.invalid_type,expected:"integer",received:"float",message:i.message}),s.dirty()):i.kind==="min"?(i.inclusive?e.datai.value:e.data>=i.value)&&(n=this._getOrReturnCtx(e,n),m(n,{code:c.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),s.dirty()):i.kind==="multipleOf"?or(e.data,i.value)!==0&&(n=this._getOrReturnCtx(e,n),m(n,{code:c.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):i.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),m(n,{code:c.not_finite,message:i.message}),s.dirty()):E.assertNever(i);return{status:s.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,p.toString(t))}gt(e,t){return this.setLimit("min",e,!1,p.toString(t))}lte(e,t){return this.setLimit("max",e,!0,p.toString(t))}lt(e,t){return this.setLimit("max",e,!1,p.toString(t))}setLimit(e,t,n,s){return new N({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:p.toString(s)}]})}_addCheck(e){return new N({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:p.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:p.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:p.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:p.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:p.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:p.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:p.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:p.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:p.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.valuee.kind==="int"||e.kind==="multipleOf"&&E.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(t===null||n.value>t)&&(t=n.value):n.kind==="max"&&(e===null||n.valuenew N({checks:[],typeName:h.ZodNumber,coerce:(r==null?void 0:r.coerce)||!1,...y(r)});class j extends g{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce&&(e.data=BigInt(e.data)),this._getType(e)!==_.bigint){const i=this._getOrReturnCtx(e);return m(i,{code:c.invalid_type,expected:_.bigint,received:i.parsedType}),v}let n;const s=new k;for(const i of this._def.checks)i.kind==="min"?(i.inclusive?e.datai.value:e.data>=i.value)&&(n=this._getOrReturnCtx(e,n),m(n,{code:c.too_big,type:"bigint",maximum:i.value,inclusive:i.inclusive,message:i.message}),s.dirty()):i.kind==="multipleOf"?e.data%i.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),m(n,{code:c.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):E.assertNever(i);return{status:s.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,p.toString(t))}gt(e,t){return this.setLimit("min",e,!1,p.toString(t))}lte(e,t){return this.setLimit("max",e,!0,p.toString(t))}lt(e,t){return this.setLimit("max",e,!1,p.toString(t))}setLimit(e,t,n,s){return new j({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:p.toString(s)}]})}_addCheck(e){return new j({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:p.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:p.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:p.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:p.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:p.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value{var e;return new j({checks:[],typeName:h.ZodBigInt,coerce:(e=r==null?void 0:r.coerce)!==null&&e!==void 0?e:!1,...y(r)})};class re extends g{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==_.boolean){const n=this._getOrReturnCtx(e);return m(n,{code:c.invalid_type,expected:_.boolean,received:n.parsedType}),v}return w(e.data)}}re.create=r=>new re({typeName:h.ZodBoolean,coerce:(r==null?void 0:r.coerce)||!1,...y(r)});class U extends g{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==_.date){const i=this._getOrReturnCtx(e);return m(i,{code:c.invalid_type,expected:_.date,received:i.parsedType}),v}if(isNaN(e.data.getTime())){const i=this._getOrReturnCtx(e);return m(i,{code:c.invalid_date}),v}const n=new k;let s;for(const i of this._def.checks)i.kind==="min"?e.data.getTime()i.value&&(s=this._getOrReturnCtx(e,s),m(s,{code:c.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),n.dirty()):E.assertNever(i);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new U({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:p.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:p.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.valuenew U({checks:[],coerce:(r==null?void 0:r.coerce)||!1,typeName:h.ZodDate,...y(r)});class Ee extends g{_parse(e){if(this._getType(e)!==_.symbol){const n=this._getOrReturnCtx(e);return m(n,{code:c.invalid_type,expected:_.symbol,received:n.parsedType}),v}return w(e.data)}}Ee.create=r=>new Ee({typeName:h.ZodSymbol,...y(r)});class ne extends g{_parse(e){if(this._getType(e)!==_.undefined){const n=this._getOrReturnCtx(e);return m(n,{code:c.invalid_type,expected:_.undefined,received:n.parsedType}),v}return w(e.data)}}ne.create=r=>new ne({typeName:h.ZodUndefined,...y(r)});class se extends g{_parse(e){if(this._getType(e)!==_.null){const n=this._getOrReturnCtx(e);return m(n,{code:c.invalid_type,expected:_.null,received:n.parsedType}),v}return w(e.data)}}se.create=r=>new se({typeName:h.ZodNull,...y(r)});class X extends g{constructor(){super(...arguments),this._any=!0}_parse(e){return w(e.data)}}X.create=r=>new X({typeName:h.ZodAny,...y(r)});class B extends g{constructor(){super(...arguments),this._unknown=!0}_parse(e){return w(e.data)}}B.create=r=>new B({typeName:h.ZodUnknown,...y(r)});class S extends g{_parse(e){const t=this._getOrReturnCtx(e);return m(t,{code:c.invalid_type,expected:_.never,received:t.parsedType}),v}}S.create=r=>new S({typeName:h.ZodNever,...y(r)});class Te extends g{_parse(e){if(this._getType(e)!==_.undefined){const n=this._getOrReturnCtx(e);return m(n,{code:c.invalid_type,expected:_.void,received:n.parsedType}),v}return w(e.data)}}Te.create=r=>new Te({typeName:h.ZodVoid,...y(r)});class A extends g{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),s=this._def;if(t.parsedType!==_.array)return m(t,{code:c.invalid_type,expected:_.array,received:t.parsedType}),v;if(s.exactLength!==null){const a=t.data.length>s.exactLength.value,d=t.data.lengths.maxLength.value&&(m(t,{code:c.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((a,d)=>s.type._parseAsync(new L(t,a,t.path,d)))).then(a=>k.mergeArray(n,a));const i=[...t.data].map((a,d)=>s.type._parseSync(new L(t,a,t.path,d)));return k.mergeArray(n,i)}get element(){return this._def.type}min(e,t){return new A({...this._def,minLength:{value:e,message:p.toString(t)}})}max(e,t){return new A({...this._def,maxLength:{value:e,message:p.toString(t)}})}length(e,t){return new A({...this._def,exactLength:{value:e,message:p.toString(t)}})}nonempty(e){return this.min(1,e)}}A.create=(r,e)=>new A({type:r,minLength:null,maxLength:null,exactLength:null,typeName:h.ZodArray,...y(e)});function F(r){if(r instanceof T){const e={};for(const t in r.shape){const n=r.shape[t];e[t]=P.create(F(n))}return new T({...r._def,shape:()=>e})}else return r instanceof A?new A({...r._def,type:F(r.element)}):r instanceof P?P.create(F(r.unwrap())):r instanceof $?$.create(F(r.unwrap())):r instanceof D?D.create(r.items.map(e=>F(e))):r}class T extends g{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),t=E.objectKeys(e);return this._cached={shape:e,keys:t}}_parse(e){if(this._getType(e)!==_.object){const l=this._getOrReturnCtx(e);return m(l,{code:c.invalid_type,expected:_.object,received:l.parsedType}),v}const{status:n,ctx:s}=this._processInputParams(e),{shape:i,keys:a}=this._getCached(),d=[];if(!(this._def.catchall instanceof S&&this._def.unknownKeys==="strip"))for(const l in s.data)a.includes(l)||d.push(l);const u=[];for(const l of a){const f=i[l],O=s.data[l];u.push({key:{status:"valid",value:l},value:f._parse(new L(s,O,s.path,l)),alwaysSet:l in s.data})}if(this._def.catchall instanceof S){const l=this._def.unknownKeys;if(l==="passthrough")for(const f of d)u.push({key:{status:"valid",value:f},value:{status:"valid",value:s.data[f]}});else if(l==="strict")d.length>0&&(m(s,{code:c.unrecognized_keys,keys:d}),n.dirty());else if(l!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const l=this._def.catchall;for(const f of d){const O=s.data[f];u.push({key:{status:"valid",value:f},value:l._parse(new L(s,O,s.path,f)),alwaysSet:f in s.data})}}return s.common.async?Promise.resolve().then(async()=>{const l=[];for(const f of u){const O=await f.key,q=await f.value;l.push({key:O,value:q,alwaysSet:f.alwaysSet})}return l}).then(l=>k.mergeObjectSync(n,l)):k.mergeObjectSync(n,u)}get shape(){return this._def.shape()}strict(e){return p.errToObj,new T({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,n)=>{var s,i,a,d;const u=(a=(i=(s=this._def).errorMap)===null||i===void 0?void 0:i.call(s,t,n).message)!==null&&a!==void 0?a:n.defaultError;return t.code==="unrecognized_keys"?{message:(d=p.errToObj(e).message)!==null&&d!==void 0?d:u}:{message:u}}}:{}})}strip(){return new T({...this._def,unknownKeys:"strip"})}passthrough(){return new T({...this._def,unknownKeys:"passthrough"})}extend(e){return new T({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new T({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:h.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new T({...this._def,catchall:e})}pick(e){const t={};return E.objectKeys(e).forEach(n=>{e[n]&&this.shape[n]&&(t[n]=this.shape[n])}),new T({...this._def,shape:()=>t})}omit(e){const t={};return E.objectKeys(this.shape).forEach(n=>{e[n]||(t[n]=this.shape[n])}),new T({...this._def,shape:()=>t})}deepPartial(){return F(this)}partial(e){const t={};return E.objectKeys(this.shape).forEach(n=>{const s=this.shape[n];e&&!e[n]?t[n]=s:t[n]=s.optional()}),new T({...this._def,shape:()=>t})}required(e){const t={};return E.objectKeys(this.shape).forEach(n=>{if(e&&!e[n])t[n]=this.shape[n];else{let i=this.shape[n];for(;i instanceof P;)i=i._def.innerType;t[n]=i}}),new T({...this._def,shape:()=>t})}keyof(){return Qe(E.objectKeys(this.shape))}}T.create=(r,e)=>new T({shape:()=>r,unknownKeys:"strip",catchall:S.create(),typeName:h.ZodObject,...y(e)});T.strictCreate=(r,e)=>new T({shape:()=>r,unknownKeys:"strict",catchall:S.create(),typeName:h.ZodObject,...y(e)});T.lazycreate=(r,e)=>new T({shape:r,unknownKeys:"strip",catchall:S.create(),typeName:h.ZodObject,...y(e)});class ie extends g{_parse(e){const{ctx:t}=this._processInputParams(e),n=this._def.options;function s(i){for(const d of i)if(d.result.status==="valid")return d.result;for(const d of i)if(d.result.status==="dirty")return t.common.issues.push(...d.ctx.common.issues),d.result;const a=i.map(d=>new I(d.ctx.common.issues));return m(t,{code:c.invalid_union,unionErrors:a}),v}if(t.common.async)return Promise.all(n.map(async i=>{const a={...t,common:{...t.common,issues:[]},parent:null};return{result:await i._parseAsync({data:t.data,path:t.path,parent:a}),ctx:a}})).then(s);{let i;const a=[];for(const u of n){const l={...t,common:{...t.common,issues:[]},parent:null},f=u._parseSync({data:t.data,path:t.path,parent:l});if(f.status==="valid")return f;f.status==="dirty"&&!i&&(i={result:f,ctx:l}),l.common.issues.length&&a.push(l.common.issues)}if(i)return t.common.issues.push(...i.ctx.common.issues),i.result;const d=a.map(u=>new I(u));return m(t,{code:c.invalid_union,unionErrors:d}),v}}get options(){return this._def.options}}ie.create=(r,e)=>new ie({options:r,typeName:h.ZodUnion,...y(e)});const Z=r=>r instanceof de?Z(r.schema):r instanceof x?Z(r.innerType()):r instanceof ce?[r.value]:r instanceof M?r.options:r instanceof ue?E.objectValues(r.enum):r instanceof le?Z(r._def.innerType):r instanceof ne?[void 0]:r instanceof se?[null]:r instanceof P?[void 0,...Z(r.unwrap())]:r instanceof $?[null,...Z(r.unwrap())]:r instanceof De||r instanceof _e?Z(r.unwrap()):r instanceof me?Z(r._def.innerType):[];class we extends g{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==_.object)return m(t,{code:c.invalid_type,expected:_.object,received:t.parsedType}),v;const n=this.discriminator,s=t.data[n],i=this.optionsMap.get(s);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(m(t,{code:c.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),v)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,n){const s=new Map;for(const i of t){const a=Z(i.shape[e]);if(!a.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(const d of a){if(s.has(d))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(d)}`);s.set(d,i)}}return new we({typeName:h.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:s,...y(n)})}}function Ze(r,e){const t=C(r),n=C(e);if(r===e)return{valid:!0,data:r};if(t===_.object&&n===_.object){const s=E.objectKeys(e),i=E.objectKeys(r).filter(d=>s.indexOf(d)!==-1),a={...r,...e};for(const d of i){const u=Ze(r[d],e[d]);if(!u.valid)return{valid:!1};a[d]=u.data}return{valid:!0,data:a}}else if(t===_.array&&n===_.array){if(r.length!==e.length)return{valid:!1};const s=[];for(let i=0;i{if(xe(i)||xe(a))return v;const d=Ze(i.value,a.value);return d.valid?((Re(i)||Re(a))&&t.dirty(),{status:t.value,value:d.data}):(m(n,{code:c.invalid_intersection_types}),v)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([i,a])=>s(i,a)):s(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}oe.create=(r,e,t)=>new oe({left:r,right:e,typeName:h.ZodIntersection,...y(t)});class D extends g{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==_.array)return m(n,{code:c.invalid_type,expected:_.array,received:n.parsedType}),v;if(n.data.lengththis._def.items.length&&(m(n,{code:c.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const i=[...n.data].map((a,d)=>{const u=this._def.items[d]||this._def.rest;return u?u._parse(new L(n,a,n.path,d)):null}).filter(a=>!!a);return n.common.async?Promise.all(i).then(a=>k.mergeArray(t,a)):k.mergeArray(t,i)}get items(){return this._def.items}rest(e){return new D({...this._def,rest:e})}}D.create=(r,e)=>{if(!Array.isArray(r))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new D({items:r,typeName:h.ZodTuple,rest:null,...y(e)})};class ae extends g{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==_.object)return m(n,{code:c.invalid_type,expected:_.object,received:n.parsedType}),v;const s=[],i=this._def.keyType,a=this._def.valueType;for(const d in n.data)s.push({key:i._parse(new L(n,d,n.path,d)),value:a._parse(new L(n,n.data[d],n.path,d)),alwaysSet:d in n.data});return n.common.async?k.mergeObjectAsync(t,s):k.mergeObjectSync(t,s)}get element(){return this._def.valueType}static create(e,t,n){return t instanceof g?new ae({keyType:e,valueType:t,typeName:h.ZodRecord,...y(n)}):new ae({keyType:R.create(),valueType:e,typeName:h.ZodRecord,...y(t)})}}class be extends g{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==_.map)return m(n,{code:c.invalid_type,expected:_.map,received:n.parsedType}),v;const s=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([d,u],l)=>({key:s._parse(new L(n,d,n.path,[l,"key"])),value:i._parse(new L(n,u,n.path,[l,"value"]))}));if(n.common.async){const d=new Map;return Promise.resolve().then(async()=>{for(const u of a){const l=await u.key,f=await u.value;if(l.status==="aborted"||f.status==="aborted")return v;(l.status==="dirty"||f.status==="dirty")&&t.dirty(),d.set(l.value,f.value)}return{status:t.value,value:d}})}else{const d=new Map;for(const u of a){const l=u.key,f=u.value;if(l.status==="aborted"||f.status==="aborted")return v;(l.status==="dirty"||f.status==="dirty")&&t.dirty(),d.set(l.value,f.value)}return{status:t.value,value:d}}}}be.create=(r,e,t)=>new be({valueType:e,keyType:r,typeName:h.ZodMap,...y(t)});class W extends g{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==_.set)return m(n,{code:c.invalid_type,expected:_.set,received:n.parsedType}),v;const s=this._def;s.minSize!==null&&n.data.sizes.maxSize.value&&(m(n,{code:c.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),t.dirty());const i=this._def.valueType;function a(u){const l=new Set;for(const f of u){if(f.status==="aborted")return v;f.status==="dirty"&&t.dirty(),l.add(f.value)}return{status:t.value,value:l}}const d=[...n.data.values()].map((u,l)=>i._parse(new L(n,u,n.path,l)));return n.common.async?Promise.all(d).then(u=>a(u)):a(d)}min(e,t){return new W({...this._def,minSize:{value:e,message:p.toString(t)}})}max(e,t){return new W({...this._def,maxSize:{value:e,message:p.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}W.create=(r,e)=>new W({valueType:r,minSize:null,maxSize:null,typeName:h.ZodSet,...y(e)});class Y extends g{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==_.function)return m(t,{code:c.invalid_type,expected:_.function,received:t.parsedType}),v;function n(d,u){return ye({data:d,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,ge(),K].filter(l=>!!l),issueData:{code:c.invalid_arguments,argumentsError:u}})}function s(d,u){return ye({data:d,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,ge(),K].filter(l=>!!l),issueData:{code:c.invalid_return_type,returnTypeError:u}})}const i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof Q){const d=this;return w(async function(...u){const l=new I([]),f=await d._def.args.parseAsync(u,i).catch(V=>{throw l.addIssue(n(u,V)),l}),O=await Reflect.apply(a,this,f);return await d._def.returns._def.type.parseAsync(O,i).catch(V=>{throw l.addIssue(s(O,V)),l})})}else{const d=this;return w(function(...u){const l=d._def.args.safeParse(u,i);if(!l.success)throw new I([n(u,l.error)]);const f=Reflect.apply(a,this,l.data),O=d._def.returns.safeParse(f,i);if(!O.success)throw new I([s(f,O.error)]);return O.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new Y({...this._def,args:D.create(e).rest(B.create())})}returns(e){return new Y({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,n){return new Y({args:e||D.create([]).rest(B.create()),returns:t||B.create(),typeName:h.ZodFunction,...y(n)})}}class de extends g{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}de.create=(r,e)=>new de({getter:r,typeName:h.ZodLazy,...y(e)});class ce extends g{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return m(t,{received:t.data,code:c.invalid_literal,expected:this._def.value}),v}return{status:"valid",value:e.data}}get value(){return this._def.value}}ce.create=(r,e)=>new ce({value:r,typeName:h.ZodLiteral,...y(e)});function Qe(r,e){return new M({values:r,typeName:h.ZodEnum,...y(e)})}class M extends g{constructor(){super(...arguments),he.set(this,void 0)}_parse(e){if(typeof e.data!="string"){const t=this._getOrReturnCtx(e),n=this._def.values;return m(t,{expected:E.joinValues(n),received:t.parsedType,code:c.invalid_type}),v}if(Ae(this,he)||He(this,he,new Set(this._def.values)),!Ae(this,he).has(e.data)){const t=this._getOrReturnCtx(e),n=this._def.values;return m(t,{received:t.data,code:c.invalid_enum_value,options:n}),v}return w(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return M.create(e,{...this._def,...t})}exclude(e,t=this._def){return M.create(this.options.filter(n=>!e.includes(n)),{...this._def,...t})}}he=new WeakMap;M.create=Qe;class ue extends g{constructor(){super(...arguments),ve.set(this,void 0)}_parse(e){const t=E.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==_.string&&n.parsedType!==_.number){const s=E.objectValues(t);return m(n,{expected:E.joinValues(s),received:n.parsedType,code:c.invalid_type}),v}if(Ae(this,ve)||He(this,ve,new Set(E.getValidEnumValues(this._def.values))),!Ae(this,ve).has(e.data)){const s=E.objectValues(t);return m(n,{received:n.data,code:c.invalid_enum_value,options:s}),v}return w(e.data)}get enum(){return this._def.values}}ve=new WeakMap;ue.create=(r,e)=>new ue({values:r,typeName:h.ZodNativeEnum,...y(e)});class Q extends g{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==_.promise&&t.common.async===!1)return m(t,{code:c.invalid_type,expected:_.promise,received:t.parsedType}),v;const n=t.parsedType===_.promise?t.data:Promise.resolve(t.data);return w(n.then(s=>this._def.type.parseAsync(s,{path:t.path,errorMap:t.common.contextualErrorMap})))}}Q.create=(r,e)=>new Q({type:r,typeName:h.ZodPromise,...y(e)});class x extends g{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===h.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:n}=this._processInputParams(e),s=this._def.effect||null,i={addIssue:a=>{m(n,a),a.fatal?t.abort():t.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),s.type==="preprocess"){const a=s.transform(n.data,i);if(n.common.async)return Promise.resolve(a).then(async d=>{if(t.value==="aborted")return v;const u=await this._def.schema._parseAsync({data:d,path:n.path,parent:n});return u.status==="aborted"?v:u.status==="dirty"||t.value==="dirty"?J(u.value):u});{if(t.value==="aborted")return v;const d=this._def.schema._parseSync({data:a,path:n.path,parent:n});return d.status==="aborted"?v:d.status==="dirty"||t.value==="dirty"?J(d.value):d}}if(s.type==="refinement"){const a=d=>{const u=s.refinement(d,i);if(n.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return d};if(n.common.async===!1){const d=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return d.status==="aborted"?v:(d.status==="dirty"&&t.dirty(),a(d.value),{status:t.value,value:d.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(d=>d.status==="aborted"?v:(d.status==="dirty"&&t.dirty(),a(d.value).then(()=>({status:t.value,value:d.value}))))}if(s.type==="transform")if(n.common.async===!1){const a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!ee(a))return a;const d=s.transform(a.value,i);if(d instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:d}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>ee(a)?Promise.resolve(s.transform(a.value,i)).then(d=>({status:t.value,value:d})):a);E.assertNever(s)}}x.create=(r,e,t)=>new x({schema:r,typeName:h.ZodEffects,effect:e,...y(t)});x.createWithPreprocess=(r,e,t)=>new x({schema:e,effect:{type:"preprocess",transform:r},typeName:h.ZodEffects,...y(t)});class P extends g{_parse(e){return this._getType(e)===_.undefined?w(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}P.create=(r,e)=>new P({innerType:r,typeName:h.ZodOptional,...y(e)});class $ extends g{_parse(e){return this._getType(e)===_.null?w(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}$.create=(r,e)=>new $({innerType:r,typeName:h.ZodNullable,...y(e)});class le extends g{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===_.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}le.create=(r,e)=>new le({innerType:r,typeName:h.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...y(e)});class me extends g{_parse(e){const{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},s=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return te(s)?s.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new I(n.common.issues)},input:n.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new I(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}me.create=(r,e)=>new me({innerType:r,typeName:h.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...y(e)});class ke extends g{_parse(e){if(this._getType(e)!==_.nan){const n=this._getOrReturnCtx(e);return m(n,{code:c.invalid_type,expected:_.nan,received:n.parsedType}),v}return{status:"valid",value:e.data}}}ke.create=r=>new ke({typeName:h.ZodNaN,...y(r)});const Fe=Symbol("zod_brand");class De extends g{_parse(e){const{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}}class pe extends g{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{const i=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?v:i.status==="dirty"?(t.dirty(),J(i.value)):this._def.out._parseAsync({data:i.value,path:n.path,parent:n})})();{const s=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?v:s.status==="dirty"?(t.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:n.path,parent:n})}}static create(e,t){return new pe({in:e,out:t,typeName:h.ZodPipeline})}}class _e extends g{_parse(e){const t=this._def.innerType._parse(e),n=s=>(ee(s)&&(s.value=Object.freeze(s.value)),s);return te(t)?t.then(s=>n(s)):n(t)}unwrap(){return this._def.innerType}}_e.create=(r,e)=>new _e({innerType:r,typeName:h.ZodReadonly,...y(e)});function Me(r,e={},t){return r?X.create().superRefine((n,s)=>{var i,a;if(!r(n)){const d=typeof e=="function"?e(n):typeof e=="string"?{message:e}:e,u=(a=(i=d.fatal)!==null&&i!==void 0?i:t)!==null&&a!==void 0?a:!0,l=typeof d=="string"?{message:d}:d;s.addIssue({code:"custom",...l,fatal:u})}}):X.create()}const et={object:T.lazycreate};var h;(function(r){r.ZodString="ZodString",r.ZodNumber="ZodNumber",r.ZodNaN="ZodNaN",r.ZodBigInt="ZodBigInt",r.ZodBoolean="ZodBoolean",r.ZodDate="ZodDate",r.ZodSymbol="ZodSymbol",r.ZodUndefined="ZodUndefined",r.ZodNull="ZodNull",r.ZodAny="ZodAny",r.ZodUnknown="ZodUnknown",r.ZodNever="ZodNever",r.ZodVoid="ZodVoid",r.ZodArray="ZodArray",r.ZodObject="ZodObject",r.ZodUnion="ZodUnion",r.ZodDiscriminatedUnion="ZodDiscriminatedUnion",r.ZodIntersection="ZodIntersection",r.ZodTuple="ZodTuple",r.ZodRecord="ZodRecord",r.ZodMap="ZodMap",r.ZodSet="ZodSet",r.ZodFunction="ZodFunction",r.ZodLazy="ZodLazy",r.ZodLiteral="ZodLiteral",r.ZodEnum="ZodEnum",r.ZodEffects="ZodEffects",r.ZodNativeEnum="ZodNativeEnum",r.ZodOptional="ZodOptional",r.ZodNullable="ZodNullable",r.ZodDefault="ZodDefault",r.ZodCatch="ZodCatch",r.ZodPromise="ZodPromise",r.ZodBranded="ZodBranded",r.ZodPipeline="ZodPipeline",r.ZodReadonly="ZodReadonly"})(h||(h={}));const tt=(r,e={message:`Input not instance of ${r.name}`})=>Me(t=>t instanceof r,e),$e=R.create,ze=N.create,rt=ke.create,nt=j.create,Be=re.create,st=U.create,it=Ee.create,ot=ne.create,at=se.create,dt=X.create,ct=B.create,ut=S.create,lt=Te.create,mt=A.create,_t=T.create,pt=T.strictCreate,ft=ie.create,ht=we.create,vt=oe.create,gt=D.create,yt=ae.create,Et=be.create,Tt=W.create,bt=Y.create,kt=de.create,Ot=ce.create,wt=M.create,It=ue.create,xt=Q.create,Pe=x.create,Rt=P.create,At=$.create,Pt=x.createWithPreprocess,Dt=pe.create,Vt=()=>$e().optional(),Lt=()=>ze().optional(),St=()=>Be().optional(),Zt={string:r=>R.create({...r,coerce:!0}),number:r=>N.create({...r,coerce:!0}),boolean:r=>re.create({...r,coerce:!0}),bigint:r=>j.create({...r,coerce:!0}),date:r=>U.create({...r,coerce:!0})},Ct=v;var b=Object.freeze({__proto__:null,defaultErrorMap:K,setErrorMap:Je,getErrorMap:ge,makeIssue:ye,EMPTY_PATH:Ye,addIssueToContext:m,ParseStatus:k,INVALID:v,DIRTY:J,OK:w,isAborted:xe,isDirty:Re,isValid:ee,isAsync:te,get util(){return E},get objectUtil(){return Ie},ZodParsedType:_,getParsedType:C,ZodType:g,datetimeRegex:je,ZodString:R,ZodNumber:N,ZodBigInt:j,ZodBoolean:re,ZodDate:U,ZodSymbol:Ee,ZodUndefined:ne,ZodNull:se,ZodAny:X,ZodUnknown:B,ZodNever:S,ZodVoid:Te,ZodArray:A,ZodObject:T,ZodUnion:ie,ZodDiscriminatedUnion:we,ZodIntersection:oe,ZodTuple:D,ZodRecord:ae,ZodMap:be,ZodSet:W,ZodFunction:Y,ZodLazy:de,ZodLiteral:ce,ZodEnum:M,ZodNativeEnum:ue,ZodPromise:Q,ZodEffects:x,ZodTransformer:x,ZodOptional:P,ZodNullable:$,ZodDefault:le,ZodCatch:me,ZodNaN:ke,BRAND:Fe,ZodBranded:De,ZodPipeline:pe,ZodReadonly:_e,custom:Me,Schema:g,ZodSchema:g,late:et,get ZodFirstPartyTypeKind(){return h},coerce:Zt,any:dt,array:mt,bigint:nt,boolean:Be,date:st,discriminatedUnion:ht,effect:Pe,enum:wt,function:bt,instanceof:tt,intersection:vt,lazy:kt,literal:Ot,map:Et,nan:rt,nativeEnum:It,never:ut,null:at,nullable:At,number:ze,object:_t,oboolean:St,onumber:Lt,optional:Rt,ostring:Vt,pipeline:Dt,preprocess:Pt,promise:xt,record:yt,set:Tt,strictObject:pt,string:$e,symbol:it,transformer:Pe,tuple:gt,undefined:ot,union:ft,unknown:ct,void:lt,NEVER:Ct,ZodIssueCode:c,quotelessJson:qe,ZodError:I});const gr=Object.freeze(Object.defineProperty({__proto__:null,BRAND:Fe,DIRTY:J,EMPTY_PATH:Ye,INVALID:v,NEVER:Ct,OK:w,ParseStatus:k,Schema:g,ZodAny:X,ZodArray:A,ZodBigInt:j,ZodBoolean:re,ZodBranded:De,ZodCatch:me,ZodDate:U,ZodDefault:le,ZodDiscriminatedUnion:we,ZodEffects:x,ZodEnum:M,ZodError:I,get ZodFirstPartyTypeKind(){return h},ZodFunction:Y,ZodIntersection:oe,ZodIssueCode:c,ZodLazy:de,ZodLiteral:ce,ZodMap:be,ZodNaN:ke,ZodNativeEnum:ue,ZodNever:S,ZodNull:se,ZodNullable:$,ZodNumber:N,ZodObject:T,ZodOptional:P,ZodParsedType:_,ZodPipeline:pe,ZodPromise:Q,ZodReadonly:_e,ZodRecord:ae,ZodSchema:g,ZodSet:W,ZodString:R,ZodSymbol:Ee,ZodTransformer:x,ZodTuple:D,ZodType:g,ZodUndefined:ne,ZodUnion:ie,ZodUnknown:B,ZodVoid:Te,addIssueToContext:m,any:dt,array:mt,bigint:nt,boolean:Be,coerce:Zt,custom:Me,date:st,datetimeRegex:je,default:b,defaultErrorMap:K,discriminatedUnion:ht,effect:Pe,enum:wt,function:bt,getErrorMap:ge,getParsedType:C,instanceof:tt,intersection:vt,isAborted:xe,isAsync:te,isDirty:Re,isValid:ee,late:et,lazy:kt,literal:Ot,makeIssue:ye,map:Et,nan:rt,nativeEnum:It,never:ut,null:at,nullable:At,number:ze,object:_t,get objectUtil(){return Ie},oboolean:St,onumber:Lt,optional:Rt,ostring:Vt,pipeline:Dt,preprocess:Pt,promise:xt,quotelessJson:qe,record:yt,set:Tt,setErrorMap:Je,strictObject:pt,string:$e,symbol:it,transformer:Pe,tuple:gt,undefined:ot,union:ft,unknown:ct,get util(){return E},void:lt,z:b},Symbol.toStringTag,{value:"Module"}));class Nt extends Set{}const H={};let Se=0,Ce=!1;const Ne=new Set;function G(r,e){const t=H[r];t&&t.forEach(n=>{try{n.listener(e)}catch(s){console.error(`Error in callback for event "${r}": ${s}`)}n.auto_clean&&t.delete(n)})}function jt(r,e,t=!0){function n(){let s=H[r];s||(H[r]=new Nt,s=H[r]);for(const i of(s==null?void 0:s.values())??[])if(i.listener===e){s==null||s.delete(i);break}}if(!t)n();else try{We(()=>{n()})}catch{console.warn("I tried to wrap the function within afterNavigate and failed...are you calling this inside afterNavigate?"),n()}}function z(r,e,{registerDuringTransition:t=!1,autoWrap:n=!0,autoClean:s=!0}={}){const i=(d=n)=>jt(r,e,d);function a(){function d(){let u=H[r];u||(H[r]=new Nt,u=H[r]),u==null||u.add({listener:e,auto_clean:s})}if(Ce&&!t)return Ne.add(()=>{d()}),i;d()}if(!n)return a(),i;try{We(()=>{a()})}catch{console.warn("I tried to wrap the function within afterNavigate and failed...are you calling this inside afterNavigate?"),a()}return i}function ar(r,e=!0){let t;const n=z("transition-finished",()=>{t&&t.length>0&&document.documentElement.classList.remove(...t)},{registerDuringTransition:!1,autoWrap:e});z("before-start-view-transition",s=>{t=Array.isArray(r)?r:r(s),t?document.documentElement.classList.add(...t):n(!0)},{registerDuringTransition:!1,autoWrap:e})}function dr(r,e){if(typeof e=="string"){r.style.setProperty("view-transition-name",e);return}function t(s){let i;const a=[];a.push(z("after-navigation-complete",l=>{const{top:f}=r.getBoundingClientRect(),O=f{r.style.setProperty("view-transition-name",null)},{registerDuringTransition:!0,autoWrap:!1,autoClean:!1}))}},{registerDuringTransition:!0,autoWrap:!1,autoClean:!1}));const d=z("before-start-view-transition",l=>{let f=!0;const{top:O}=r.getBoundingClientRect(),q=O{r.style.setProperty("view-transition-name",null)},{autoWrap:!1,registerDuringTransition:!0,autoClean:!1})),s.classes&&(i=Array.isArray(s.classes)?s.classes:s.classes(V)),i?document.documentElement.classList.add(...i):u==null||u()}},{registerDuringTransition:!1,autoWrap:!1,autoClean:!1});a.push(d);let u;return u=z("transition-finished",()=>{i&&i.length>0&&document.documentElement.classList.remove(...i)},{registerDuringTransition:!1,autoWrap:!1,autoClean:!1}),a.push(u),()=>{a.forEach(l=>{l(!1)})}}let n=t(e);return{update(s){if(n==null||n(),n=void 0,typeof s=="string"){r.style.setProperty("view-transition-name",s);return}n=t(s)},destroy(){n==null||n()}}}function yr(){return Se===0&&qt&&document.startViewTransition&&(Se++,Bt(r=>{if(document.startViewTransition)return new Promise(e=>{G("before-start-view-transition",{navigation:r});const t=document.startViewTransition(async()=>{Ce=!0,G("before-navigation",{navigation:r}),e(),G("before-navigation-complete",{navigation:r}),await r.complete,G("after-navigation-complete",{navigation:r})});t.ready.then(()=>{G("transition-ready",{navigation:r,transition:t})}).catch(console.error),t.updateCallbackDone.then(()=>{G("update-callback-done",{navigation:r,transition:t})}).catch(console.error),t.finished.then(()=>{G("transition-finished",{navigation:r,transition:t}),Ce=!1,Ne.forEach(n=>{n()}),Ne.clear()}).catch(console.error)})}),Ut(()=>{Se--})),{on:z,off:jt,transition:dr,classes:ar}}const Mt=(r,e,t)=>{const n=r[e];return n?typeof n=="function"?n():Promise.resolve(n):new Promise((s,i)=>{(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(i.bind(null,new Error("Unknown variable dynamic import: "+e+(e.split("/").length!==t?". Note that variables only represent file names one level deep.":""))))})};function fe(r,e){if(!r)throw new Error(e)}const $t=b.object({title:b.string(),slug:b.string(),description:b.string(),date:b.string(),lastmod:b.string(),publish:b.boolean(),tags:b.array(b.string()),status:b.string().optional(),statusIcon:b.string().optional(),href:b.string().optional(),filename:b.string().optional(),internalLinks:b.array(b.string()),readTime:b.number().optional()}),cr={"Make API misuse hard":"notes/make-api-misuse-hard","git-cheatsheet":"notes/git-cheatsheet","Branded Types":"notes/branded-types","Dynamically generate TypeScript Playground links":"notes/dynamic-ts-playground-links","TypeScript assertion functions increase type safety":"notes/assertion-functions","Total Typescript notes":"notes/total-typescript-notes","Structural types increase data compatibility":"notes/structural-types-increase-compatibility","Classy coding - JavaScript OOP through the ages":"notes/classy-javascript","Identity functions":"notes/identity-functions","Type branding removes structural type compatibility":"notes/structural-branded-types-nominal","Improve site previews on social media by unfurling webpages":"notes/site-unfurling","Slugs make links readable":"notes/slugs-make-links-readable","Beautifully render markdown code blocks in Svelte":"notes/svelte-shiki-twoslash","Adding users to new teams with Lucia auth and Prisma":"notes/customer-teams-lucia","Resolving CORS errors in SvelteKit":"notes/sveltekit-cors","Add a demo link to TypeScript code blocks":"notes/code-block-tsplay-demo-link","Linting and formatting a svelte typescript project":"notes/lint-format-svelte","Svelte component APIs":"notes/svelte-component-apis","sveltekit-storybook-setup":"notes/sveltekit-storybook-setup","Make example code interactive":"notes/make-example-code-interactive","Open neovim edgebar with focus set":"notes/focus-edgy-view","Thinking channels":"notes/thinking-channels","positive-feedback":"notes/positive-feedback","single-option-aversion-bias":"notes/single-option-aversion-bias","Money market":"notes/money-market","opportunity-cost":"notes/opportunity-cost","production-cost":"notes/production-cost","principal-agent-problem":"notes/principal-agent-problem","market-forces":"notes/market-forces","10 questions to evaluate a startup idea":"notes/evaluating-startup-idea","Theory and practice":"notes/theory-practice","Work-life balance":"notes/work-life-balance","three-options-consensus":"notes/three-options-consensus",uses:"uses","The publishing pipeline for allandeutsch.com":"notes/publishing-this-site","I want a smaller phone":"notes/smaller-phone","I use Neovim btw":"notes/use-neovim","Pasta Arabica":"notes/pasta-arabica","avocado-toast":"notes/avocado-toast","Gold Mac n Cheese":"gold-mac","pdc-travel-guide":"notes/pdc-travel-guide","cozumel-travel-guide":"notes/cozumel-travel-guide","distribution-channel":"notes/distribution-channel","learning-process":"notes/learning-process","value-innovation":"notes/value-innovation",microeconomics:"notes/microeconomics","marginal-utility":"notes/marginal-utility","positioning-statement":"notes/positioning-statement","use-contrast-direct-attention":"notes/use-contrast-direct-attention","blue-ocean-strategy":"notes/blue-ocean-strategy","strategy-canvas":"notes/strategy-canvas","fundamental-habits":"notes/fundamental-habits","vicious-virtuous-cycles":"notes/vicious-virtuous-cycles","supply-demand":"notes/supply-demand","price-elasticity":"notes/price-elasticity","customer-relationship":"notes/customer-relationship","hard-decisions":"notes/hard-decisions","ask-dont-tell":"notes/ask-dont-tell","spaced-repetition-workflow":"notes/spaced-repetition-workflow","business-model-canvas":"notes/business-model-canvas","four-actions-framework":"notes/four-actions-framework","blue-ocean":"notes/blue-ocean","traits-successful-blue-ocean-strategy":"notes/traits-successful-blue-ocean-strategy","compound-growth-system":"notes/compound-growth-system","cross-price-elasticity":"notes/cross-price-elasticity",restaurants:"notes/restaurants","consumer-demand":"notes/consumer-demand","value-curve":"notes/value-curve",grapow:"notes/grapow","value-proposition":"notes/value-proposition","compound-growth-most-impactful-at-end":"notes/compound-growth-most-impactful-at-end",utility:"notes/utility","ui-shadows":"notes/ui-shadows","situation-analysis":"notes/situation-analysis","price-elasticity-demand":"notes/price-elasticity-demand","type-1-2-decisions":"notes/type-1-2-decisions","segmentation-targeting-positioning":"notes/segmentation-targeting-positioning","Build infrastructure after not having it becomes painful":"notes/build-infrastructure-after-pain","red-ocean":"notes/red-ocean","customer-segment":"notes/customer-segment","competition-factors":"notes/competition-factors","world-recursive":"notes/world-recursive","monetized-content-compound-growth":"notes/monetized-content-compound-growth","customer-attribute-categories":"notes/customer-attribute-categories","devlog 7":"devlog/7","devlog 6":"devlog/6","devlog index":"devlog","devlog 12":"devlog/12","devlog 9":"devlog/9","devlog 8":"devlog/8","devlog 5":"devlog/5","devlog 1":"devlog/1","devlog 4":"devlog/4","devlog 3":"devlog/3","devlog 11":"devlog/11","devlog 0":"devlog/0","devlog 2":"devlog/2","devlog 10":"devlog/10",cafes:"notes/seattle-cafes",Gifts:"notes/gifts","Mac tips":"notes/mac-tips"};function ur(r){return Object.fromEntries(Object.entries(r).map(([e,t])=>[t,e]))}const Oe=ur(cr);async function Er({slug:r}){let e;try{e=await Mt(Object.assign({"../../_content/notes/10 questions to evaluate a startup idea.md":()=>o(()=>import("./10 questions to evaluate a startup idea.CgztSJf-.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Add a demo link to TypeScript code blocks.md":()=>o(()=>import("./Add a demo link to TypeScript code blocks.DOBRZgS-.js"),__vite__mapDeps([9,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Adding users to new teams with Lucia auth and Prisma.md":()=>o(()=>import("./Adding users to new teams with Lucia auth and Prisma.BDKAgZrZ.js"),__vite__mapDeps([10,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Beautifully render markdown code blocks in Svelte.md":()=>o(()=>import("./Beautifully render markdown code blocks in Svelte.mHUdLjzS.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Branded Types.md":()=>o(()=>import("./Branded Types.CL6b9hEC.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Build infrastructure after not having it becomes painful.md":()=>o(()=>import("./Build infrastructure after not having it becomes painful.BNitDpYR.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Classy coding - JavaScript OOP through the ages.md":()=>o(()=>import("./Classy coding - JavaScript OOP through the ages.d2kAFBeU.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Dynamically generate TypeScript Playground links.md":()=>o(()=>import("./Dynamically generate TypeScript Playground links.ydr-BTfi.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Gifts.md":()=>o(()=>import("./Gifts.D3riRslI.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/Gold Mac n Cheese.md":()=>o(()=>import("./Gold Mac n Cheese.wwiG7Xog.js"),__vite__mapDeps([18,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/I use Neovim btw.md":()=>o(()=>import("./I use Neovim btw.BSDQA274.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/I want a smaller phone.md":()=>o(()=>import("./I want a smaller phone.CBtpzzFK.js"),__vite__mapDeps([20,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Identity functions.md":()=>o(()=>import("./Identity functions.BWjbs7CM.js"),__vite__mapDeps([21,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Improve site previews on social media by unfurling webpages.md":()=>o(()=>import("./Improve site previews on social media by unfurling webpages.DYaIAgRS.js"),__vite__mapDeps([22,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Linting and formatting a svelte typescript project.md":()=>o(()=>import("./Linting and formatting a svelte typescript project.HFg0G87O.js"),__vite__mapDeps([23,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Mac tips.md":()=>o(()=>import("./Mac tips.B5E3WvWi.js"),__vite__mapDeps([24,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Make API misuse hard.md":()=>o(()=>import("./Make API misuse hard.DB0lSOHm.js"),__vite__mapDeps([25,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Make example code interactive.md":()=>o(()=>import("./Make example code interactive.CM_Y_3d6.js"),__vite__mapDeps([26,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Money market.md":()=>o(()=>import("./Money market.ygvC6hRu.js"),__vite__mapDeps([27,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Open neovim edgebar with focus set.md":()=>o(()=>import("./Open neovim edgebar with focus set.NAGooXWn.js"),__vite__mapDeps([28,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Pasta Arabica.md":()=>o(()=>import("./Pasta Arabica.BGR1I-89.js"),__vite__mapDeps([29,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/Resolving CORS errors in SvelteKit.md":()=>o(()=>import("./Resolving CORS errors in SvelteKit.DZjzjE4e.js"),__vite__mapDeps([30,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Slugs make links readable.md":()=>o(()=>import("./Slugs make links readable.BGLpFVCP.js"),__vite__mapDeps([31,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Structural types increase data compatibility.md":()=>o(()=>import("./Structural types increase data compatibility.biZ-9IAP.js"),__vite__mapDeps([32,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/Svelte component APIs.md":()=>o(()=>import("./Svelte component APIs.DCZc3A1B.js"),__vite__mapDeps([33,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/The publishing pipeline for allandeutsch.com.md":()=>o(()=>import("./The publishing pipeline for allandeutsch.com.DSi5AzjS.js"),__vite__mapDeps([34,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Theory and practice.md":()=>o(()=>import("./Theory and practice.B6aE3Pap.js"),__vite__mapDeps([35,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Thinking channels.md":()=>o(()=>import("./Thinking channels.D2TVXIf8.js"),__vite__mapDeps([36,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/Total Typescript notes.md":()=>o(()=>import("./Total Typescript notes.DH4Oseug.js"),__vite__mapDeps([37,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/Type branding removes structural type compatibility.md":()=>o(()=>import("./Type branding removes structural type compatibility.BWx-VkUf.js"),__vite__mapDeps([38,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/TypeScript assertion functions increase type safety.md":()=>o(()=>import("./TypeScript assertion functions increase type safety.BP-_AQ3S.js"),__vite__mapDeps([39,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Work-life balance.md":()=>o(()=>import("./Work-life balance.y6nWYxIK.js"),__vite__mapDeps([40,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/ask-dont-tell.md":()=>o(()=>import("./ask-dont-tell.CIcu1i0U.js"),__vite__mapDeps([41,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/avocado-toast.md":()=>o(()=>import("./avocado-toast.BooYnY_w.js"),__vite__mapDeps([42,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/blue-ocean-strategy.md":()=>o(()=>import("./blue-ocean-strategy.BWdcKAiD.js"),__vite__mapDeps([43,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/blue-ocean.md":()=>o(()=>import("./blue-ocean.DxC3NMWm.js"),__vite__mapDeps([44,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/business-model-canvas.md":()=>o(()=>import("./business-model-canvas.oh0IwP8M.js"),__vite__mapDeps([45,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/cafes.md":()=>o(()=>import("./cafes.uQAuyBOp.js"),__vite__mapDeps([46,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/competition-factors.md":()=>o(()=>import("./competition-factors.C6BxxI0H.js"),__vite__mapDeps([47,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/compound-growth-most-impactful-at-end.md":()=>o(()=>import("./compound-growth-most-impactful-at-end.ChVXWD8y.js"),__vite__mapDeps([48,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/compound-growth-system.md":()=>o(()=>import("./compound-growth-system.COiC_Oy3.js"),__vite__mapDeps([49,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/consumer-demand.md":()=>o(()=>import("./consumer-demand.Be62HbrP.js"),__vite__mapDeps([50,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/cozumel-travel-guide.md":()=>o(()=>import("./cozumel-travel-guide.BkUC5Hb-.js"),__vite__mapDeps([51,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/cross-price-elasticity.md":()=>o(()=>import("./cross-price-elasticity.DRc4n9zW.js"),__vite__mapDeps([52,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/customer-attribute-categories.md":()=>o(()=>import("./customer-attribute-categories.Bo_Y20oO.js"),__vite__mapDeps([53,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/customer-relationship.md":()=>o(()=>import("./customer-relationship.CZdp0T_b.js"),__vite__mapDeps([54,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/customer-segment.md":()=>o(()=>import("./customer-segment.CPn0stp7.js"),__vite__mapDeps([55,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 0.md":()=>o(()=>import("./devlog 0.RgmRtHXS.js"),__vite__mapDeps([56,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 1.md":()=>o(()=>import("./devlog 1.DDTDHT6q.js"),__vite__mapDeps([57,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 10.md":()=>o(()=>import("./devlog 10.DS2f_KL8.js"),__vite__mapDeps([58,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 11.md":()=>o(()=>import("./devlog 11.BW1hYBMT.js"),__vite__mapDeps([59,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 12.md":()=>o(()=>import("./devlog 12.CdUHn2un.js"),__vite__mapDeps([60,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 2.md":()=>o(()=>import("./devlog 2.Bi7CcMPv.js"),__vite__mapDeps([61,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 3.md":()=>o(()=>import("./devlog 3.Dotf0NoA.js"),__vite__mapDeps([62,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 4.md":()=>o(()=>import("./devlog 4.BPU-Lm0F.js"),__vite__mapDeps([63,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 5.md":()=>o(()=>import("./devlog 5.DkktZC2V.js"),__vite__mapDeps([64,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 6.md":()=>o(()=>import("./devlog 6.PNSwU6us.js"),__vite__mapDeps([65,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 7.md":()=>o(()=>import("./devlog 7.CGLxAYKP.js"),__vite__mapDeps([66,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 8.md":()=>o(()=>import("./devlog 8.eO5nFico.js"),__vite__mapDeps([67,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 9.md":()=>o(()=>import("./devlog 9.C4MrjIvG.js"),__vite__mapDeps([68,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog index.md":()=>o(()=>import("./devlog index.CSWrnpbr.js"),__vite__mapDeps([69,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/distribution-channel.md":()=>o(()=>import("./distribution-channel.BMsJ0_ts.js"),__vite__mapDeps([70,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/four-actions-framework.md":()=>o(()=>import("./four-actions-framework.ANmRTSWg.js"),__vite__mapDeps([71,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/fundamental-habits.md":()=>o(()=>import("./fundamental-habits.11R1lV-x.js"),__vite__mapDeps([72,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/git-cheatsheet.md":()=>o(()=>import("./git-cheatsheet.DxWxl8y3.js"),__vite__mapDeps([73,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/grapow.md":()=>o(()=>import("./grapow.6ZhevCpR.js"),__vite__mapDeps([74,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/hard-decisions.md":()=>o(()=>import("./hard-decisions.DbduR4ji.js"),__vite__mapDeps([75,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/learning-process.md":()=>o(()=>import("./learning-process.DrjT5K9s.js"),__vite__mapDeps([76,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/marginal-utility.md":()=>o(()=>import("./marginal-utility.DFLjb6WP.js"),__vite__mapDeps([77,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/market-forces.md":()=>o(()=>import("./market-forces.BDqb10W5.js"),__vite__mapDeps([78,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/microeconomics.md":()=>o(()=>import("./microeconomics.BcpR4GD6.js"),__vite__mapDeps([79,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/monetized-content-compound-growth.md":()=>o(()=>import("./monetized-content-compound-growth.Dgqpoaho.js"),__vite__mapDeps([80,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/opportunity-cost.md":()=>o(()=>import("./opportunity-cost.BzOhaR-X.js"),__vite__mapDeps([81,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/pdc-travel-guide.md":()=>o(()=>import("./pdc-travel-guide.9jqm4aHj.js"),__vite__mapDeps([82,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/positioning-statement.md":()=>o(()=>import("./positioning-statement.CJSW2jyH.js"),__vite__mapDeps([83,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/positive-feedback.md":()=>o(()=>import("./positive-feedback.DHQ-U0EN.js"),__vite__mapDeps([84,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/price-elasticity-demand.md":()=>o(()=>import("./price-elasticity-demand.BnOrMkws.js"),__vite__mapDeps([85,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/price-elasticity.md":()=>o(()=>import("./price-elasticity.C2oB6lq5.js"),__vite__mapDeps([86,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/principal-agent-problem.md":()=>o(()=>import("./principal-agent-problem.CzYtaNOb.js"),__vite__mapDeps([87,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/production-cost.md":()=>o(()=>import("./production-cost.CeWgjDIh.js"),__vite__mapDeps([88,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/red-ocean.md":()=>o(()=>import("./red-ocean.CH9bj-G8.js"),__vite__mapDeps([89,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/restaurants.md":()=>o(()=>import("./restaurants.B1Uq-bOl.js"),__vite__mapDeps([90,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/segmentation-targeting-positioning.md":()=>o(()=>import("./segmentation-targeting-positioning.5Cpt97xC.js"),__vite__mapDeps([91,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/single-option-aversion-bias.md":()=>o(()=>import("./single-option-aversion-bias.CmY0pqxW.js"),__vite__mapDeps([92,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/situation-analysis.md":()=>o(()=>import("./situation-analysis.Dd1WRKB3.js"),__vite__mapDeps([93,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/spaced-repetition-workflow.md":()=>o(()=>import("./spaced-repetition-workflow.0MivO-QI.js"),__vite__mapDeps([94,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/strategy-canvas.md":()=>o(()=>import("./strategy-canvas.zTP9rU7X.js"),__vite__mapDeps([95,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/supply-demand.md":()=>o(()=>import("./supply-demand.CvIqHfiO.js"),__vite__mapDeps([96,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/sveltekit-storybook-setup.md":()=>o(()=>import("./sveltekit-storybook-setup.CgnWEul6.js"),__vite__mapDeps([97,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/three-options-consensus.md":()=>o(()=>import("./three-options-consensus.Cgq8kfaR.js"),__vite__mapDeps([98,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/traits-successful-blue-ocean-strategy.md":()=>o(()=>import("./traits-successful-blue-ocean-strategy.CJXl_O2n.js"),__vite__mapDeps([99,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/type-1-2-decisions.md":()=>o(()=>import("./type-1-2-decisions.d3LyCmWh.js"),__vite__mapDeps([100,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/ui-shadows.md":()=>o(()=>import("./ui-shadows.DxQPsGEn.js"),__vite__mapDeps([101,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/use-contrast-direct-attention.md":()=>o(()=>import("./use-contrast-direct-attention.DzdX4TxX.js"),__vite__mapDeps([102,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/uses.md":()=>o(()=>import("./uses.B_CV_03r.js"),__vite__mapDeps([103,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/utility.md":()=>o(()=>import("./utility.Dj2j_1E3.js"),__vite__mapDeps([104,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/value-curve.md":()=>o(()=>import("./value-curve.DQtutUDh.js"),__vite__mapDeps([105,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/value-innovation.md":()=>o(()=>import("./value-innovation.DSizLb8I.js"),__vite__mapDeps([106,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/value-proposition.md":()=>o(()=>import("./value-proposition.D_C-5Dxe.js"),__vite__mapDeps([107,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/vicious-virtuous-cycles.md":()=>o(()=>import("./vicious-virtuous-cycles.DF1LPjiD.js"),__vite__mapDeps([108,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/world-recursive.md":()=>o(()=>import("./world-recursive.D2i5zPin.js"),__vite__mapDeps([109,1,2,3,4,5,6,7,8]),import.meta.url)}),`../../_content/notes/${Oe[r]}.md`,5)}catch{return{success:!1,error:`Failed to open '${r}' with filename '${Oe[r]}.md'.`}}fe(e!==null,`The post '${r}' is null.`),fe(typeof e=="object",`The post '${r}' isn't an object.`),fe("metadata"in e,`The post '${r}' is missing metadata.`),fe("default"in e,`The post '${r}' is missing content.`),fe(e.default,`The post '${r}' is null.`);const t=await $t.safeParseAsync(e.metadata);return t.success?(zt(t.data),{success:!0,metadata:t.data,content:e.default}):{success:!1,error:`The metadata for post '${r}' isn't valid.
-Issue: ${t.error.toString()}`}}function zt(r){if(r.tags){const e=r.tags.find(t=>t.startsWith("status/"));if(e!==void 0){const t=lr(e);r.status=t.status,r.statusIcon=t.statusIcon}}r.href=`/${r.slug}`}function lr(r){r=r.split("/")[1];let e="";switch(r.toLowerCase()){case"evergreen":e="🌲";break;case"budding":e="🌿";break;case"seedling":e="🌱";break}return{status:r.toLowerCase(),statusIcon:e}}function mr(r){return r.sort((e,t)=>new Date(t.lastmod).getTime()-new Date(e.lastmod).getTime())}async function _r({slug:r}){try{const{metadata:e}=await Mt(Object.assign({"../../_content/notes/10 questions to evaluate a startup idea.md":()=>o(()=>import("./10 questions to evaluate a startup idea.CgztSJf-.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Add a demo link to TypeScript code blocks.md":()=>o(()=>import("./Add a demo link to TypeScript code blocks.DOBRZgS-.js"),__vite__mapDeps([9,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Adding users to new teams with Lucia auth and Prisma.md":()=>o(()=>import("./Adding users to new teams with Lucia auth and Prisma.BDKAgZrZ.js"),__vite__mapDeps([10,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Beautifully render markdown code blocks in Svelte.md":()=>o(()=>import("./Beautifully render markdown code blocks in Svelte.mHUdLjzS.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Branded Types.md":()=>o(()=>import("./Branded Types.CL6b9hEC.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Build infrastructure after not having it becomes painful.md":()=>o(()=>import("./Build infrastructure after not having it becomes painful.BNitDpYR.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Classy coding - JavaScript OOP through the ages.md":()=>o(()=>import("./Classy coding - JavaScript OOP through the ages.d2kAFBeU.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Dynamically generate TypeScript Playground links.md":()=>o(()=>import("./Dynamically generate TypeScript Playground links.ydr-BTfi.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Gifts.md":()=>o(()=>import("./Gifts.D3riRslI.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/Gold Mac n Cheese.md":()=>o(()=>import("./Gold Mac n Cheese.wwiG7Xog.js"),__vite__mapDeps([18,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/I use Neovim btw.md":()=>o(()=>import("./I use Neovim btw.BSDQA274.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/I want a smaller phone.md":()=>o(()=>import("./I want a smaller phone.CBtpzzFK.js"),__vite__mapDeps([20,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Identity functions.md":()=>o(()=>import("./Identity functions.BWjbs7CM.js"),__vite__mapDeps([21,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Improve site previews on social media by unfurling webpages.md":()=>o(()=>import("./Improve site previews on social media by unfurling webpages.DYaIAgRS.js"),__vite__mapDeps([22,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Linting and formatting a svelte typescript project.md":()=>o(()=>import("./Linting and formatting a svelte typescript project.HFg0G87O.js"),__vite__mapDeps([23,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Mac tips.md":()=>o(()=>import("./Mac tips.B5E3WvWi.js"),__vite__mapDeps([24,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Make API misuse hard.md":()=>o(()=>import("./Make API misuse hard.DB0lSOHm.js"),__vite__mapDeps([25,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Make example code interactive.md":()=>o(()=>import("./Make example code interactive.CM_Y_3d6.js"),__vite__mapDeps([26,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Money market.md":()=>o(()=>import("./Money market.ygvC6hRu.js"),__vite__mapDeps([27,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Open neovim edgebar with focus set.md":()=>o(()=>import("./Open neovim edgebar with focus set.NAGooXWn.js"),__vite__mapDeps([28,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Pasta Arabica.md":()=>o(()=>import("./Pasta Arabica.BGR1I-89.js"),__vite__mapDeps([29,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/Resolving CORS errors in SvelteKit.md":()=>o(()=>import("./Resolving CORS errors in SvelteKit.DZjzjE4e.js"),__vite__mapDeps([30,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Slugs make links readable.md":()=>o(()=>import("./Slugs make links readable.BGLpFVCP.js"),__vite__mapDeps([31,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Structural types increase data compatibility.md":()=>o(()=>import("./Structural types increase data compatibility.biZ-9IAP.js"),__vite__mapDeps([32,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/Svelte component APIs.md":()=>o(()=>import("./Svelte component APIs.DCZc3A1B.js"),__vite__mapDeps([33,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/The publishing pipeline for allandeutsch.com.md":()=>o(()=>import("./The publishing pipeline for allandeutsch.com.DSi5AzjS.js"),__vite__mapDeps([34,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Theory and practice.md":()=>o(()=>import("./Theory and practice.B6aE3Pap.js"),__vite__mapDeps([35,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Thinking channels.md":()=>o(()=>import("./Thinking channels.D2TVXIf8.js"),__vite__mapDeps([36,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/Total Typescript notes.md":()=>o(()=>import("./Total Typescript notes.DH4Oseug.js"),__vite__mapDeps([37,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/Type branding removes structural type compatibility.md":()=>o(()=>import("./Type branding removes structural type compatibility.BWx-VkUf.js"),__vite__mapDeps([38,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/TypeScript assertion functions increase type safety.md":()=>o(()=>import("./TypeScript assertion functions increase type safety.BP-_AQ3S.js"),__vite__mapDeps([39,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Work-life balance.md":()=>o(()=>import("./Work-life balance.y6nWYxIK.js"),__vite__mapDeps([40,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/ask-dont-tell.md":()=>o(()=>import("./ask-dont-tell.CIcu1i0U.js"),__vite__mapDeps([41,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/avocado-toast.md":()=>o(()=>import("./avocado-toast.BooYnY_w.js"),__vite__mapDeps([42,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/blue-ocean-strategy.md":()=>o(()=>import("./blue-ocean-strategy.BWdcKAiD.js"),__vite__mapDeps([43,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/blue-ocean.md":()=>o(()=>import("./blue-ocean.DxC3NMWm.js"),__vite__mapDeps([44,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/business-model-canvas.md":()=>o(()=>import("./business-model-canvas.oh0IwP8M.js"),__vite__mapDeps([45,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/cafes.md":()=>o(()=>import("./cafes.uQAuyBOp.js"),__vite__mapDeps([46,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/competition-factors.md":()=>o(()=>import("./competition-factors.C6BxxI0H.js"),__vite__mapDeps([47,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/compound-growth-most-impactful-at-end.md":()=>o(()=>import("./compound-growth-most-impactful-at-end.ChVXWD8y.js"),__vite__mapDeps([48,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/compound-growth-system.md":()=>o(()=>import("./compound-growth-system.COiC_Oy3.js"),__vite__mapDeps([49,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/consumer-demand.md":()=>o(()=>import("./consumer-demand.Be62HbrP.js"),__vite__mapDeps([50,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/cozumel-travel-guide.md":()=>o(()=>import("./cozumel-travel-guide.BkUC5Hb-.js"),__vite__mapDeps([51,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/cross-price-elasticity.md":()=>o(()=>import("./cross-price-elasticity.DRc4n9zW.js"),__vite__mapDeps([52,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/customer-attribute-categories.md":()=>o(()=>import("./customer-attribute-categories.Bo_Y20oO.js"),__vite__mapDeps([53,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/customer-relationship.md":()=>o(()=>import("./customer-relationship.CZdp0T_b.js"),__vite__mapDeps([54,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/customer-segment.md":()=>o(()=>import("./customer-segment.CPn0stp7.js"),__vite__mapDeps([55,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 0.md":()=>o(()=>import("./devlog 0.RgmRtHXS.js"),__vite__mapDeps([56,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 1.md":()=>o(()=>import("./devlog 1.DDTDHT6q.js"),__vite__mapDeps([57,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 10.md":()=>o(()=>import("./devlog 10.DS2f_KL8.js"),__vite__mapDeps([58,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 11.md":()=>o(()=>import("./devlog 11.BW1hYBMT.js"),__vite__mapDeps([59,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 12.md":()=>o(()=>import("./devlog 12.CdUHn2un.js"),__vite__mapDeps([60,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 2.md":()=>o(()=>import("./devlog 2.Bi7CcMPv.js"),__vite__mapDeps([61,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 3.md":()=>o(()=>import("./devlog 3.Dotf0NoA.js"),__vite__mapDeps([62,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 4.md":()=>o(()=>import("./devlog 4.BPU-Lm0F.js"),__vite__mapDeps([63,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 5.md":()=>o(()=>import("./devlog 5.DkktZC2V.js"),__vite__mapDeps([64,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 6.md":()=>o(()=>import("./devlog 6.PNSwU6us.js"),__vite__mapDeps([65,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 7.md":()=>o(()=>import("./devlog 7.CGLxAYKP.js"),__vite__mapDeps([66,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 8.md":()=>o(()=>import("./devlog 8.eO5nFico.js"),__vite__mapDeps([67,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 9.md":()=>o(()=>import("./devlog 9.C4MrjIvG.js"),__vite__mapDeps([68,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog index.md":()=>o(()=>import("./devlog index.CSWrnpbr.js"),__vite__mapDeps([69,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/distribution-channel.md":()=>o(()=>import("./distribution-channel.BMsJ0_ts.js"),__vite__mapDeps([70,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/four-actions-framework.md":()=>o(()=>import("./four-actions-framework.ANmRTSWg.js"),__vite__mapDeps([71,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/fundamental-habits.md":()=>o(()=>import("./fundamental-habits.11R1lV-x.js"),__vite__mapDeps([72,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/git-cheatsheet.md":()=>o(()=>import("./git-cheatsheet.DxWxl8y3.js"),__vite__mapDeps([73,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/grapow.md":()=>o(()=>import("./grapow.6ZhevCpR.js"),__vite__mapDeps([74,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/hard-decisions.md":()=>o(()=>import("./hard-decisions.DbduR4ji.js"),__vite__mapDeps([75,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/learning-process.md":()=>o(()=>import("./learning-process.DrjT5K9s.js"),__vite__mapDeps([76,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/marginal-utility.md":()=>o(()=>import("./marginal-utility.DFLjb6WP.js"),__vite__mapDeps([77,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/market-forces.md":()=>o(()=>import("./market-forces.BDqb10W5.js"),__vite__mapDeps([78,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/microeconomics.md":()=>o(()=>import("./microeconomics.BcpR4GD6.js"),__vite__mapDeps([79,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/monetized-content-compound-growth.md":()=>o(()=>import("./monetized-content-compound-growth.Dgqpoaho.js"),__vite__mapDeps([80,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/opportunity-cost.md":()=>o(()=>import("./opportunity-cost.BzOhaR-X.js"),__vite__mapDeps([81,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/pdc-travel-guide.md":()=>o(()=>import("./pdc-travel-guide.9jqm4aHj.js"),__vite__mapDeps([82,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/positioning-statement.md":()=>o(()=>import("./positioning-statement.CJSW2jyH.js"),__vite__mapDeps([83,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/positive-feedback.md":()=>o(()=>import("./positive-feedback.DHQ-U0EN.js"),__vite__mapDeps([84,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/price-elasticity-demand.md":()=>o(()=>import("./price-elasticity-demand.BnOrMkws.js"),__vite__mapDeps([85,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/price-elasticity.md":()=>o(()=>import("./price-elasticity.C2oB6lq5.js"),__vite__mapDeps([86,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/principal-agent-problem.md":()=>o(()=>import("./principal-agent-problem.CzYtaNOb.js"),__vite__mapDeps([87,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/production-cost.md":()=>o(()=>import("./production-cost.CeWgjDIh.js"),__vite__mapDeps([88,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/red-ocean.md":()=>o(()=>import("./red-ocean.CH9bj-G8.js"),__vite__mapDeps([89,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/restaurants.md":()=>o(()=>import("./restaurants.B1Uq-bOl.js"),__vite__mapDeps([90,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/segmentation-targeting-positioning.md":()=>o(()=>import("./segmentation-targeting-positioning.5Cpt97xC.js"),__vite__mapDeps([91,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/single-option-aversion-bias.md":()=>o(()=>import("./single-option-aversion-bias.CmY0pqxW.js"),__vite__mapDeps([92,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/situation-analysis.md":()=>o(()=>import("./situation-analysis.Dd1WRKB3.js"),__vite__mapDeps([93,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/spaced-repetition-workflow.md":()=>o(()=>import("./spaced-repetition-workflow.0MivO-QI.js"),__vite__mapDeps([94,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/strategy-canvas.md":()=>o(()=>import("./strategy-canvas.zTP9rU7X.js"),__vite__mapDeps([95,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/supply-demand.md":()=>o(()=>import("./supply-demand.CvIqHfiO.js"),__vite__mapDeps([96,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/sveltekit-storybook-setup.md":()=>o(()=>import("./sveltekit-storybook-setup.CgnWEul6.js"),__vite__mapDeps([97,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/three-options-consensus.md":()=>o(()=>import("./three-options-consensus.Cgq8kfaR.js"),__vite__mapDeps([98,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/traits-successful-blue-ocean-strategy.md":()=>o(()=>import("./traits-successful-blue-ocean-strategy.CJXl_O2n.js"),__vite__mapDeps([99,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/type-1-2-decisions.md":()=>o(()=>import("./type-1-2-decisions.d3LyCmWh.js"),__vite__mapDeps([100,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/ui-shadows.md":()=>o(()=>import("./ui-shadows.DxQPsGEn.js"),__vite__mapDeps([101,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/use-contrast-direct-attention.md":()=>o(()=>import("./use-contrast-direct-attention.DzdX4TxX.js"),__vite__mapDeps([102,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/uses.md":()=>o(()=>import("./uses.B_CV_03r.js"),__vite__mapDeps([103,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/utility.md":()=>o(()=>import("./utility.Dj2j_1E3.js"),__vite__mapDeps([104,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/value-curve.md":()=>o(()=>import("./value-curve.DQtutUDh.js"),__vite__mapDeps([105,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/value-innovation.md":()=>o(()=>import("./value-innovation.DSizLb8I.js"),__vite__mapDeps([106,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/value-proposition.md":()=>o(()=>import("./value-proposition.D_C-5Dxe.js"),__vite__mapDeps([107,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/vicious-virtuous-cycles.md":()=>o(()=>import("./vicious-virtuous-cycles.DF1LPjiD.js"),__vite__mapDeps([108,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/world-recursive.md":()=>o(()=>import("./world-recursive.D2i5zPin.js"),__vite__mapDeps([109,1,2,3,4,5,6,7,8]),import.meta.url)}),`../../_content/notes/${Oe[r]}.md`,5),t=$t.safeParse(e);return t.success?(zt(t.data),{success:!0,metadata:t.data}):{success:!1,error:`The metadata for post '${r}' isn't valid.
+const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./10 questions to evaluate a startup idea.CbPhcJNk.js","./scheduler.ewBkyc9q.js","./index.DpmaPz1F.js","./spread.CgU5AtxT.js","./MDSveXNoteLayout.Dbh0E4KQ.js","./index.c5t111vt.js","./each.DRjyAD6E.js","./entry.t1HxwxC8.js","../assets/MDSveXNoteLayout.fO7cJVK6.css","./Add a demo link to TypeScript code blocks.CKdDXbYm.js","./Adding users to new teams with Lucia auth and Prisma.dMAvioWp.js","./Beautifully render markdown code blocks in Svelte.DjOORdUi.js","./Branded Types.DGDRa01-.js","./Build infrastructure after not having it becomes painful.CvmUycDI.js","./Classy coding - JavaScript OOP through the ages.DRJiKFc3.js","./Dynamically generate TypeScript Playground links.CwQL_Ke-.js","./Gifts.DybrrHY-.js","./Table.Bswvj4Nz.js","./Gold Mac n Cheese.BMABLiCG.js","./I use Neovim btw.CjeZDwBV.js","./I want a smaller phone.BQKttvvC.js","./Identity functions.Uu9-f9Hk.js","./Improve site previews on social media by unfurling webpages.5o_4F9Og.js","./Linting and formatting a svelte typescript project.-HsE_da6.js","./Mac tips.DjqlvmUH.js","./Make API misuse hard.-SC5Svxk.js","./Make example code interactive.NiPV8GBo.js","./Money market.DfQ005NQ.js","./Open neovim edgebar with focus set.3VtNIF62.js","./Pasta Arabica._6c9ubFf.js","./Resolving CORS errors in SvelteKit.CqAnxeNa.js","./Slugs make links readable.C7WzGtJG.js","./Structural types increase data compatibility._IKf5aKe.js","./Svelte component APIs.DejX3dI8.js","./The publishing pipeline for allandeutsch.com.DMholjN7.js","./Theory and practice.CpVfFcQy.js","./Thinking channels.BMI4sFKK.js","./Total Typescript notes.BweS8kBI.js","./Type branding removes structural type compatibility.D43tJCwu.js","./TypeScript assertion functions increase type safety.CjavNuyl.js","./Work-life balance.BGmgQiCK.js","./ask-dont-tell.DZKTp4cX.js","./avocado-toast.CP721J-i.js","./blue-ocean-strategy.BsCvps7Z.js","./blue-ocean.tTuwPFB3.js","./business-model-canvas.Drxkw09J.js","./cafes.BaOx_4VH.js","./competition-factors.C6NiDm3I.js","./compound-growth-most-impactful-at-end.CWG20CHf.js","./compound-growth-system.D5e_Eplv.js","./consumer-demand.BnFUw_bw.js","./cozumel-travel-guide.B2IbeDlX.js","./cross-price-elasticity.Dshxl55d.js","./customer-attribute-categories.DsbVQlZy.js","./customer-relationship.2fzI5nko.js","./customer-segment.Da6W_6cx.js","./devlog 0.DtmEeDcP.js","./devlog 1.fMQNmNEz.js","./devlog 10.CNCOXTGJ.js","./devlog 11.DvVf0i_g.js","./devlog 12.CMStLuZo.js","./devlog 2.BKSKDBGH.js","./devlog 3.wO6ZNEs8.js","./devlog 4.Cm2cKccM.js","./devlog 5.B0XN90r2.js","./devlog 6.CtU7b2D3.js","./devlog 7.Bl5_B5Ed.js","./devlog 8.B3VRWoZr.js","./devlog 9.D4EYe9QD.js","./devlog index.jZusY4ZH.js","./distribution-channel.Do7vq8Gc.js","./four-actions-framework.0u70XqxX.js","./fundamental-habits.OOxmrT6t.js","./git-cheatsheet.GnMCSRPD.js","./grapow.BQZN6hKk.js","./hard-decisions.ANbJruFI.js","./learning-process.CUhLrR27.js","./marginal-utility.BXpwLRbJ.js","./market-forces.C12FXRqo.js","./microeconomics.CxX-NPNQ.js","./monetized-content-compound-growth.CtN6SDkX.js","./opportunity-cost.DSu28hEz.js","./pdc-travel-guide.B1XyHoUM.js","./positioning-statement.BsO_gQi3.js","./positive-feedback.CMXWM-Xn.js","./price-elasticity-demand.BR2ZVrsp.js","./price-elasticity.bJsQ0sYy.js","./principal-agent-problem.DhPxByfl.js","./production-cost.BN6r7u4X.js","./red-ocean.DKH5MX3e.js","./restaurants.CHJaVI_i.js","./segmentation-targeting-positioning.COlgjanY.js","./single-option-aversion-bias.CjmCdzmR.js","./situation-analysis.26dAvQUu.js","./spaced-repetition-workflow.Dmh8k56L.js","./strategy-canvas.DOm4bq9d.js","./supply-demand.BJPO35q1.js","./sveltekit-storybook-setup.BWCdFII9.js","./three-options-consensus.CS8xLe7Z.js","./traits-successful-blue-ocean-strategy.I336OLpg.js","./type-1-2-decisions.BNquIyUL.js","./ui-shadows.CXuJgu5I.js","./use-contrast-direct-attention.CF8Q8d5-.js","./uses.Br4eZsRB.js","./utility.BtyvVV7k.js","./value-curve.Cm-5hv69.js","./value-innovation.DdYG6mqW.js","./value-proposition.ghHaZ0E-.js","./vicious-virtuous-cycles.D3gZ1g2O.js","./world-recursive.C0pGo7a7.js"])))=>i.map(i=>d[i]);
+import{o as Bt,a as We}from"./entry.t1HxwxC8.js";import{a3 as Ut}from"./scheduler.ewBkyc9q.js";import{_ as o}from"./preload-helper.C1FmrZbK.js";const Wt=!0,qt=Wt;var E;(function(r){r.assertEqual=s=>s;function e(s){}r.assertIs=e;function t(s){throw new Error}r.assertNever=t,r.arrayToEnum=s=>{const i={};for(const a of s)i[a]=a;return i},r.getValidEnumValues=s=>{const i=r.objectKeys(s).filter(d=>typeof s[s[d]]!="number"),a={};for(const d of i)a[d]=s[d];return r.objectValues(a)},r.objectValues=s=>r.objectKeys(s).map(function(i){return s[i]}),r.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{const i=[];for(const a in s)Object.prototype.hasOwnProperty.call(s,a)&&i.push(a);return i},r.find=(s,i)=>{for(const a of s)if(i(a))return a},r.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&isFinite(s)&&Math.floor(s)===s;function n(s,i=" | "){return s.map(a=>typeof a=="string"?`'${a}'`:a).join(i)}r.joinValues=n,r.jsonStringifyReplacer=(s,i)=>typeof i=="bigint"?i.toString():i})(E||(E={}));var Ie;(function(r){r.mergeShapes=(e,t)=>({...e,...t})})(Ie||(Ie={}));const _=E.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),C=r=>{switch(typeof r){case"undefined":return _.undefined;case"string":return _.string;case"number":return isNaN(r)?_.nan:_.number;case"boolean":return _.boolean;case"function":return _.function;case"bigint":return _.bigint;case"symbol":return _.symbol;case"object":return Array.isArray(r)?_.array:r===null?_.null:r.then&&typeof r.then=="function"&&r.catch&&typeof r.catch=="function"?_.promise:typeof Map<"u"&&r instanceof Map?_.map:typeof Set<"u"&&r instanceof Set?_.set:typeof Date<"u"&&r instanceof Date?_.date:_.object;default:return _.unknown}},c=E.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),qe=r=>JSON.stringify(r,null,2).replace(/"([^"]+)":/g,"$1:");class I extends Error{constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}get errors(){return this.issues}format(e){const t=e||function(i){return i.message},n={_errors:[]},s=i=>{for(const a of i.issues)if(a.code==="invalid_union")a.unionErrors.map(s);else if(a.code==="invalid_return_type")s(a.returnTypeError);else if(a.code==="invalid_arguments")s(a.argumentsError);else if(a.path.length===0)n._errors.push(t(a));else{let d=n,u=0;for(;ut.message){const t={},n=[];for(const s of this.issues)s.path.length>0?(t[s.path[0]]=t[s.path[0]]||[],t[s.path[0]].push(e(s))):n.push(e(s));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}I.create=r=>new I(r);const K=(r,e)=>{let t;switch(r.code){case c.invalid_type:r.received===_.undefined?t="Required":t=`Expected ${r.expected}, received ${r.received}`;break;case c.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(r.expected,E.jsonStringifyReplacer)}`;break;case c.unrecognized_keys:t=`Unrecognized key(s) in object: ${E.joinValues(r.keys,", ")}`;break;case c.invalid_union:t="Invalid input";break;case c.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${E.joinValues(r.options)}`;break;case c.invalid_enum_value:t=`Invalid enum value. Expected ${E.joinValues(r.options)}, received '${r.received}'`;break;case c.invalid_arguments:t="Invalid function arguments";break;case c.invalid_return_type:t="Invalid function return type";break;case c.invalid_date:t="Invalid date";break;case c.invalid_string:typeof r.validation=="object"?"includes"in r.validation?(t=`Invalid input: must include "${r.validation.includes}"`,typeof r.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${r.validation.position}`)):"startsWith"in r.validation?t=`Invalid input: must start with "${r.validation.startsWith}"`:"endsWith"in r.validation?t=`Invalid input: must end with "${r.validation.endsWith}"`:E.assertNever(r.validation):r.validation!=="regex"?t=`Invalid ${r.validation}`:t="Invalid";break;case c.too_small:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at least":"more than"} ${r.minimum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at least":"over"} ${r.minimum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(r.minimum))}`:t="Invalid input";break;case c.too_big:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at most":"less than"} ${r.maximum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at most":"under"} ${r.maximum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="bigint"?t=`BigInt must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly":r.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(r.maximum))}`:t="Invalid input";break;case c.custom:t="Invalid input";break;case c.invalid_intersection_types:t="Intersection results could not be merged";break;case c.not_multiple_of:t=`Number must be a multiple of ${r.multipleOf}`;break;case c.not_finite:t="Number must be finite";break;default:t=e.defaultError,E.assertNever(r)}return{message:t}};let Ge=K;function Je(r){Ge=r}function ge(){return Ge}const ye=r=>{const{data:e,path:t,errorMaps:n,issueData:s}=r,i=[...t,...s.path||[]],a={...s,path:i};if(s.message!==void 0)return{...s,path:i,message:s.message};let d="";const u=n.filter(l=>!!l).slice().reverse();for(const l of u)d=l(a,{data:e,defaultError:d}).message;return{...s,path:i,message:d}},Ye=[];function m(r,e){const t=ge(),n=ye({issueData:e,data:r.data,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,t,t===K?void 0:K].filter(s=>!!s)});r.common.issues.push(n)}class k{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,t){const n=[];for(const s of t){if(s.status==="aborted")return v;s.status==="dirty"&&e.dirty(),n.push(s.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,t){const n=[];for(const s of t){const i=await s.key,a=await s.value;n.push({key:i,value:a})}return k.mergeObjectSync(e,n)}static mergeObjectSync(e,t){const n={};for(const s of t){const{key:i,value:a}=s;if(i.status==="aborted"||a.status==="aborted")return v;i.status==="dirty"&&e.dirty(),a.status==="dirty"&&e.dirty(),i.value!=="__proto__"&&(typeof a.value<"u"||s.alwaysSet)&&(n[i.value]=a.value)}return{status:e.value,value:n}}}const v=Object.freeze({status:"aborted"}),J=r=>({status:"dirty",value:r}),w=r=>({status:"valid",value:r}),xe=r=>r.status==="aborted",Re=r=>r.status==="dirty",ee=r=>r.status==="valid",te=r=>typeof Promise<"u"&&r instanceof Promise;function Ae(r,e,t,n){if(typeof e=="function"?r!==e||!n:!e.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e.get(r)}function He(r,e,t,n,s){if(typeof e=="function"?r!==e||!s:!e.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(r,t),t}var p;(function(r){r.errToObj=e=>typeof e=="string"?{message:e}:e||{},r.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(p||(p={}));var he,ve;class L{constructor(e,t,n,s){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=s}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const Ue=(r,e)=>{if(ee(e))return{success:!0,data:e.value};if(!r.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new I(r.common.issues);return this._error=t,this._error}}};function y(r){if(!r)return{};const{errorMap:e,invalid_type_error:t,required_error:n,description:s}=r;if(e&&(t||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:s}:{errorMap:(a,d)=>{var u,l;const{message:f}=r;return a.code==="invalid_enum_value"?{message:f??d.defaultError}:typeof d.data>"u"?{message:(u=f??n)!==null&&u!==void 0?u:d.defaultError}:a.code!=="invalid_type"?{message:d.defaultError}:{message:(l=f??t)!==null&&l!==void 0?l:d.defaultError}},description:s}}class g{constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(e){return C(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:C(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new k,ctx:{common:e.parent.common,data:e.data,parsedType:C(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(te(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){var n;const s={common:{issues:[],async:(n=t==null?void 0:t.async)!==null&&n!==void 0?n:!1,contextualErrorMap:t==null?void 0:t.errorMap},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:C(e)},i=this._parseSync({data:e,path:s.path,parent:s});return Ue(s,i)}async parseAsync(e,t){const n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){const n={common:{issues:[],contextualErrorMap:t==null?void 0:t.errorMap,async:!0},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:C(e)},s=this._parse({data:e,path:n.path,parent:n}),i=await(te(s)?s:Promise.resolve(s));return Ue(n,i)}refine(e,t){const n=s=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(s):t;return this._refinement((s,i)=>{const a=e(s),d=()=>i.addIssue({code:c.custom,...n(s)});return typeof Promise<"u"&&a instanceof Promise?a.then(u=>u?!0:(d(),!1)):a?!0:(d(),!1)})}refinement(e,t){return this._refinement((n,s)=>e(n)?!0:(s.addIssue(typeof t=="function"?t(n,s):t),!1))}_refinement(e){return new x({schema:this,typeName:h.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return P.create(this,this._def)}nullable(){return $.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return A.create(this,this._def)}promise(){return Q.create(this,this._def)}or(e){return ie.create([this,e],this._def)}and(e){return oe.create(this,e,this._def)}transform(e){return new x({...y(this._def),schema:this,typeName:h.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t=typeof e=="function"?e:()=>e;return new le({...y(this._def),innerType:this,defaultValue:t,typeName:h.ZodDefault})}brand(){return new De({typeName:h.ZodBranded,type:this,...y(this._def)})}catch(e){const t=typeof e=="function"?e:()=>e;return new me({...y(this._def),innerType:this,catchValue:t,typeName:h.ZodCatch})}describe(e){const t=this.constructor;return new t({...this._def,description:e})}pipe(e){return pe.create(this,e)}readonly(){return _e.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const Gt=/^c[^\s-]{8,}$/i,Jt=/^[0-9a-z]+$/,Yt=/^[0-9A-HJKMNP-TV-Z]{26}$/,Ht=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Kt=/^[a-z0-9_-]{21}$/i,Xt=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Qt=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Ft="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let Le;const er=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,tr=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,rr=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Ke="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",nr=new RegExp(`^${Ke}$`);function Xe(r){let e="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return r.precision?e=`${e}\\.\\d{${r.precision}}`:r.precision==null&&(e=`${e}(\\.\\d+)?`),e}function sr(r){return new RegExp(`^${Xe(r)}$`)}function je(r){let e=`${Ke}T${Xe(r)}`;const t=[];return t.push(r.local?"Z?":"Z"),r.offset&&t.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${t.join("|")})`,new RegExp(`^${e}$`)}function ir(r,e){return!!((e==="v4"||!e)&&er.test(r)||(e==="v6"||!e)&&tr.test(r))}class R extends g{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==_.string){const i=this._getOrReturnCtx(e);return m(i,{code:c.invalid_type,expected:_.string,received:i.parsedType}),v}const n=new k;let s;for(const i of this._def.checks)if(i.kind==="min")e.data.lengthi.value&&(s=this._getOrReturnCtx(e,s),m(s,{code:c.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),n.dirty());else if(i.kind==="length"){const a=e.data.length>i.value,d=e.data.lengthe.test(s),{validation:t,code:c.invalid_string,...p.errToObj(n)})}_addCheck(e){return new R({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...p.errToObj(e)})}url(e){return this._addCheck({kind:"url",...p.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...p.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...p.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...p.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...p.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...p.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...p.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...p.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...p.errToObj(e)})}datetime(e){var t,n;return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,offset:(t=e==null?void 0:e.offset)!==null&&t!==void 0?t:!1,local:(n=e==null?void 0:e.local)!==null&&n!==void 0?n:!1,...p.errToObj(e==null?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,...p.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...p.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...p.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t==null?void 0:t.position,...p.errToObj(t==null?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...p.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...p.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...p.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...p.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...p.errToObj(t)})}nonempty(e){return this.min(1,p.errToObj(e))}trim(){return new R({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new R({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new R({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get minLength(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value{var e;return new R({checks:[],typeName:h.ZodString,coerce:(e=r==null?void 0:r.coerce)!==null&&e!==void 0?e:!1,...y(r)})};function or(r,e){const t=(r.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,s=t>n?t:n,i=parseInt(r.toFixed(s).replace(".","")),a=parseInt(e.toFixed(s).replace(".",""));return i%a/Math.pow(10,s)}class N extends g{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==_.number){const i=this._getOrReturnCtx(e);return m(i,{code:c.invalid_type,expected:_.number,received:i.parsedType}),v}let n;const s=new k;for(const i of this._def.checks)i.kind==="int"?E.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),m(n,{code:c.invalid_type,expected:"integer",received:"float",message:i.message}),s.dirty()):i.kind==="min"?(i.inclusive?e.datai.value:e.data>=i.value)&&(n=this._getOrReturnCtx(e,n),m(n,{code:c.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),s.dirty()):i.kind==="multipleOf"?or(e.data,i.value)!==0&&(n=this._getOrReturnCtx(e,n),m(n,{code:c.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):i.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),m(n,{code:c.not_finite,message:i.message}),s.dirty()):E.assertNever(i);return{status:s.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,p.toString(t))}gt(e,t){return this.setLimit("min",e,!1,p.toString(t))}lte(e,t){return this.setLimit("max",e,!0,p.toString(t))}lt(e,t){return this.setLimit("max",e,!1,p.toString(t))}setLimit(e,t,n,s){return new N({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:p.toString(s)}]})}_addCheck(e){return new N({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:p.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:p.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:p.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:p.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:p.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:p.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:p.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:p.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:p.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.valuee.kind==="int"||e.kind==="multipleOf"&&E.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(t===null||n.value>t)&&(t=n.value):n.kind==="max"&&(e===null||n.valuenew N({checks:[],typeName:h.ZodNumber,coerce:(r==null?void 0:r.coerce)||!1,...y(r)});class j extends g{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce&&(e.data=BigInt(e.data)),this._getType(e)!==_.bigint){const i=this._getOrReturnCtx(e);return m(i,{code:c.invalid_type,expected:_.bigint,received:i.parsedType}),v}let n;const s=new k;for(const i of this._def.checks)i.kind==="min"?(i.inclusive?e.datai.value:e.data>=i.value)&&(n=this._getOrReturnCtx(e,n),m(n,{code:c.too_big,type:"bigint",maximum:i.value,inclusive:i.inclusive,message:i.message}),s.dirty()):i.kind==="multipleOf"?e.data%i.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),m(n,{code:c.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):E.assertNever(i);return{status:s.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,p.toString(t))}gt(e,t){return this.setLimit("min",e,!1,p.toString(t))}lte(e,t){return this.setLimit("max",e,!0,p.toString(t))}lt(e,t){return this.setLimit("max",e,!1,p.toString(t))}setLimit(e,t,n,s){return new j({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:p.toString(s)}]})}_addCheck(e){return new j({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:p.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:p.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:p.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:p.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:p.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value{var e;return new j({checks:[],typeName:h.ZodBigInt,coerce:(e=r==null?void 0:r.coerce)!==null&&e!==void 0?e:!1,...y(r)})};class re extends g{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==_.boolean){const n=this._getOrReturnCtx(e);return m(n,{code:c.invalid_type,expected:_.boolean,received:n.parsedType}),v}return w(e.data)}}re.create=r=>new re({typeName:h.ZodBoolean,coerce:(r==null?void 0:r.coerce)||!1,...y(r)});class U extends g{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==_.date){const i=this._getOrReturnCtx(e);return m(i,{code:c.invalid_type,expected:_.date,received:i.parsedType}),v}if(isNaN(e.data.getTime())){const i=this._getOrReturnCtx(e);return m(i,{code:c.invalid_date}),v}const n=new k;let s;for(const i of this._def.checks)i.kind==="min"?e.data.getTime()i.value&&(s=this._getOrReturnCtx(e,s),m(s,{code:c.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),n.dirty()):E.assertNever(i);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new U({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:p.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:p.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.valuenew U({checks:[],coerce:(r==null?void 0:r.coerce)||!1,typeName:h.ZodDate,...y(r)});class Ee extends g{_parse(e){if(this._getType(e)!==_.symbol){const n=this._getOrReturnCtx(e);return m(n,{code:c.invalid_type,expected:_.symbol,received:n.parsedType}),v}return w(e.data)}}Ee.create=r=>new Ee({typeName:h.ZodSymbol,...y(r)});class ne extends g{_parse(e){if(this._getType(e)!==_.undefined){const n=this._getOrReturnCtx(e);return m(n,{code:c.invalid_type,expected:_.undefined,received:n.parsedType}),v}return w(e.data)}}ne.create=r=>new ne({typeName:h.ZodUndefined,...y(r)});class se extends g{_parse(e){if(this._getType(e)!==_.null){const n=this._getOrReturnCtx(e);return m(n,{code:c.invalid_type,expected:_.null,received:n.parsedType}),v}return w(e.data)}}se.create=r=>new se({typeName:h.ZodNull,...y(r)});class X extends g{constructor(){super(...arguments),this._any=!0}_parse(e){return w(e.data)}}X.create=r=>new X({typeName:h.ZodAny,...y(r)});class B extends g{constructor(){super(...arguments),this._unknown=!0}_parse(e){return w(e.data)}}B.create=r=>new B({typeName:h.ZodUnknown,...y(r)});class S extends g{_parse(e){const t=this._getOrReturnCtx(e);return m(t,{code:c.invalid_type,expected:_.never,received:t.parsedType}),v}}S.create=r=>new S({typeName:h.ZodNever,...y(r)});class Te extends g{_parse(e){if(this._getType(e)!==_.undefined){const n=this._getOrReturnCtx(e);return m(n,{code:c.invalid_type,expected:_.void,received:n.parsedType}),v}return w(e.data)}}Te.create=r=>new Te({typeName:h.ZodVoid,...y(r)});class A extends g{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),s=this._def;if(t.parsedType!==_.array)return m(t,{code:c.invalid_type,expected:_.array,received:t.parsedType}),v;if(s.exactLength!==null){const a=t.data.length>s.exactLength.value,d=t.data.lengths.maxLength.value&&(m(t,{code:c.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((a,d)=>s.type._parseAsync(new L(t,a,t.path,d)))).then(a=>k.mergeArray(n,a));const i=[...t.data].map((a,d)=>s.type._parseSync(new L(t,a,t.path,d)));return k.mergeArray(n,i)}get element(){return this._def.type}min(e,t){return new A({...this._def,minLength:{value:e,message:p.toString(t)}})}max(e,t){return new A({...this._def,maxLength:{value:e,message:p.toString(t)}})}length(e,t){return new A({...this._def,exactLength:{value:e,message:p.toString(t)}})}nonempty(e){return this.min(1,e)}}A.create=(r,e)=>new A({type:r,minLength:null,maxLength:null,exactLength:null,typeName:h.ZodArray,...y(e)});function F(r){if(r instanceof T){const e={};for(const t in r.shape){const n=r.shape[t];e[t]=P.create(F(n))}return new T({...r._def,shape:()=>e})}else return r instanceof A?new A({...r._def,type:F(r.element)}):r instanceof P?P.create(F(r.unwrap())):r instanceof $?$.create(F(r.unwrap())):r instanceof D?D.create(r.items.map(e=>F(e))):r}class T extends g{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),t=E.objectKeys(e);return this._cached={shape:e,keys:t}}_parse(e){if(this._getType(e)!==_.object){const l=this._getOrReturnCtx(e);return m(l,{code:c.invalid_type,expected:_.object,received:l.parsedType}),v}const{status:n,ctx:s}=this._processInputParams(e),{shape:i,keys:a}=this._getCached(),d=[];if(!(this._def.catchall instanceof S&&this._def.unknownKeys==="strip"))for(const l in s.data)a.includes(l)||d.push(l);const u=[];for(const l of a){const f=i[l],O=s.data[l];u.push({key:{status:"valid",value:l},value:f._parse(new L(s,O,s.path,l)),alwaysSet:l in s.data})}if(this._def.catchall instanceof S){const l=this._def.unknownKeys;if(l==="passthrough")for(const f of d)u.push({key:{status:"valid",value:f},value:{status:"valid",value:s.data[f]}});else if(l==="strict")d.length>0&&(m(s,{code:c.unrecognized_keys,keys:d}),n.dirty());else if(l!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const l=this._def.catchall;for(const f of d){const O=s.data[f];u.push({key:{status:"valid",value:f},value:l._parse(new L(s,O,s.path,f)),alwaysSet:f in s.data})}}return s.common.async?Promise.resolve().then(async()=>{const l=[];for(const f of u){const O=await f.key,q=await f.value;l.push({key:O,value:q,alwaysSet:f.alwaysSet})}return l}).then(l=>k.mergeObjectSync(n,l)):k.mergeObjectSync(n,u)}get shape(){return this._def.shape()}strict(e){return p.errToObj,new T({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,n)=>{var s,i,a,d;const u=(a=(i=(s=this._def).errorMap)===null||i===void 0?void 0:i.call(s,t,n).message)!==null&&a!==void 0?a:n.defaultError;return t.code==="unrecognized_keys"?{message:(d=p.errToObj(e).message)!==null&&d!==void 0?d:u}:{message:u}}}:{}})}strip(){return new T({...this._def,unknownKeys:"strip"})}passthrough(){return new T({...this._def,unknownKeys:"passthrough"})}extend(e){return new T({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new T({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:h.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new T({...this._def,catchall:e})}pick(e){const t={};return E.objectKeys(e).forEach(n=>{e[n]&&this.shape[n]&&(t[n]=this.shape[n])}),new T({...this._def,shape:()=>t})}omit(e){const t={};return E.objectKeys(this.shape).forEach(n=>{e[n]||(t[n]=this.shape[n])}),new T({...this._def,shape:()=>t})}deepPartial(){return F(this)}partial(e){const t={};return E.objectKeys(this.shape).forEach(n=>{const s=this.shape[n];e&&!e[n]?t[n]=s:t[n]=s.optional()}),new T({...this._def,shape:()=>t})}required(e){const t={};return E.objectKeys(this.shape).forEach(n=>{if(e&&!e[n])t[n]=this.shape[n];else{let i=this.shape[n];for(;i instanceof P;)i=i._def.innerType;t[n]=i}}),new T({...this._def,shape:()=>t})}keyof(){return Qe(E.objectKeys(this.shape))}}T.create=(r,e)=>new T({shape:()=>r,unknownKeys:"strip",catchall:S.create(),typeName:h.ZodObject,...y(e)});T.strictCreate=(r,e)=>new T({shape:()=>r,unknownKeys:"strict",catchall:S.create(),typeName:h.ZodObject,...y(e)});T.lazycreate=(r,e)=>new T({shape:r,unknownKeys:"strip",catchall:S.create(),typeName:h.ZodObject,...y(e)});class ie extends g{_parse(e){const{ctx:t}=this._processInputParams(e),n=this._def.options;function s(i){for(const d of i)if(d.result.status==="valid")return d.result;for(const d of i)if(d.result.status==="dirty")return t.common.issues.push(...d.ctx.common.issues),d.result;const a=i.map(d=>new I(d.ctx.common.issues));return m(t,{code:c.invalid_union,unionErrors:a}),v}if(t.common.async)return Promise.all(n.map(async i=>{const a={...t,common:{...t.common,issues:[]},parent:null};return{result:await i._parseAsync({data:t.data,path:t.path,parent:a}),ctx:a}})).then(s);{let i;const a=[];for(const u of n){const l={...t,common:{...t.common,issues:[]},parent:null},f=u._parseSync({data:t.data,path:t.path,parent:l});if(f.status==="valid")return f;f.status==="dirty"&&!i&&(i={result:f,ctx:l}),l.common.issues.length&&a.push(l.common.issues)}if(i)return t.common.issues.push(...i.ctx.common.issues),i.result;const d=a.map(u=>new I(u));return m(t,{code:c.invalid_union,unionErrors:d}),v}}get options(){return this._def.options}}ie.create=(r,e)=>new ie({options:r,typeName:h.ZodUnion,...y(e)});const Z=r=>r instanceof de?Z(r.schema):r instanceof x?Z(r.innerType()):r instanceof ce?[r.value]:r instanceof M?r.options:r instanceof ue?E.objectValues(r.enum):r instanceof le?Z(r._def.innerType):r instanceof ne?[void 0]:r instanceof se?[null]:r instanceof P?[void 0,...Z(r.unwrap())]:r instanceof $?[null,...Z(r.unwrap())]:r instanceof De||r instanceof _e?Z(r.unwrap()):r instanceof me?Z(r._def.innerType):[];class we extends g{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==_.object)return m(t,{code:c.invalid_type,expected:_.object,received:t.parsedType}),v;const n=this.discriminator,s=t.data[n],i=this.optionsMap.get(s);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(m(t,{code:c.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),v)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,n){const s=new Map;for(const i of t){const a=Z(i.shape[e]);if(!a.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(const d of a){if(s.has(d))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(d)}`);s.set(d,i)}}return new we({typeName:h.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:s,...y(n)})}}function Ze(r,e){const t=C(r),n=C(e);if(r===e)return{valid:!0,data:r};if(t===_.object&&n===_.object){const s=E.objectKeys(e),i=E.objectKeys(r).filter(d=>s.indexOf(d)!==-1),a={...r,...e};for(const d of i){const u=Ze(r[d],e[d]);if(!u.valid)return{valid:!1};a[d]=u.data}return{valid:!0,data:a}}else if(t===_.array&&n===_.array){if(r.length!==e.length)return{valid:!1};const s=[];for(let i=0;i{if(xe(i)||xe(a))return v;const d=Ze(i.value,a.value);return d.valid?((Re(i)||Re(a))&&t.dirty(),{status:t.value,value:d.data}):(m(n,{code:c.invalid_intersection_types}),v)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([i,a])=>s(i,a)):s(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}oe.create=(r,e,t)=>new oe({left:r,right:e,typeName:h.ZodIntersection,...y(t)});class D extends g{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==_.array)return m(n,{code:c.invalid_type,expected:_.array,received:n.parsedType}),v;if(n.data.lengththis._def.items.length&&(m(n,{code:c.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const i=[...n.data].map((a,d)=>{const u=this._def.items[d]||this._def.rest;return u?u._parse(new L(n,a,n.path,d)):null}).filter(a=>!!a);return n.common.async?Promise.all(i).then(a=>k.mergeArray(t,a)):k.mergeArray(t,i)}get items(){return this._def.items}rest(e){return new D({...this._def,rest:e})}}D.create=(r,e)=>{if(!Array.isArray(r))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new D({items:r,typeName:h.ZodTuple,rest:null,...y(e)})};class ae extends g{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==_.object)return m(n,{code:c.invalid_type,expected:_.object,received:n.parsedType}),v;const s=[],i=this._def.keyType,a=this._def.valueType;for(const d in n.data)s.push({key:i._parse(new L(n,d,n.path,d)),value:a._parse(new L(n,n.data[d],n.path,d)),alwaysSet:d in n.data});return n.common.async?k.mergeObjectAsync(t,s):k.mergeObjectSync(t,s)}get element(){return this._def.valueType}static create(e,t,n){return t instanceof g?new ae({keyType:e,valueType:t,typeName:h.ZodRecord,...y(n)}):new ae({keyType:R.create(),valueType:e,typeName:h.ZodRecord,...y(t)})}}class be extends g{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==_.map)return m(n,{code:c.invalid_type,expected:_.map,received:n.parsedType}),v;const s=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([d,u],l)=>({key:s._parse(new L(n,d,n.path,[l,"key"])),value:i._parse(new L(n,u,n.path,[l,"value"]))}));if(n.common.async){const d=new Map;return Promise.resolve().then(async()=>{for(const u of a){const l=await u.key,f=await u.value;if(l.status==="aborted"||f.status==="aborted")return v;(l.status==="dirty"||f.status==="dirty")&&t.dirty(),d.set(l.value,f.value)}return{status:t.value,value:d}})}else{const d=new Map;for(const u of a){const l=u.key,f=u.value;if(l.status==="aborted"||f.status==="aborted")return v;(l.status==="dirty"||f.status==="dirty")&&t.dirty(),d.set(l.value,f.value)}return{status:t.value,value:d}}}}be.create=(r,e,t)=>new be({valueType:e,keyType:r,typeName:h.ZodMap,...y(t)});class W extends g{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==_.set)return m(n,{code:c.invalid_type,expected:_.set,received:n.parsedType}),v;const s=this._def;s.minSize!==null&&n.data.sizes.maxSize.value&&(m(n,{code:c.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),t.dirty());const i=this._def.valueType;function a(u){const l=new Set;for(const f of u){if(f.status==="aborted")return v;f.status==="dirty"&&t.dirty(),l.add(f.value)}return{status:t.value,value:l}}const d=[...n.data.values()].map((u,l)=>i._parse(new L(n,u,n.path,l)));return n.common.async?Promise.all(d).then(u=>a(u)):a(d)}min(e,t){return new W({...this._def,minSize:{value:e,message:p.toString(t)}})}max(e,t){return new W({...this._def,maxSize:{value:e,message:p.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}W.create=(r,e)=>new W({valueType:r,minSize:null,maxSize:null,typeName:h.ZodSet,...y(e)});class Y extends g{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==_.function)return m(t,{code:c.invalid_type,expected:_.function,received:t.parsedType}),v;function n(d,u){return ye({data:d,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,ge(),K].filter(l=>!!l),issueData:{code:c.invalid_arguments,argumentsError:u}})}function s(d,u){return ye({data:d,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,ge(),K].filter(l=>!!l),issueData:{code:c.invalid_return_type,returnTypeError:u}})}const i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof Q){const d=this;return w(async function(...u){const l=new I([]),f=await d._def.args.parseAsync(u,i).catch(V=>{throw l.addIssue(n(u,V)),l}),O=await Reflect.apply(a,this,f);return await d._def.returns._def.type.parseAsync(O,i).catch(V=>{throw l.addIssue(s(O,V)),l})})}else{const d=this;return w(function(...u){const l=d._def.args.safeParse(u,i);if(!l.success)throw new I([n(u,l.error)]);const f=Reflect.apply(a,this,l.data),O=d._def.returns.safeParse(f,i);if(!O.success)throw new I([s(f,O.error)]);return O.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new Y({...this._def,args:D.create(e).rest(B.create())})}returns(e){return new Y({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,n){return new Y({args:e||D.create([]).rest(B.create()),returns:t||B.create(),typeName:h.ZodFunction,...y(n)})}}class de extends g{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}de.create=(r,e)=>new de({getter:r,typeName:h.ZodLazy,...y(e)});class ce extends g{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return m(t,{received:t.data,code:c.invalid_literal,expected:this._def.value}),v}return{status:"valid",value:e.data}}get value(){return this._def.value}}ce.create=(r,e)=>new ce({value:r,typeName:h.ZodLiteral,...y(e)});function Qe(r,e){return new M({values:r,typeName:h.ZodEnum,...y(e)})}class M extends g{constructor(){super(...arguments),he.set(this,void 0)}_parse(e){if(typeof e.data!="string"){const t=this._getOrReturnCtx(e),n=this._def.values;return m(t,{expected:E.joinValues(n),received:t.parsedType,code:c.invalid_type}),v}if(Ae(this,he)||He(this,he,new Set(this._def.values)),!Ae(this,he).has(e.data)){const t=this._getOrReturnCtx(e),n=this._def.values;return m(t,{received:t.data,code:c.invalid_enum_value,options:n}),v}return w(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return M.create(e,{...this._def,...t})}exclude(e,t=this._def){return M.create(this.options.filter(n=>!e.includes(n)),{...this._def,...t})}}he=new WeakMap;M.create=Qe;class ue extends g{constructor(){super(...arguments),ve.set(this,void 0)}_parse(e){const t=E.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==_.string&&n.parsedType!==_.number){const s=E.objectValues(t);return m(n,{expected:E.joinValues(s),received:n.parsedType,code:c.invalid_type}),v}if(Ae(this,ve)||He(this,ve,new Set(E.getValidEnumValues(this._def.values))),!Ae(this,ve).has(e.data)){const s=E.objectValues(t);return m(n,{received:n.data,code:c.invalid_enum_value,options:s}),v}return w(e.data)}get enum(){return this._def.values}}ve=new WeakMap;ue.create=(r,e)=>new ue({values:r,typeName:h.ZodNativeEnum,...y(e)});class Q extends g{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==_.promise&&t.common.async===!1)return m(t,{code:c.invalid_type,expected:_.promise,received:t.parsedType}),v;const n=t.parsedType===_.promise?t.data:Promise.resolve(t.data);return w(n.then(s=>this._def.type.parseAsync(s,{path:t.path,errorMap:t.common.contextualErrorMap})))}}Q.create=(r,e)=>new Q({type:r,typeName:h.ZodPromise,...y(e)});class x extends g{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===h.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:n}=this._processInputParams(e),s=this._def.effect||null,i={addIssue:a=>{m(n,a),a.fatal?t.abort():t.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),s.type==="preprocess"){const a=s.transform(n.data,i);if(n.common.async)return Promise.resolve(a).then(async d=>{if(t.value==="aborted")return v;const u=await this._def.schema._parseAsync({data:d,path:n.path,parent:n});return u.status==="aborted"?v:u.status==="dirty"||t.value==="dirty"?J(u.value):u});{if(t.value==="aborted")return v;const d=this._def.schema._parseSync({data:a,path:n.path,parent:n});return d.status==="aborted"?v:d.status==="dirty"||t.value==="dirty"?J(d.value):d}}if(s.type==="refinement"){const a=d=>{const u=s.refinement(d,i);if(n.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return d};if(n.common.async===!1){const d=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return d.status==="aborted"?v:(d.status==="dirty"&&t.dirty(),a(d.value),{status:t.value,value:d.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(d=>d.status==="aborted"?v:(d.status==="dirty"&&t.dirty(),a(d.value).then(()=>({status:t.value,value:d.value}))))}if(s.type==="transform")if(n.common.async===!1){const a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!ee(a))return a;const d=s.transform(a.value,i);if(d instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:d}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>ee(a)?Promise.resolve(s.transform(a.value,i)).then(d=>({status:t.value,value:d})):a);E.assertNever(s)}}x.create=(r,e,t)=>new x({schema:r,typeName:h.ZodEffects,effect:e,...y(t)});x.createWithPreprocess=(r,e,t)=>new x({schema:e,effect:{type:"preprocess",transform:r},typeName:h.ZodEffects,...y(t)});class P extends g{_parse(e){return this._getType(e)===_.undefined?w(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}P.create=(r,e)=>new P({innerType:r,typeName:h.ZodOptional,...y(e)});class $ extends g{_parse(e){return this._getType(e)===_.null?w(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}$.create=(r,e)=>new $({innerType:r,typeName:h.ZodNullable,...y(e)});class le extends g{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===_.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}le.create=(r,e)=>new le({innerType:r,typeName:h.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...y(e)});class me extends g{_parse(e){const{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},s=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return te(s)?s.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new I(n.common.issues)},input:n.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new I(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}me.create=(r,e)=>new me({innerType:r,typeName:h.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...y(e)});class ke extends g{_parse(e){if(this._getType(e)!==_.nan){const n=this._getOrReturnCtx(e);return m(n,{code:c.invalid_type,expected:_.nan,received:n.parsedType}),v}return{status:"valid",value:e.data}}}ke.create=r=>new ke({typeName:h.ZodNaN,...y(r)});const Fe=Symbol("zod_brand");class De extends g{_parse(e){const{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}}class pe extends g{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{const i=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?v:i.status==="dirty"?(t.dirty(),J(i.value)):this._def.out._parseAsync({data:i.value,path:n.path,parent:n})})();{const s=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?v:s.status==="dirty"?(t.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:n.path,parent:n})}}static create(e,t){return new pe({in:e,out:t,typeName:h.ZodPipeline})}}class _e extends g{_parse(e){const t=this._def.innerType._parse(e),n=s=>(ee(s)&&(s.value=Object.freeze(s.value)),s);return te(t)?t.then(s=>n(s)):n(t)}unwrap(){return this._def.innerType}}_e.create=(r,e)=>new _e({innerType:r,typeName:h.ZodReadonly,...y(e)});function Me(r,e={},t){return r?X.create().superRefine((n,s)=>{var i,a;if(!r(n)){const d=typeof e=="function"?e(n):typeof e=="string"?{message:e}:e,u=(a=(i=d.fatal)!==null&&i!==void 0?i:t)!==null&&a!==void 0?a:!0,l=typeof d=="string"?{message:d}:d;s.addIssue({code:"custom",...l,fatal:u})}}):X.create()}const et={object:T.lazycreate};var h;(function(r){r.ZodString="ZodString",r.ZodNumber="ZodNumber",r.ZodNaN="ZodNaN",r.ZodBigInt="ZodBigInt",r.ZodBoolean="ZodBoolean",r.ZodDate="ZodDate",r.ZodSymbol="ZodSymbol",r.ZodUndefined="ZodUndefined",r.ZodNull="ZodNull",r.ZodAny="ZodAny",r.ZodUnknown="ZodUnknown",r.ZodNever="ZodNever",r.ZodVoid="ZodVoid",r.ZodArray="ZodArray",r.ZodObject="ZodObject",r.ZodUnion="ZodUnion",r.ZodDiscriminatedUnion="ZodDiscriminatedUnion",r.ZodIntersection="ZodIntersection",r.ZodTuple="ZodTuple",r.ZodRecord="ZodRecord",r.ZodMap="ZodMap",r.ZodSet="ZodSet",r.ZodFunction="ZodFunction",r.ZodLazy="ZodLazy",r.ZodLiteral="ZodLiteral",r.ZodEnum="ZodEnum",r.ZodEffects="ZodEffects",r.ZodNativeEnum="ZodNativeEnum",r.ZodOptional="ZodOptional",r.ZodNullable="ZodNullable",r.ZodDefault="ZodDefault",r.ZodCatch="ZodCatch",r.ZodPromise="ZodPromise",r.ZodBranded="ZodBranded",r.ZodPipeline="ZodPipeline",r.ZodReadonly="ZodReadonly"})(h||(h={}));const tt=(r,e={message:`Input not instance of ${r.name}`})=>Me(t=>t instanceof r,e),$e=R.create,ze=N.create,rt=ke.create,nt=j.create,Be=re.create,st=U.create,it=Ee.create,ot=ne.create,at=se.create,dt=X.create,ct=B.create,ut=S.create,lt=Te.create,mt=A.create,_t=T.create,pt=T.strictCreate,ft=ie.create,ht=we.create,vt=oe.create,gt=D.create,yt=ae.create,Et=be.create,Tt=W.create,bt=Y.create,kt=de.create,Ot=ce.create,wt=M.create,It=ue.create,xt=Q.create,Pe=x.create,Rt=P.create,At=$.create,Pt=x.createWithPreprocess,Dt=pe.create,Vt=()=>$e().optional(),Lt=()=>ze().optional(),St=()=>Be().optional(),Zt={string:r=>R.create({...r,coerce:!0}),number:r=>N.create({...r,coerce:!0}),boolean:r=>re.create({...r,coerce:!0}),bigint:r=>j.create({...r,coerce:!0}),date:r=>U.create({...r,coerce:!0})},Ct=v;var b=Object.freeze({__proto__:null,defaultErrorMap:K,setErrorMap:Je,getErrorMap:ge,makeIssue:ye,EMPTY_PATH:Ye,addIssueToContext:m,ParseStatus:k,INVALID:v,DIRTY:J,OK:w,isAborted:xe,isDirty:Re,isValid:ee,isAsync:te,get util(){return E},get objectUtil(){return Ie},ZodParsedType:_,getParsedType:C,ZodType:g,datetimeRegex:je,ZodString:R,ZodNumber:N,ZodBigInt:j,ZodBoolean:re,ZodDate:U,ZodSymbol:Ee,ZodUndefined:ne,ZodNull:se,ZodAny:X,ZodUnknown:B,ZodNever:S,ZodVoid:Te,ZodArray:A,ZodObject:T,ZodUnion:ie,ZodDiscriminatedUnion:we,ZodIntersection:oe,ZodTuple:D,ZodRecord:ae,ZodMap:be,ZodSet:W,ZodFunction:Y,ZodLazy:de,ZodLiteral:ce,ZodEnum:M,ZodNativeEnum:ue,ZodPromise:Q,ZodEffects:x,ZodTransformer:x,ZodOptional:P,ZodNullable:$,ZodDefault:le,ZodCatch:me,ZodNaN:ke,BRAND:Fe,ZodBranded:De,ZodPipeline:pe,ZodReadonly:_e,custom:Me,Schema:g,ZodSchema:g,late:et,get ZodFirstPartyTypeKind(){return h},coerce:Zt,any:dt,array:mt,bigint:nt,boolean:Be,date:st,discriminatedUnion:ht,effect:Pe,enum:wt,function:bt,instanceof:tt,intersection:vt,lazy:kt,literal:Ot,map:Et,nan:rt,nativeEnum:It,never:ut,null:at,nullable:At,number:ze,object:_t,oboolean:St,onumber:Lt,optional:Rt,ostring:Vt,pipeline:Dt,preprocess:Pt,promise:xt,record:yt,set:Tt,strictObject:pt,string:$e,symbol:it,transformer:Pe,tuple:gt,undefined:ot,union:ft,unknown:ct,void:lt,NEVER:Ct,ZodIssueCode:c,quotelessJson:qe,ZodError:I});const gr=Object.freeze(Object.defineProperty({__proto__:null,BRAND:Fe,DIRTY:J,EMPTY_PATH:Ye,INVALID:v,NEVER:Ct,OK:w,ParseStatus:k,Schema:g,ZodAny:X,ZodArray:A,ZodBigInt:j,ZodBoolean:re,ZodBranded:De,ZodCatch:me,ZodDate:U,ZodDefault:le,ZodDiscriminatedUnion:we,ZodEffects:x,ZodEnum:M,ZodError:I,get ZodFirstPartyTypeKind(){return h},ZodFunction:Y,ZodIntersection:oe,ZodIssueCode:c,ZodLazy:de,ZodLiteral:ce,ZodMap:be,ZodNaN:ke,ZodNativeEnum:ue,ZodNever:S,ZodNull:se,ZodNullable:$,ZodNumber:N,ZodObject:T,ZodOptional:P,ZodParsedType:_,ZodPipeline:pe,ZodPromise:Q,ZodReadonly:_e,ZodRecord:ae,ZodSchema:g,ZodSet:W,ZodString:R,ZodSymbol:Ee,ZodTransformer:x,ZodTuple:D,ZodType:g,ZodUndefined:ne,ZodUnion:ie,ZodUnknown:B,ZodVoid:Te,addIssueToContext:m,any:dt,array:mt,bigint:nt,boolean:Be,coerce:Zt,custom:Me,date:st,datetimeRegex:je,default:b,defaultErrorMap:K,discriminatedUnion:ht,effect:Pe,enum:wt,function:bt,getErrorMap:ge,getParsedType:C,instanceof:tt,intersection:vt,isAborted:xe,isAsync:te,isDirty:Re,isValid:ee,late:et,lazy:kt,literal:Ot,makeIssue:ye,map:Et,nan:rt,nativeEnum:It,never:ut,null:at,nullable:At,number:ze,object:_t,get objectUtil(){return Ie},oboolean:St,onumber:Lt,optional:Rt,ostring:Vt,pipeline:Dt,preprocess:Pt,promise:xt,quotelessJson:qe,record:yt,set:Tt,setErrorMap:Je,strictObject:pt,string:$e,symbol:it,transformer:Pe,tuple:gt,undefined:ot,union:ft,unknown:ct,get util(){return E},void:lt,z:b},Symbol.toStringTag,{value:"Module"}));class Nt extends Set{}const H={};let Se=0,Ce=!1;const Ne=new Set;function G(r,e){const t=H[r];t&&t.forEach(n=>{try{n.listener(e)}catch(s){console.error(`Error in callback for event "${r}": ${s}`)}n.auto_clean&&t.delete(n)})}function jt(r,e,t=!0){function n(){let s=H[r];s||(H[r]=new Nt,s=H[r]);for(const i of(s==null?void 0:s.values())??[])if(i.listener===e){s==null||s.delete(i);break}}if(!t)n();else try{We(()=>{n()})}catch{console.warn("I tried to wrap the function within afterNavigate and failed...are you calling this inside afterNavigate?"),n()}}function z(r,e,{registerDuringTransition:t=!1,autoWrap:n=!0,autoClean:s=!0}={}){const i=(d=n)=>jt(r,e,d);function a(){function d(){let u=H[r];u||(H[r]=new Nt,u=H[r]),u==null||u.add({listener:e,auto_clean:s})}if(Ce&&!t)return Ne.add(()=>{d()}),i;d()}if(!n)return a(),i;try{We(()=>{a()})}catch{console.warn("I tried to wrap the function within afterNavigate and failed...are you calling this inside afterNavigate?"),a()}return i}function ar(r,e=!0){let t;const n=z("transition-finished",()=>{t&&t.length>0&&document.documentElement.classList.remove(...t)},{registerDuringTransition:!1,autoWrap:e});z("before-start-view-transition",s=>{t=Array.isArray(r)?r:r(s),t?document.documentElement.classList.add(...t):n(!0)},{registerDuringTransition:!1,autoWrap:e})}function dr(r,e){if(typeof e=="string"){r.style.setProperty("view-transition-name",e);return}function t(s){let i;const a=[];a.push(z("after-navigation-complete",l=>{const{top:f}=r.getBoundingClientRect(),O=f{r.style.setProperty("view-transition-name",null)},{registerDuringTransition:!0,autoWrap:!1,autoClean:!1}))}},{registerDuringTransition:!0,autoWrap:!1,autoClean:!1}));const d=z("before-start-view-transition",l=>{let f=!0;const{top:O}=r.getBoundingClientRect(),q=O{r.style.setProperty("view-transition-name",null)},{autoWrap:!1,registerDuringTransition:!0,autoClean:!1})),s.classes&&(i=Array.isArray(s.classes)?s.classes:s.classes(V)),i?document.documentElement.classList.add(...i):u==null||u()}},{registerDuringTransition:!1,autoWrap:!1,autoClean:!1});a.push(d);let u;return u=z("transition-finished",()=>{i&&i.length>0&&document.documentElement.classList.remove(...i)},{registerDuringTransition:!1,autoWrap:!1,autoClean:!1}),a.push(u),()=>{a.forEach(l=>{l(!1)})}}let n=t(e);return{update(s){if(n==null||n(),n=void 0,typeof s=="string"){r.style.setProperty("view-transition-name",s);return}n=t(s)},destroy(){n==null||n()}}}function yr(){return Se===0&&qt&&document.startViewTransition&&(Se++,Bt(r=>{if(document.startViewTransition)return new Promise(e=>{G("before-start-view-transition",{navigation:r});const t=document.startViewTransition(async()=>{Ce=!0,G("before-navigation",{navigation:r}),e(),G("before-navigation-complete",{navigation:r}),await r.complete,G("after-navigation-complete",{navigation:r})});t.ready.then(()=>{G("transition-ready",{navigation:r,transition:t})}).catch(console.error),t.updateCallbackDone.then(()=>{G("update-callback-done",{navigation:r,transition:t})}).catch(console.error),t.finished.then(()=>{G("transition-finished",{navigation:r,transition:t}),Ce=!1,Ne.forEach(n=>{n()}),Ne.clear()}).catch(console.error)})}),Ut(()=>{Se--})),{on:z,off:jt,transition:dr,classes:ar}}const Mt=(r,e,t)=>{const n=r[e];return n?typeof n=="function"?n():Promise.resolve(n):new Promise((s,i)=>{(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(i.bind(null,new Error("Unknown variable dynamic import: "+e+(e.split("/").length!==t?". Note that variables only represent file names one level deep.":""))))})};function fe(r,e){if(!r)throw new Error(e)}const $t=b.object({title:b.string(),slug:b.string(),description:b.string(),date:b.string(),lastmod:b.string(),publish:b.boolean(),tags:b.array(b.string()),status:b.string().optional(),statusIcon:b.string().optional(),href:b.string().optional(),filename:b.string().optional(),internalLinks:b.array(b.string()),readTime:b.number().optional()}),cr={"Make API misuse hard":"notes/make-api-misuse-hard","git-cheatsheet":"notes/git-cheatsheet","Branded Types":"notes/branded-types","Dynamically generate TypeScript Playground links":"notes/dynamic-ts-playground-links","TypeScript assertion functions increase type safety":"notes/assertion-functions","Total Typescript notes":"notes/total-typescript-notes","Structural types increase data compatibility":"notes/structural-types-increase-compatibility","Classy coding - JavaScript OOP through the ages":"notes/classy-javascript","Identity functions":"notes/identity-functions","Type branding removes structural type compatibility":"notes/structural-branded-types-nominal","Improve site previews on social media by unfurling webpages":"notes/site-unfurling","Slugs make links readable":"notes/slugs-make-links-readable","Beautifully render markdown code blocks in Svelte":"notes/svelte-shiki-twoslash","Adding users to new teams with Lucia auth and Prisma":"notes/customer-teams-lucia","Resolving CORS errors in SvelteKit":"notes/sveltekit-cors","Add a demo link to TypeScript code blocks":"notes/code-block-tsplay-demo-link","Linting and formatting a svelte typescript project":"notes/lint-format-svelte","Svelte component APIs":"notes/svelte-component-apis","sveltekit-storybook-setup":"notes/sveltekit-storybook-setup","Make example code interactive":"notes/make-example-code-interactive","Open neovim edgebar with focus set":"notes/focus-edgy-view","Thinking channels":"notes/thinking-channels","positive-feedback":"notes/positive-feedback","single-option-aversion-bias":"notes/single-option-aversion-bias","Money market":"notes/money-market","opportunity-cost":"notes/opportunity-cost","production-cost":"notes/production-cost","principal-agent-problem":"notes/principal-agent-problem","market-forces":"notes/market-forces","10 questions to evaluate a startup idea":"notes/evaluating-startup-idea","Theory and practice":"notes/theory-practice","Work-life balance":"notes/work-life-balance","three-options-consensus":"notes/three-options-consensus",uses:"uses","The publishing pipeline for allandeutsch.com":"notes/publishing-this-site","I want a smaller phone":"notes/smaller-phone","I use Neovim btw":"notes/use-neovim","Pasta Arabica":"notes/pasta-arabica","avocado-toast":"notes/avocado-toast","Gold Mac n Cheese":"gold-mac","pdc-travel-guide":"notes/pdc-travel-guide","cozumel-travel-guide":"notes/cozumel-travel-guide","distribution-channel":"notes/distribution-channel","learning-process":"notes/learning-process","value-innovation":"notes/value-innovation",microeconomics:"notes/microeconomics","marginal-utility":"notes/marginal-utility","positioning-statement":"notes/positioning-statement","use-contrast-direct-attention":"notes/use-contrast-direct-attention","blue-ocean-strategy":"notes/blue-ocean-strategy","strategy-canvas":"notes/strategy-canvas","fundamental-habits":"notes/fundamental-habits","vicious-virtuous-cycles":"notes/vicious-virtuous-cycles","supply-demand":"notes/supply-demand","price-elasticity":"notes/price-elasticity","customer-relationship":"notes/customer-relationship","hard-decisions":"notes/hard-decisions","ask-dont-tell":"notes/ask-dont-tell","spaced-repetition-workflow":"notes/spaced-repetition-workflow","business-model-canvas":"notes/business-model-canvas","four-actions-framework":"notes/four-actions-framework","blue-ocean":"notes/blue-ocean","traits-successful-blue-ocean-strategy":"notes/traits-successful-blue-ocean-strategy","compound-growth-system":"notes/compound-growth-system","cross-price-elasticity":"notes/cross-price-elasticity",restaurants:"notes/restaurants","consumer-demand":"notes/consumer-demand","value-curve":"notes/value-curve",grapow:"notes/grapow","value-proposition":"notes/value-proposition","compound-growth-most-impactful-at-end":"notes/compound-growth-most-impactful-at-end",utility:"notes/utility","ui-shadows":"notes/ui-shadows","situation-analysis":"notes/situation-analysis","price-elasticity-demand":"notes/price-elasticity-demand","type-1-2-decisions":"notes/type-1-2-decisions","segmentation-targeting-positioning":"notes/segmentation-targeting-positioning","Build infrastructure after not having it becomes painful":"notes/build-infrastructure-after-pain","red-ocean":"notes/red-ocean","customer-segment":"notes/customer-segment","competition-factors":"notes/competition-factors","world-recursive":"notes/world-recursive","monetized-content-compound-growth":"notes/monetized-content-compound-growth","customer-attribute-categories":"notes/customer-attribute-categories","devlog 7":"devlog/7","devlog 6":"devlog/6","devlog index":"devlog","devlog 12":"devlog/12","devlog 9":"devlog/9","devlog 8":"devlog/8","devlog 5":"devlog/5","devlog 1":"devlog/1","devlog 4":"devlog/4","devlog 3":"devlog/3","devlog 11":"devlog/11","devlog 0":"devlog/0","devlog 2":"devlog/2","devlog 10":"devlog/10",cafes:"notes/seattle-cafes",Gifts:"notes/gifts","Mac tips":"notes/mac-tips"};function ur(r){return Object.fromEntries(Object.entries(r).map(([e,t])=>[t,e]))}const Oe=ur(cr);async function Er({slug:r}){let e;try{e=await Mt(Object.assign({"../../_content/notes/10 questions to evaluate a startup idea.md":()=>o(()=>import("./10 questions to evaluate a startup idea.CbPhcJNk.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Add a demo link to TypeScript code blocks.md":()=>o(()=>import("./Add a demo link to TypeScript code blocks.CKdDXbYm.js"),__vite__mapDeps([9,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Adding users to new teams with Lucia auth and Prisma.md":()=>o(()=>import("./Adding users to new teams with Lucia auth and Prisma.dMAvioWp.js"),__vite__mapDeps([10,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Beautifully render markdown code blocks in Svelte.md":()=>o(()=>import("./Beautifully render markdown code blocks in Svelte.DjOORdUi.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Branded Types.md":()=>o(()=>import("./Branded Types.DGDRa01-.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Build infrastructure after not having it becomes painful.md":()=>o(()=>import("./Build infrastructure after not having it becomes painful.CvmUycDI.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Classy coding - JavaScript OOP through the ages.md":()=>o(()=>import("./Classy coding - JavaScript OOP through the ages.DRJiKFc3.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Dynamically generate TypeScript Playground links.md":()=>o(()=>import("./Dynamically generate TypeScript Playground links.CwQL_Ke-.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Gifts.md":()=>o(()=>import("./Gifts.DybrrHY-.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/Gold Mac n Cheese.md":()=>o(()=>import("./Gold Mac n Cheese.BMABLiCG.js"),__vite__mapDeps([18,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/I use Neovim btw.md":()=>o(()=>import("./I use Neovim btw.CjeZDwBV.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/I want a smaller phone.md":()=>o(()=>import("./I want a smaller phone.BQKttvvC.js"),__vite__mapDeps([20,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Identity functions.md":()=>o(()=>import("./Identity functions.Uu9-f9Hk.js"),__vite__mapDeps([21,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Improve site previews on social media by unfurling webpages.md":()=>o(()=>import("./Improve site previews on social media by unfurling webpages.5o_4F9Og.js"),__vite__mapDeps([22,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Linting and formatting a svelte typescript project.md":()=>o(()=>import("./Linting and formatting a svelte typescript project.-HsE_da6.js"),__vite__mapDeps([23,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Mac tips.md":()=>o(()=>import("./Mac tips.DjqlvmUH.js"),__vite__mapDeps([24,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Make API misuse hard.md":()=>o(()=>import("./Make API misuse hard.-SC5Svxk.js"),__vite__mapDeps([25,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Make example code interactive.md":()=>o(()=>import("./Make example code interactive.NiPV8GBo.js"),__vite__mapDeps([26,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Money market.md":()=>o(()=>import("./Money market.DfQ005NQ.js"),__vite__mapDeps([27,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Open neovim edgebar with focus set.md":()=>o(()=>import("./Open neovim edgebar with focus set.3VtNIF62.js"),__vite__mapDeps([28,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Pasta Arabica.md":()=>o(()=>import("./Pasta Arabica._6c9ubFf.js"),__vite__mapDeps([29,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/Resolving CORS errors in SvelteKit.md":()=>o(()=>import("./Resolving CORS errors in SvelteKit.CqAnxeNa.js"),__vite__mapDeps([30,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Slugs make links readable.md":()=>o(()=>import("./Slugs make links readable.C7WzGtJG.js"),__vite__mapDeps([31,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Structural types increase data compatibility.md":()=>o(()=>import("./Structural types increase data compatibility._IKf5aKe.js"),__vite__mapDeps([32,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/Svelte component APIs.md":()=>o(()=>import("./Svelte component APIs.DejX3dI8.js"),__vite__mapDeps([33,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/The publishing pipeline for allandeutsch.com.md":()=>o(()=>import("./The publishing pipeline for allandeutsch.com.DMholjN7.js"),__vite__mapDeps([34,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Theory and practice.md":()=>o(()=>import("./Theory and practice.CpVfFcQy.js"),__vite__mapDeps([35,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Thinking channels.md":()=>o(()=>import("./Thinking channels.BMI4sFKK.js"),__vite__mapDeps([36,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/Total Typescript notes.md":()=>o(()=>import("./Total Typescript notes.BweS8kBI.js"),__vite__mapDeps([37,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/Type branding removes structural type compatibility.md":()=>o(()=>import("./Type branding removes structural type compatibility.D43tJCwu.js"),__vite__mapDeps([38,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/TypeScript assertion functions increase type safety.md":()=>o(()=>import("./TypeScript assertion functions increase type safety.CjavNuyl.js"),__vite__mapDeps([39,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Work-life balance.md":()=>o(()=>import("./Work-life balance.BGmgQiCK.js"),__vite__mapDeps([40,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/ask-dont-tell.md":()=>o(()=>import("./ask-dont-tell.DZKTp4cX.js"),__vite__mapDeps([41,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/avocado-toast.md":()=>o(()=>import("./avocado-toast.CP721J-i.js"),__vite__mapDeps([42,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/blue-ocean-strategy.md":()=>o(()=>import("./blue-ocean-strategy.BsCvps7Z.js"),__vite__mapDeps([43,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/blue-ocean.md":()=>o(()=>import("./blue-ocean.tTuwPFB3.js"),__vite__mapDeps([44,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/business-model-canvas.md":()=>o(()=>import("./business-model-canvas.Drxkw09J.js"),__vite__mapDeps([45,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/cafes.md":()=>o(()=>import("./cafes.BaOx_4VH.js"),__vite__mapDeps([46,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/competition-factors.md":()=>o(()=>import("./competition-factors.C6NiDm3I.js"),__vite__mapDeps([47,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/compound-growth-most-impactful-at-end.md":()=>o(()=>import("./compound-growth-most-impactful-at-end.CWG20CHf.js"),__vite__mapDeps([48,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/compound-growth-system.md":()=>o(()=>import("./compound-growth-system.D5e_Eplv.js"),__vite__mapDeps([49,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/consumer-demand.md":()=>o(()=>import("./consumer-demand.BnFUw_bw.js"),__vite__mapDeps([50,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/cozumel-travel-guide.md":()=>o(()=>import("./cozumel-travel-guide.B2IbeDlX.js"),__vite__mapDeps([51,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/cross-price-elasticity.md":()=>o(()=>import("./cross-price-elasticity.Dshxl55d.js"),__vite__mapDeps([52,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/customer-attribute-categories.md":()=>o(()=>import("./customer-attribute-categories.DsbVQlZy.js"),__vite__mapDeps([53,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/customer-relationship.md":()=>o(()=>import("./customer-relationship.2fzI5nko.js"),__vite__mapDeps([54,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/customer-segment.md":()=>o(()=>import("./customer-segment.Da6W_6cx.js"),__vite__mapDeps([55,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 0.md":()=>o(()=>import("./devlog 0.DtmEeDcP.js"),__vite__mapDeps([56,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 1.md":()=>o(()=>import("./devlog 1.fMQNmNEz.js"),__vite__mapDeps([57,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 10.md":()=>o(()=>import("./devlog 10.CNCOXTGJ.js"),__vite__mapDeps([58,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 11.md":()=>o(()=>import("./devlog 11.DvVf0i_g.js"),__vite__mapDeps([59,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 12.md":()=>o(()=>import("./devlog 12.CMStLuZo.js"),__vite__mapDeps([60,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 2.md":()=>o(()=>import("./devlog 2.BKSKDBGH.js"),__vite__mapDeps([61,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 3.md":()=>o(()=>import("./devlog 3.wO6ZNEs8.js"),__vite__mapDeps([62,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 4.md":()=>o(()=>import("./devlog 4.Cm2cKccM.js"),__vite__mapDeps([63,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 5.md":()=>o(()=>import("./devlog 5.B0XN90r2.js"),__vite__mapDeps([64,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 6.md":()=>o(()=>import("./devlog 6.CtU7b2D3.js"),__vite__mapDeps([65,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 7.md":()=>o(()=>import("./devlog 7.Bl5_B5Ed.js"),__vite__mapDeps([66,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 8.md":()=>o(()=>import("./devlog 8.B3VRWoZr.js"),__vite__mapDeps([67,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 9.md":()=>o(()=>import("./devlog 9.D4EYe9QD.js"),__vite__mapDeps([68,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog index.md":()=>o(()=>import("./devlog index.jZusY4ZH.js"),__vite__mapDeps([69,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/distribution-channel.md":()=>o(()=>import("./distribution-channel.Do7vq8Gc.js"),__vite__mapDeps([70,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/four-actions-framework.md":()=>o(()=>import("./four-actions-framework.0u70XqxX.js"),__vite__mapDeps([71,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/fundamental-habits.md":()=>o(()=>import("./fundamental-habits.OOxmrT6t.js"),__vite__mapDeps([72,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/git-cheatsheet.md":()=>o(()=>import("./git-cheatsheet.GnMCSRPD.js"),__vite__mapDeps([73,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/grapow.md":()=>o(()=>import("./grapow.BQZN6hKk.js"),__vite__mapDeps([74,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/hard-decisions.md":()=>o(()=>import("./hard-decisions.ANbJruFI.js"),__vite__mapDeps([75,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/learning-process.md":()=>o(()=>import("./learning-process.CUhLrR27.js"),__vite__mapDeps([76,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/marginal-utility.md":()=>o(()=>import("./marginal-utility.BXpwLRbJ.js"),__vite__mapDeps([77,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/market-forces.md":()=>o(()=>import("./market-forces.C12FXRqo.js"),__vite__mapDeps([78,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/microeconomics.md":()=>o(()=>import("./microeconomics.CxX-NPNQ.js"),__vite__mapDeps([79,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/monetized-content-compound-growth.md":()=>o(()=>import("./monetized-content-compound-growth.CtN6SDkX.js"),__vite__mapDeps([80,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/opportunity-cost.md":()=>o(()=>import("./opportunity-cost.DSu28hEz.js"),__vite__mapDeps([81,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/pdc-travel-guide.md":()=>o(()=>import("./pdc-travel-guide.B1XyHoUM.js"),__vite__mapDeps([82,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/positioning-statement.md":()=>o(()=>import("./positioning-statement.BsO_gQi3.js"),__vite__mapDeps([83,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/positive-feedback.md":()=>o(()=>import("./positive-feedback.CMXWM-Xn.js"),__vite__mapDeps([84,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/price-elasticity-demand.md":()=>o(()=>import("./price-elasticity-demand.BR2ZVrsp.js"),__vite__mapDeps([85,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/price-elasticity.md":()=>o(()=>import("./price-elasticity.bJsQ0sYy.js"),__vite__mapDeps([86,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/principal-agent-problem.md":()=>o(()=>import("./principal-agent-problem.DhPxByfl.js"),__vite__mapDeps([87,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/production-cost.md":()=>o(()=>import("./production-cost.BN6r7u4X.js"),__vite__mapDeps([88,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/red-ocean.md":()=>o(()=>import("./red-ocean.DKH5MX3e.js"),__vite__mapDeps([89,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/restaurants.md":()=>o(()=>import("./restaurants.CHJaVI_i.js"),__vite__mapDeps([90,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/segmentation-targeting-positioning.md":()=>o(()=>import("./segmentation-targeting-positioning.COlgjanY.js"),__vite__mapDeps([91,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/single-option-aversion-bias.md":()=>o(()=>import("./single-option-aversion-bias.CjmCdzmR.js"),__vite__mapDeps([92,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/situation-analysis.md":()=>o(()=>import("./situation-analysis.26dAvQUu.js"),__vite__mapDeps([93,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/spaced-repetition-workflow.md":()=>o(()=>import("./spaced-repetition-workflow.Dmh8k56L.js"),__vite__mapDeps([94,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/strategy-canvas.md":()=>o(()=>import("./strategy-canvas.DOm4bq9d.js"),__vite__mapDeps([95,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/supply-demand.md":()=>o(()=>import("./supply-demand.BJPO35q1.js"),__vite__mapDeps([96,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/sveltekit-storybook-setup.md":()=>o(()=>import("./sveltekit-storybook-setup.BWCdFII9.js"),__vite__mapDeps([97,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/three-options-consensus.md":()=>o(()=>import("./three-options-consensus.CS8xLe7Z.js"),__vite__mapDeps([98,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/traits-successful-blue-ocean-strategy.md":()=>o(()=>import("./traits-successful-blue-ocean-strategy.I336OLpg.js"),__vite__mapDeps([99,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/type-1-2-decisions.md":()=>o(()=>import("./type-1-2-decisions.BNquIyUL.js"),__vite__mapDeps([100,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/ui-shadows.md":()=>o(()=>import("./ui-shadows.CXuJgu5I.js"),__vite__mapDeps([101,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/use-contrast-direct-attention.md":()=>o(()=>import("./use-contrast-direct-attention.CF8Q8d5-.js"),__vite__mapDeps([102,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/uses.md":()=>o(()=>import("./uses.Br4eZsRB.js"),__vite__mapDeps([103,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/utility.md":()=>o(()=>import("./utility.BtyvVV7k.js"),__vite__mapDeps([104,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/value-curve.md":()=>o(()=>import("./value-curve.Cm-5hv69.js"),__vite__mapDeps([105,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/value-innovation.md":()=>o(()=>import("./value-innovation.DdYG6mqW.js"),__vite__mapDeps([106,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/value-proposition.md":()=>o(()=>import("./value-proposition.ghHaZ0E-.js"),__vite__mapDeps([107,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/vicious-virtuous-cycles.md":()=>o(()=>import("./vicious-virtuous-cycles.D3gZ1g2O.js"),__vite__mapDeps([108,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/world-recursive.md":()=>o(()=>import("./world-recursive.C0pGo7a7.js"),__vite__mapDeps([109,1,2,3,4,5,6,7,8]),import.meta.url)}),`../../_content/notes/${Oe[r]}.md`,5)}catch{return{success:!1,error:`Failed to open '${r}' with filename '${Oe[r]}.md'.`}}fe(e!==null,`The post '${r}' is null.`),fe(typeof e=="object",`The post '${r}' isn't an object.`),fe("metadata"in e,`The post '${r}' is missing metadata.`),fe("default"in e,`The post '${r}' is missing content.`),fe(e.default,`The post '${r}' is null.`);const t=await $t.safeParseAsync(e.metadata);return t.success?(zt(t.data),{success:!0,metadata:t.data,content:e.default}):{success:!1,error:`The metadata for post '${r}' isn't valid.
+Issue: ${t.error.toString()}`}}function zt(r){if(r.tags){const e=r.tags.find(t=>t.startsWith("status/"));if(e!==void 0){const t=lr(e);r.status=t.status,r.statusIcon=t.statusIcon}}r.href=`/${r.slug}`}function lr(r){r=r.split("/")[1];let e="";switch(r.toLowerCase()){case"evergreen":e="🌲";break;case"budding":e="🌿";break;case"seedling":e="🌱";break}return{status:r.toLowerCase(),statusIcon:e}}function mr(r){return r.sort((e,t)=>new Date(t.lastmod).getTime()-new Date(e.lastmod).getTime())}async function _r({slug:r}){try{const{metadata:e}=await Mt(Object.assign({"../../_content/notes/10 questions to evaluate a startup idea.md":()=>o(()=>import("./10 questions to evaluate a startup idea.CbPhcJNk.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Add a demo link to TypeScript code blocks.md":()=>o(()=>import("./Add a demo link to TypeScript code blocks.CKdDXbYm.js"),__vite__mapDeps([9,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Adding users to new teams with Lucia auth and Prisma.md":()=>o(()=>import("./Adding users to new teams with Lucia auth and Prisma.dMAvioWp.js"),__vite__mapDeps([10,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Beautifully render markdown code blocks in Svelte.md":()=>o(()=>import("./Beautifully render markdown code blocks in Svelte.DjOORdUi.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Branded Types.md":()=>o(()=>import("./Branded Types.DGDRa01-.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Build infrastructure after not having it becomes painful.md":()=>o(()=>import("./Build infrastructure after not having it becomes painful.CvmUycDI.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Classy coding - JavaScript OOP through the ages.md":()=>o(()=>import("./Classy coding - JavaScript OOP through the ages.DRJiKFc3.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Dynamically generate TypeScript Playground links.md":()=>o(()=>import("./Dynamically generate TypeScript Playground links.CwQL_Ke-.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Gifts.md":()=>o(()=>import("./Gifts.DybrrHY-.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/Gold Mac n Cheese.md":()=>o(()=>import("./Gold Mac n Cheese.BMABLiCG.js"),__vite__mapDeps([18,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/I use Neovim btw.md":()=>o(()=>import("./I use Neovim btw.CjeZDwBV.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/I want a smaller phone.md":()=>o(()=>import("./I want a smaller phone.BQKttvvC.js"),__vite__mapDeps([20,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Identity functions.md":()=>o(()=>import("./Identity functions.Uu9-f9Hk.js"),__vite__mapDeps([21,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Improve site previews on social media by unfurling webpages.md":()=>o(()=>import("./Improve site previews on social media by unfurling webpages.5o_4F9Og.js"),__vite__mapDeps([22,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Linting and formatting a svelte typescript project.md":()=>o(()=>import("./Linting and formatting a svelte typescript project.-HsE_da6.js"),__vite__mapDeps([23,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Mac tips.md":()=>o(()=>import("./Mac tips.DjqlvmUH.js"),__vite__mapDeps([24,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Make API misuse hard.md":()=>o(()=>import("./Make API misuse hard.-SC5Svxk.js"),__vite__mapDeps([25,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Make example code interactive.md":()=>o(()=>import("./Make example code interactive.NiPV8GBo.js"),__vite__mapDeps([26,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Money market.md":()=>o(()=>import("./Money market.DfQ005NQ.js"),__vite__mapDeps([27,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Open neovim edgebar with focus set.md":()=>o(()=>import("./Open neovim edgebar with focus set.3VtNIF62.js"),__vite__mapDeps([28,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Pasta Arabica.md":()=>o(()=>import("./Pasta Arabica._6c9ubFf.js"),__vite__mapDeps([29,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/Resolving CORS errors in SvelteKit.md":()=>o(()=>import("./Resolving CORS errors in SvelteKit.CqAnxeNa.js"),__vite__mapDeps([30,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Slugs make links readable.md":()=>o(()=>import("./Slugs make links readable.C7WzGtJG.js"),__vite__mapDeps([31,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Structural types increase data compatibility.md":()=>o(()=>import("./Structural types increase data compatibility._IKf5aKe.js"),__vite__mapDeps([32,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/Svelte component APIs.md":()=>o(()=>import("./Svelte component APIs.DejX3dI8.js"),__vite__mapDeps([33,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/The publishing pipeline for allandeutsch.com.md":()=>o(()=>import("./The publishing pipeline for allandeutsch.com.DMholjN7.js"),__vite__mapDeps([34,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Theory and practice.md":()=>o(()=>import("./Theory and practice.CpVfFcQy.js"),__vite__mapDeps([35,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Thinking channels.md":()=>o(()=>import("./Thinking channels.BMI4sFKK.js"),__vite__mapDeps([36,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/Total Typescript notes.md":()=>o(()=>import("./Total Typescript notes.BweS8kBI.js"),__vite__mapDeps([37,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/Type branding removes structural type compatibility.md":()=>o(()=>import("./Type branding removes structural type compatibility.D43tJCwu.js"),__vite__mapDeps([38,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/TypeScript assertion functions increase type safety.md":()=>o(()=>import("./TypeScript assertion functions increase type safety.CjavNuyl.js"),__vite__mapDeps([39,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/Work-life balance.md":()=>o(()=>import("./Work-life balance.BGmgQiCK.js"),__vite__mapDeps([40,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/ask-dont-tell.md":()=>o(()=>import("./ask-dont-tell.DZKTp4cX.js"),__vite__mapDeps([41,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/avocado-toast.md":()=>o(()=>import("./avocado-toast.CP721J-i.js"),__vite__mapDeps([42,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/blue-ocean-strategy.md":()=>o(()=>import("./blue-ocean-strategy.BsCvps7Z.js"),__vite__mapDeps([43,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/blue-ocean.md":()=>o(()=>import("./blue-ocean.tTuwPFB3.js"),__vite__mapDeps([44,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/business-model-canvas.md":()=>o(()=>import("./business-model-canvas.Drxkw09J.js"),__vite__mapDeps([45,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/cafes.md":()=>o(()=>import("./cafes.BaOx_4VH.js"),__vite__mapDeps([46,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/competition-factors.md":()=>o(()=>import("./competition-factors.C6NiDm3I.js"),__vite__mapDeps([47,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/compound-growth-most-impactful-at-end.md":()=>o(()=>import("./compound-growth-most-impactful-at-end.CWG20CHf.js"),__vite__mapDeps([48,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/compound-growth-system.md":()=>o(()=>import("./compound-growth-system.D5e_Eplv.js"),__vite__mapDeps([49,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/consumer-demand.md":()=>o(()=>import("./consumer-demand.BnFUw_bw.js"),__vite__mapDeps([50,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/cozumel-travel-guide.md":()=>o(()=>import("./cozumel-travel-guide.B2IbeDlX.js"),__vite__mapDeps([51,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/cross-price-elasticity.md":()=>o(()=>import("./cross-price-elasticity.Dshxl55d.js"),__vite__mapDeps([52,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/customer-attribute-categories.md":()=>o(()=>import("./customer-attribute-categories.DsbVQlZy.js"),__vite__mapDeps([53,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/customer-relationship.md":()=>o(()=>import("./customer-relationship.2fzI5nko.js"),__vite__mapDeps([54,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/customer-segment.md":()=>o(()=>import("./customer-segment.Da6W_6cx.js"),__vite__mapDeps([55,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 0.md":()=>o(()=>import("./devlog 0.DtmEeDcP.js"),__vite__mapDeps([56,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 1.md":()=>o(()=>import("./devlog 1.fMQNmNEz.js"),__vite__mapDeps([57,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 10.md":()=>o(()=>import("./devlog 10.CNCOXTGJ.js"),__vite__mapDeps([58,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 11.md":()=>o(()=>import("./devlog 11.DvVf0i_g.js"),__vite__mapDeps([59,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 12.md":()=>o(()=>import("./devlog 12.CMStLuZo.js"),__vite__mapDeps([60,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 2.md":()=>o(()=>import("./devlog 2.BKSKDBGH.js"),__vite__mapDeps([61,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 3.md":()=>o(()=>import("./devlog 3.wO6ZNEs8.js"),__vite__mapDeps([62,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 4.md":()=>o(()=>import("./devlog 4.Cm2cKccM.js"),__vite__mapDeps([63,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 5.md":()=>o(()=>import("./devlog 5.B0XN90r2.js"),__vite__mapDeps([64,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 6.md":()=>o(()=>import("./devlog 6.CtU7b2D3.js"),__vite__mapDeps([65,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 7.md":()=>o(()=>import("./devlog 7.Bl5_B5Ed.js"),__vite__mapDeps([66,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 8.md":()=>o(()=>import("./devlog 8.B3VRWoZr.js"),__vite__mapDeps([67,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog 9.md":()=>o(()=>import("./devlog 9.D4EYe9QD.js"),__vite__mapDeps([68,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/devlog index.md":()=>o(()=>import("./devlog index.jZusY4ZH.js"),__vite__mapDeps([69,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/distribution-channel.md":()=>o(()=>import("./distribution-channel.Do7vq8Gc.js"),__vite__mapDeps([70,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/four-actions-framework.md":()=>o(()=>import("./four-actions-framework.0u70XqxX.js"),__vite__mapDeps([71,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/fundamental-habits.md":()=>o(()=>import("./fundamental-habits.OOxmrT6t.js"),__vite__mapDeps([72,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/git-cheatsheet.md":()=>o(()=>import("./git-cheatsheet.GnMCSRPD.js"),__vite__mapDeps([73,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/grapow.md":()=>o(()=>import("./grapow.BQZN6hKk.js"),__vite__mapDeps([74,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/hard-decisions.md":()=>o(()=>import("./hard-decisions.ANbJruFI.js"),__vite__mapDeps([75,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/learning-process.md":()=>o(()=>import("./learning-process.CUhLrR27.js"),__vite__mapDeps([76,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/marginal-utility.md":()=>o(()=>import("./marginal-utility.BXpwLRbJ.js"),__vite__mapDeps([77,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/market-forces.md":()=>o(()=>import("./market-forces.C12FXRqo.js"),__vite__mapDeps([78,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/microeconomics.md":()=>o(()=>import("./microeconomics.CxX-NPNQ.js"),__vite__mapDeps([79,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/monetized-content-compound-growth.md":()=>o(()=>import("./monetized-content-compound-growth.CtN6SDkX.js"),__vite__mapDeps([80,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/opportunity-cost.md":()=>o(()=>import("./opportunity-cost.DSu28hEz.js"),__vite__mapDeps([81,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/pdc-travel-guide.md":()=>o(()=>import("./pdc-travel-guide.B1XyHoUM.js"),__vite__mapDeps([82,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/positioning-statement.md":()=>o(()=>import("./positioning-statement.BsO_gQi3.js"),__vite__mapDeps([83,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/positive-feedback.md":()=>o(()=>import("./positive-feedback.CMXWM-Xn.js"),__vite__mapDeps([84,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/price-elasticity-demand.md":()=>o(()=>import("./price-elasticity-demand.BR2ZVrsp.js"),__vite__mapDeps([85,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/price-elasticity.md":()=>o(()=>import("./price-elasticity.bJsQ0sYy.js"),__vite__mapDeps([86,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/principal-agent-problem.md":()=>o(()=>import("./principal-agent-problem.DhPxByfl.js"),__vite__mapDeps([87,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/production-cost.md":()=>o(()=>import("./production-cost.BN6r7u4X.js"),__vite__mapDeps([88,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/red-ocean.md":()=>o(()=>import("./red-ocean.DKH5MX3e.js"),__vite__mapDeps([89,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/restaurants.md":()=>o(()=>import("./restaurants.CHJaVI_i.js"),__vite__mapDeps([90,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/segmentation-targeting-positioning.md":()=>o(()=>import("./segmentation-targeting-positioning.COlgjanY.js"),__vite__mapDeps([91,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/single-option-aversion-bias.md":()=>o(()=>import("./single-option-aversion-bias.CjmCdzmR.js"),__vite__mapDeps([92,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/situation-analysis.md":()=>o(()=>import("./situation-analysis.26dAvQUu.js"),__vite__mapDeps([93,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/spaced-repetition-workflow.md":()=>o(()=>import("./spaced-repetition-workflow.Dmh8k56L.js"),__vite__mapDeps([94,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/strategy-canvas.md":()=>o(()=>import("./strategy-canvas.DOm4bq9d.js"),__vite__mapDeps([95,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/supply-demand.md":()=>o(()=>import("./supply-demand.BJPO35q1.js"),__vite__mapDeps([96,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/sveltekit-storybook-setup.md":()=>o(()=>import("./sveltekit-storybook-setup.BWCdFII9.js"),__vite__mapDeps([97,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/three-options-consensus.md":()=>o(()=>import("./three-options-consensus.CS8xLe7Z.js"),__vite__mapDeps([98,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/traits-successful-blue-ocean-strategy.md":()=>o(()=>import("./traits-successful-blue-ocean-strategy.I336OLpg.js"),__vite__mapDeps([99,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/type-1-2-decisions.md":()=>o(()=>import("./type-1-2-decisions.BNquIyUL.js"),__vite__mapDeps([100,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/ui-shadows.md":()=>o(()=>import("./ui-shadows.CXuJgu5I.js"),__vite__mapDeps([101,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/use-contrast-direct-attention.md":()=>o(()=>import("./use-contrast-direct-attention.CF8Q8d5-.js"),__vite__mapDeps([102,1,2,3,4,5,6,7,8,17]),import.meta.url),"../../_content/notes/uses.md":()=>o(()=>import("./uses.Br4eZsRB.js"),__vite__mapDeps([103,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/utility.md":()=>o(()=>import("./utility.BtyvVV7k.js"),__vite__mapDeps([104,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/value-curve.md":()=>o(()=>import("./value-curve.Cm-5hv69.js"),__vite__mapDeps([105,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/value-innovation.md":()=>o(()=>import("./value-innovation.DdYG6mqW.js"),__vite__mapDeps([106,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/value-proposition.md":()=>o(()=>import("./value-proposition.ghHaZ0E-.js"),__vite__mapDeps([107,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/vicious-virtuous-cycles.md":()=>o(()=>import("./vicious-virtuous-cycles.D3gZ1g2O.js"),__vite__mapDeps([108,1,2,3,4,5,6,7,8]),import.meta.url),"../../_content/notes/world-recursive.md":()=>o(()=>import("./world-recursive.C0pGo7a7.js"),__vite__mapDeps([109,1,2,3,4,5,6,7,8]),import.meta.url)}),`../../_content/notes/${Oe[r]}.md`,5),t=$t.safeParse(e);return t.success?(zt(t.data),{success:!0,metadata:t.data}):{success:!1,error:`The metadata for post '${r}' isn't valid.
Issue: ${t.error.toString()}`}}catch{return{success:!1,error:`Failed to open '${r}' with filename '${Oe[r]}.md'.`}}}async function pr(){const r=new Array;return await Promise.allSettled(Object.keys(Oe).map(e=>_r({slug:e}).then(t=>{t.success&&r.push(t.metadata)}))),mr(r)}pr();export{Er as L,gr as l,yr as s,b as z};
diff --git a/_app/immutable/chunks/Open neovim edgebar with focus set.NAGooXWn.js b/_app/immutable/chunks/Open neovim edgebar with focus set.3VtNIF62.js
similarity index 99%
rename from _app/immutable/chunks/Open neovim edgebar with focus set.NAGooXWn.js
rename to _app/immutable/chunks/Open neovim edgebar with focus set.3VtNIF62.js
index d4f0b014fd..92231c2159 100644
--- a/_app/immutable/chunks/Open neovim edgebar with focus set.NAGooXWn.js
+++ b/_app/immutable/chunks/Open neovim edgebar with focus set.3VtNIF62.js
@@ -1,4 +1,4 @@
-import{s as wa,p as qs,q as la,e as o,a as n,H as d,u as c,c as r,m as p,g as l,v as h,o as Ea,i as e,n as ga,f as i}from"./scheduler.ewBkyc9q.js";import{S as va,i as _a,c as ba,a as Ia,m as xa,t as Ta,b as Fa,d as La}from"./index.DpmaPz1F.js";import{g as Ha,a as ta}from"./spread.CgU5AtxT.js";import{M as Ma}from"./MDSveXNoteLayout.Bx5vQYjx.js";function Pa(O){let t,u='Recently I switched to Neovim as my go-to text editor, and have been configuring it as an IDE. The flexibility to have it behave exactly the way I want is amazing!',D,A,k='One GUI element of VS Code that I’ve missed is having a sidebar with hotkeys to quickly jump between different views, such as Git and my project’s file tree. Fortunately, there’s a great library by folke that is designed to create and manage sidebars: edgy.nvim. The sidebar config is reminiscent of declarative languages like CSS, so setting up my sidebar felt pretty familiar. To start, I created a side with three neo-tree.nvim views:',y,B,zs="A file tree (explorer) view A list of my open buffers Git tree view of my modified files ",As,C,js='The lazy.nvim edgy config for that looks like this:',Ds,S,ra=`return {
+import{s as wa,p as qs,q as la,e as o,a as n,H as d,u as c,c as r,m as p,g as l,v as h,o as Ea,i as e,n as ga,f as i}from"./scheduler.ewBkyc9q.js";import{S as va,i as _a,c as ba,a as Ia,m as xa,t as Ta,b as Fa,d as La}from"./index.DpmaPz1F.js";import{g as Ha,a as ta}from"./spread.CgU5AtxT.js";import{M as Ma}from"./MDSveXNoteLayout.Dbh0E4KQ.js";function Pa(O){let t,u='Recently I switched to Neovim as my go-to text editor, and have been configuring it as an IDE. The flexibility to have it behave exactly the way I want is amazing!',D,A,k='One GUI element of VS Code that I’ve missed is having a sidebar with hotkeys to quickly jump between different views, such as Git and my project’s file tree. Fortunately, there’s a great library by folke that is designed to create and manage sidebars: edgy.nvim. The sidebar config is reminiscent of declarative languages like CSS, so setting up my sidebar felt pretty familiar. To start, I created a side with three neo-tree.nvim views:',y,B,zs="A file tree (explorer) view A list of my open buffers Git tree view of my modified files ",As,C,js='The lazy.nvim edgy config for that looks like this:',Ds,S,ra=`return {
"folke/edgy.nvim",
event = "VeryLazy",
init = function()
diff --git a/_app/immutable/chunks/Pasta Arabica.BGR1I-89.js b/_app/immutable/chunks/Pasta Arabica._6c9ubFf.js
similarity index 97%
rename from _app/immutable/chunks/Pasta Arabica.BGR1I-89.js
rename to _app/immutable/chunks/Pasta Arabica._6c9ubFf.js
index 2e862e06ab..311fc38435 100644
--- a/_app/immutable/chunks/Pasta Arabica.BGR1I-89.js
+++ b/_app/immutable/chunks/Pasta Arabica._6c9ubFf.js
@@ -1 +1 @@
-import{s as R,p as A,q as F,e as u,a as h,c as f,m as c,g as m,o as I,i as s,f as l,n as U}from"./scheduler.ewBkyc9q.js";import{S as V,i as tt,c as K,a as N,m as Q,t as W,b as Y,d as J}from"./index.DpmaPz1F.js";import{g as et,a as X}from"./spread.CgU5AtxT.js";import{M as it}from"./MDSveXNoteLayout.Bx5vQYjx.js";import{T as at}from"./Table.D4VRZ6lr.js";function nt(_){let e,p="Ingredient Amount ",r,d,i="Garlic 1 bulb Onion 1/2 Orange 1/2 Olive oil 2 Tbsp Tahini 2 Tbsp Ground beef/lamb 1/2 lb Balsamic vinegar 1 Tbsp Dry pasta ~1 1/3 cup Pomegranate molasses 3 Tbsp Kosher salt 2-3 Tbsp Za’atar 2 Tbsp Feta cheese 4 Tbsp ";return{c(){e=u("thead"),e.innerHTML=p,r=h(),d=u("tbody"),d.innerHTML=i},l(a){e=f(a,"THEAD",{"data-svelte-h":!0}),c(e)!=="svelte-1tnhzrc"&&(e.innerHTML=p),r=m(a),d=f(a,"TBODY",{"data-svelte-h":!0}),c(d)!=="svelte-1075h0b"&&(d.innerHTML=i)},m(a,o){s(a,e,o),s(a,r,o),s(a,d,o)},p:U,d(a){a&&(l(e),l(r),l(d))}}}function st(_){let e,p='One night after working I was hungry and feeling creatively inspired, so I decided to cook dinner. I asked Maya to put on a playlist of cultural music from the culture she wanted dinner to be inspired by. This playlist started playing as I began to dice garlic, and off to the Middle East we went!',r,d,i="The dish draws on some traditional and modern flavors that I’ve encountered in Middle Eastern food.",a,o,S="The recipe is published here upon request. We enjoyed it, and I hope you enjoy it too!",M,b,j=' Ingredients',k,x,D="These ingredients makes 2 large servings or 3-4 moderate servings.",H,v,L,g,q=' Prep',C,y,E="Peel & dice the garlic Peel & dice 1/4 of the onion and slice the other 1/4 Peel the orange, then peel the skin off the wedges of half the orange Bring 2-3 cups of water to boil on the side, ideally in a kettle ",w,T,Z=' Steps',P,$,z="Heat olive oil on medium heat Once hot, add in the dice garlic and onion. Fry until fragrant Add the ground beef and use a cooking utensil to separate it into small pieces Toss in peeled orange wedges and tahini, mixing until the tahini is evenly distributed Once the beef is cooked, add in balsamic vinegar to deglaze the pan Add in pasta and just enough water to submerge it. Set a timer for the amount of time needed to cook the pasta Stir in sliced onions, pomegranate molasses, and 2 Tbsp kosher salt Stir occasionally until pasta is cooked, adding boiling water as needed if the water has all boiled off. Season to desired saltiness. After the pasta is cooked, reduce liquid to desired viscosity and serve in a bowl. Top with za’atar and feta cheese. ",O;return v=new at({props:{$$slots:{default:[nt]},$$scope:{ctx:_}}}),{c(){e=u("p"),e.innerHTML=p,r=h(),d=u("p"),d.textContent=i,a=h(),o=u("p"),o.textContent=S,M=h(),b=u("h2"),b.innerHTML=j,k=h(),x=u("p"),x.textContent=D,H=h(),K(v.$$.fragment),L=h(),g=u("h2"),g.innerHTML=q,C=h(),y=u("ol"),y.innerHTML=E,w=h(),T=u("h2"),T.innerHTML=Z,P=h(),$=u("ol"),$.innerHTML=z,this.h()},l(t){e=f(t,"P",{"data-svelte-h":!0}),c(e)!=="svelte-1116vkp"&&(e.innerHTML=p),r=m(t),d=f(t,"P",{"data-svelte-h":!0}),c(d)!=="svelte-5lytj7"&&(d.textContent=i),a=m(t),o=f(t,"P",{"data-svelte-h":!0}),c(o)!=="svelte-1odsmmp"&&(o.textContent=S),M=m(t),b=f(t,"H2",{id:!0,"data-svelte-h":!0}),c(b)!=="svelte-9bt1ri"&&(b.innerHTML=j),k=m(t),x=f(t,"P",{"data-svelte-h":!0}),c(x)!=="svelte-1lag2f3"&&(x.textContent=D),H=m(t),N(v.$$.fragment,t),L=m(t),g=f(t,"H2",{id:!0,"data-svelte-h":!0}),c(g)!=="svelte-1v0ieby"&&(g.innerHTML=q),C=m(t),y=f(t,"OL",{"data-svelte-h":!0}),c(y)!=="svelte-1kvhrym"&&(y.innerHTML=E),w=m(t),T=f(t,"H2",{id:!0,"data-svelte-h":!0}),c(T)!=="svelte-1g870dg"&&(T.innerHTML=Z),P=m(t),$=f(t,"OL",{"data-svelte-h":!0}),c($)!=="svelte-8mepi1"&&($.innerHTML=z),this.h()},h(){I(b,"id","ingredients"),I(g,"id","prep"),I(T,"id","steps")},m(t,n){s(t,e,n),s(t,r,n),s(t,d,n),s(t,a,n),s(t,o,n),s(t,M,n),s(t,b,n),s(t,k,n),s(t,x,n),s(t,H,n),Q(v,t,n),s(t,L,n),s(t,g,n),s(t,C,n),s(t,y,n),s(t,w,n),s(t,T,n),s(t,P,n),s(t,$,n),O=!0},p(t,n){const B={};n&2&&(B.$$scope={dirty:n,ctx:t}),v.$set(B)},i(t){O||(W(v.$$.fragment,t),O=!0)},o(t){Y(v.$$.fragment,t),O=!1},d(t){t&&(l(e),l(r),l(d),l(a),l(o),l(M),l(b),l(k),l(x),l(H),l(L),l(g),l(C),l(y),l(w),l(T),l(P),l($)),J(v,t)}}}function lt(_){let e,p;const r=[_[0],G];let d={$$slots:{default:[st]},$$scope:{ctx:_}};for(let i=0;i{p(0,e=A(A({},e),F(r)))},e=F(e),[e]}class ct extends V{constructor(e){super(),tt(this,e,dt,lt,R,{})}}export{ct as default,G as metadata};
+import{s as R,p as A,q as F,e as u,a as h,c as f,m as c,g as m,o as I,i as s,f as l,n as U}from"./scheduler.ewBkyc9q.js";import{S as V,i as tt,c as K,a as N,m as Q,t as W,b as Y,d as J}from"./index.DpmaPz1F.js";import{g as et,a as X}from"./spread.CgU5AtxT.js";import{M as it}from"./MDSveXNoteLayout.Dbh0E4KQ.js";import{T as at}from"./Table.Bswvj4Nz.js";function nt(_){let e,p="Ingredient Amount ",r,d,i="Garlic 1 bulb Onion 1/2 Orange 1/2 Olive oil 2 Tbsp Tahini 2 Tbsp Ground beef/lamb 1/2 lb Balsamic vinegar 1 Tbsp Dry pasta ~1 1/3 cup Pomegranate molasses 3 Tbsp Kosher salt 2-3 Tbsp Za’atar 2 Tbsp Feta cheese 4 Tbsp ";return{c(){e=u("thead"),e.innerHTML=p,r=h(),d=u("tbody"),d.innerHTML=i},l(a){e=f(a,"THEAD",{"data-svelte-h":!0}),c(e)!=="svelte-1tnhzrc"&&(e.innerHTML=p),r=m(a),d=f(a,"TBODY",{"data-svelte-h":!0}),c(d)!=="svelte-1075h0b"&&(d.innerHTML=i)},m(a,o){s(a,e,o),s(a,r,o),s(a,d,o)},p:U,d(a){a&&(l(e),l(r),l(d))}}}function st(_){let e,p='One night after working I was hungry and feeling creatively inspired, so I decided to cook dinner. I asked Maya to put on a playlist of cultural music from the culture she wanted dinner to be inspired by. This playlist started playing as I began to dice garlic, and off to the Middle East we went!',r,d,i="The dish draws on some traditional and modern flavors that I’ve encountered in Middle Eastern food.",a,o,S="The recipe is published here upon request. We enjoyed it, and I hope you enjoy it too!",M,b,j=' Ingredients',k,x,D="These ingredients makes 2 large servings or 3-4 moderate servings.",H,v,L,g,q=' Prep',C,y,E="Peel & dice the garlic Peel & dice 1/4 of the onion and slice the other 1/4 Peel the orange, then peel the skin off the wedges of half the orange Bring 2-3 cups of water to boil on the side, ideally in a kettle ",w,T,Z=' Steps',P,$,z="Heat olive oil on medium heat Once hot, add in the dice garlic and onion. Fry until fragrant Add the ground beef and use a cooking utensil to separate it into small pieces Toss in peeled orange wedges and tahini, mixing until the tahini is evenly distributed Once the beef is cooked, add in balsamic vinegar to deglaze the pan Add in pasta and just enough water to submerge it. Set a timer for the amount of time needed to cook the pasta Stir in sliced onions, pomegranate molasses, and 2 Tbsp kosher salt Stir occasionally until pasta is cooked, adding boiling water as needed if the water has all boiled off. Season to desired saltiness. After the pasta is cooked, reduce liquid to desired viscosity and serve in a bowl. Top with za’atar and feta cheese. ",O;return v=new at({props:{$$slots:{default:[nt]},$$scope:{ctx:_}}}),{c(){e=u("p"),e.innerHTML=p,r=h(),d=u("p"),d.textContent=i,a=h(),o=u("p"),o.textContent=S,M=h(),b=u("h2"),b.innerHTML=j,k=h(),x=u("p"),x.textContent=D,H=h(),K(v.$$.fragment),L=h(),g=u("h2"),g.innerHTML=q,C=h(),y=u("ol"),y.innerHTML=E,w=h(),T=u("h2"),T.innerHTML=Z,P=h(),$=u("ol"),$.innerHTML=z,this.h()},l(t){e=f(t,"P",{"data-svelte-h":!0}),c(e)!=="svelte-1116vkp"&&(e.innerHTML=p),r=m(t),d=f(t,"P",{"data-svelte-h":!0}),c(d)!=="svelte-5lytj7"&&(d.textContent=i),a=m(t),o=f(t,"P",{"data-svelte-h":!0}),c(o)!=="svelte-1odsmmp"&&(o.textContent=S),M=m(t),b=f(t,"H2",{id:!0,"data-svelte-h":!0}),c(b)!=="svelte-9bt1ri"&&(b.innerHTML=j),k=m(t),x=f(t,"P",{"data-svelte-h":!0}),c(x)!=="svelte-1lag2f3"&&(x.textContent=D),H=m(t),N(v.$$.fragment,t),L=m(t),g=f(t,"H2",{id:!0,"data-svelte-h":!0}),c(g)!=="svelte-1v0ieby"&&(g.innerHTML=q),C=m(t),y=f(t,"OL",{"data-svelte-h":!0}),c(y)!=="svelte-1kvhrym"&&(y.innerHTML=E),w=m(t),T=f(t,"H2",{id:!0,"data-svelte-h":!0}),c(T)!=="svelte-1g870dg"&&(T.innerHTML=Z),P=m(t),$=f(t,"OL",{"data-svelte-h":!0}),c($)!=="svelte-8mepi1"&&($.innerHTML=z),this.h()},h(){I(b,"id","ingredients"),I(g,"id","prep"),I(T,"id","steps")},m(t,n){s(t,e,n),s(t,r,n),s(t,d,n),s(t,a,n),s(t,o,n),s(t,M,n),s(t,b,n),s(t,k,n),s(t,x,n),s(t,H,n),Q(v,t,n),s(t,L,n),s(t,g,n),s(t,C,n),s(t,y,n),s(t,w,n),s(t,T,n),s(t,P,n),s(t,$,n),O=!0},p(t,n){const B={};n&2&&(B.$$scope={dirty:n,ctx:t}),v.$set(B)},i(t){O||(W(v.$$.fragment,t),O=!0)},o(t){Y(v.$$.fragment,t),O=!1},d(t){t&&(l(e),l(r),l(d),l(a),l(o),l(M),l(b),l(k),l(x),l(H),l(L),l(g),l(C),l(y),l(w),l(T),l(P),l($)),J(v,t)}}}function lt(_){let e,p;const r=[_[0],G];let d={$$slots:{default:[st]},$$scope:{ctx:_}};for(let i=0;i{p(0,e=A(A({},e),F(r)))},e=F(e),[e]}class ct extends V{constructor(e){super(),tt(this,e,dt,lt,R,{})}}export{ct as default,G as metadata};
diff --git a/_app/immutable/chunks/Resolving CORS errors in SvelteKit.DZjzjE4e.js b/_app/immutable/chunks/Resolving CORS errors in SvelteKit.CqAnxeNa.js
similarity index 99%
rename from _app/immutable/chunks/Resolving CORS errors in SvelteKit.DZjzjE4e.js
rename to _app/immutable/chunks/Resolving CORS errors in SvelteKit.CqAnxeNa.js
index 9aecfe71ae..a0175de975 100644
--- a/_app/immutable/chunks/Resolving CORS errors in SvelteKit.DZjzjE4e.js
+++ b/_app/immutable/chunks/Resolving CORS errors in SvelteKit.CqAnxeNa.js
@@ -1,4 +1,4 @@
-import{s as Ws,p as As,q as Is,e as t,a as l,H as I,u as M,c as r,m as p,g as i,v as H,o as ys,i as e,n as Ns,f as o}from"./scheduler.ewBkyc9q.js";import{S as Ys,i as zs,c as Js,a as Vs,m as Xs,t as Gs,b as Zs,d as $s}from"./index.DpmaPz1F.js";import{g as sa,a as Ms}from"./spread.CgU5AtxT.js";import{M as aa}from"./MDSveXNoteLayout.Bx5vQYjx.js";function ea(S){let n,A="Web browsers try to protect the security of their users. One way they do this is by prohibiting scripts on one domain from interacting with resources on another domain by default. Sometimes as a developer, I want users to be able to interact with resources on my site from somewhere else:",h,d,k="Embedded media A widget or badge showing their data on another site Calling a public APIs from their browser (client-side) Sending analytics data to a 3rd-party analytics server ",c,y,Bs='Requesting a resource on one site from another is called a “cross-origin resource sharing” (CORS) request. While building Penguinsight (it’s a tool that enables developers to provide feedback on developer documentation) I had just such a need. Imagine this scenario:',X,v,Ds="a developer is reading the documentation on using an API from one of my customers. One of the steps doesn’t work, and they want to use the Penguinsight widget on the page to provide feedback. That feedback gets sent to the Penguinsight server, which is on a different domain than the documentation site.
",G,w,us="The user is requesting to access a resource (my API) cross-origin. Their browser makes a request to the Penguinsight server, but it’s not the POST /api/feedback
request made by my tool. Before that happens, the browser needs to make a “preflight request” to make sure the server allows the actual request. This is done by requesting OPTIONS /api/feedback
. The browser will only make the POST
request if the server tells it that the request is allowed.",Z,L,Ls=`const corsHeaders = {
+import{s as Ws,p as As,q as Is,e as t,a as l,H as I,u as M,c as r,m as p,g as i,v as H,o as ys,i as e,n as Ns,f as o}from"./scheduler.ewBkyc9q.js";import{S as Ys,i as zs,c as Js,a as Vs,m as Xs,t as Gs,b as Zs,d as $s}from"./index.DpmaPz1F.js";import{g as sa,a as Ms}from"./spread.CgU5AtxT.js";import{M as aa}from"./MDSveXNoteLayout.Dbh0E4KQ.js";function ea(S){let n,A="Web browsers try to protect the security of their users. One way they do this is by prohibiting scripts on one domain from interacting with resources on another domain by default. Sometimes as a developer, I want users to be able to interact with resources on my site from somewhere else:",h,d,k="Embedded media A widget or badge showing their data on another site Calling a public APIs from their browser (client-side) Sending analytics data to a 3rd-party analytics server ",c,y,Bs='Requesting a resource on one site from another is called a “cross-origin resource sharing” (CORS) request. While building Penguinsight (it’s a tool that enables developers to provide feedback on developer documentation) I had just such a need. Imagine this scenario:',X,v,Ds="a developer is reading the documentation on using an API from one of my customers. One of the steps doesn’t work, and they want to use the Penguinsight widget on the page to provide feedback. That feedback gets sent to the Penguinsight server, which is on a different domain than the documentation site.
",G,w,us="The user is requesting to access a resource (my API) cross-origin. Their browser makes a request to the Penguinsight server, but it’s not the POST /api/feedback
request made by my tool. Before that happens, the browser needs to make a “preflight request” to make sure the server allows the actual request. This is done by requesting OPTIONS /api/feedback
. The browser will only make the POST
request if the server tells it that the request is allowed.",Z,L,Ls=`const corsHeaders = {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'OPTIONS,POST',
};
`,_,j,_s=`
C++’s C++’s Mac tips',r,o,i="
Use OpenGraph meta tags to provide page previews on social media',h,k,o="You built a website to share something valuable with people. If other people find it valuable, they will share it too, on:",d,y,Q="
Providing type hints to API consumers',A,D,Es="Libraries with many configuration options commonly use an identity function to make it easier for users to configure them. This is typically done by exporting a function with a name like