💄 token-building script and output destinations

Nathan Sobo created

Just some organization here.

Change summary

styles/dist/core.json      |    0 
styles/dist/dark.json      |  130 ++--
styles/dist/light.json     |  238 ++++----
styles/dist/tokens.json    |  368 ++++++------
styles/package-lock.json   |  183 -----
styles/package.json        |    3 
styles/src/buildThemes.ts  |    2 
styles/src/buildTokens.ts  |   36 
styles/src/figma/core.json | 1155 ----------------------------------------
9 files changed, 417 insertions(+), 1,698 deletions(-)

Detailed changes

styles/src/figma/dark.json → styles/dist/dark.json 🔗

@@ -14,13 +14,13 @@
       "type": "color"
     },
     "muted": {
-      "value": "#636363",
-      "step": 550,
+      "value": "#808080",
+      "step": 450,
       "type": "color"
     },
     "placeholder": {
-      "value": "#2b2b2b",
-      "step": 750,
+      "value": "#474747",
+      "step": 650,
       "type": "color"
     },
     "active": {
@@ -81,7 +81,7 @@
       "type": "color"
     },
     "feature": {
-      "value": "#1096d3",
+      "value": "#2472f2",
       "step": 500,
       "type": "color"
     },
@@ -119,8 +119,8 @@
         "type": "color"
       },
       "active": {
-        "value": "#393939",
-        "step": 700,
+        "value": "#1c1c1c",
+        "step": 800,
         "type": "color"
       },
       "focused": {
@@ -146,8 +146,8 @@
         "type": "color"
       },
       "focused": {
-        "value": "#323232",
-        "step": 725,
+        "value": "#232323",
+        "step": 775,
         "type": "color"
       }
     },
@@ -158,13 +158,13 @@
         "type": "color"
       },
       "hovered": {
-        "value": "#070707",
-        "step": 875,
+        "value": "#ffffff14",
+        "step": 0,
         "type": "color"
       },
       "active": {
-        "value": "#0e0e0e",
-        "step": 850,
+        "value": "#ffffff1f",
+        "step": 0,
         "type": "color"
       },
       "focused": {
@@ -269,13 +269,13 @@
       "type": "color"
     },
     "secondary": {
-      "value": "#151515",
-      "step": 825,
+      "value": "#232323",
+      "step": 775,
       "type": "color"
     },
     "muted": {
-      "value": "#232323",
-      "step": 775,
+      "value": "#404040",
+      "step": 675,
       "type": "color"
     },
     "focused": {
@@ -316,24 +316,24 @@
       "type": "color"
     },
     "indent_guide": {
-      "value": "#232323",
-      "step": 775,
+      "value": "#404040",
+      "step": 675,
       "type": "color"
     },
     "indent_guide_active": {
-      "value": "#151515",
-      "step": 825,
+      "value": "#232323",
+      "step": 775,
       "type": "color"
     },
     "line": {
       "active": {
-        "value": "#0e0e0e",
-        "step": 850,
+        "value": "#ffffff12",
+        "step": 0,
         "type": "color"
       },
       "highlighted": {
-        "value": "#070707",
-        "step": 875,
+        "value": "#ffffff1f",
+        "step": 0,
         "type": "color"
       },
       "inserted": {
@@ -354,32 +354,32 @@
     },
     "highlight": {
       "selection": {
-        "value": "#103063",
-        "step": 800,
+        "value": "#2472f23d",
+        "step": 500,
         "type": "color"
       },
       "occurrence": {
-        "value": "#2b2b2b",
-        "step": 750,
+        "value": "#ffffff1f",
+        "step": 0,
         "type": "color"
       },
       "activeOccurrence": {
-        "value": "#393939",
-        "step": 700,
+        "value": "#ffffff29",
+        "step": 0,
         "type": "color"
       },
       "matchingBracket": {
-        "value": "#0e0e0e",
-        "step": 850,
+        "value": "#ffffff1f",
+        "step": 0,
         "type": "color"
       },
       "match": {
-        "value": "#0a2633",
-        "step": 900,
+        "value": "#1096d329",
+        "step": 500,
         "type": "color"
       },
       "activeMatch": {
-        "value": "#0e4158",
+        "value": "#0e415852",
         "step": 800,
         "type": "color"
       },
@@ -391,8 +391,8 @@
     },
     "gutter": {
       "primary": {
-        "value": "#636363",
-        "step": 550,
+        "value": "#474747",
+        "step": 650,
         "type": "color"
       },
       "active": {
@@ -465,13 +465,13 @@
         "type": "color"
       },
       "selectionColor": {
-        "value": "#103063",
-        "step": 800,
+        "value": "#2472f23d",
+        "step": 500,
         "type": "color"
       },
       "borderColor": {
-        "value": "#103063",
-        "step": 800,
+        "value": "#2472f2cc",
+        "step": 500,
         "type": "color"
       }
     },
@@ -487,34 +487,34 @@
         "type": "color"
       },
       "selectionColor": {
-        "value": "#38530f",
-        "step": 800,
+        "value": "#79ba163d",
+        "step": 500,
         "type": "color"
       },
       "borderColor": {
-        "value": "#79ba16",
+        "value": "#79ba16cc",
         "step": 500,
         "type": "color"
       }
     },
     "3": {
       "baseColor": {
-        "value": "#484bed",
+        "value": "#d430e0",
         "step": 500,
         "type": "color"
       },
       "cursorColor": {
-        "value": "#484bed",
+        "value": "#d430e0",
         "step": 500,
         "type": "color"
       },
       "selectionColor": {
-        "value": "#121269",
-        "step": 800,
+        "value": "#d430e03d",
+        "step": 500,
         "type": "color"
       },
       "borderColor": {
-        "value": "#484bed",
+        "value": "#d430e0cc",
         "step": 500,
         "type": "color"
       }
@@ -531,12 +531,12 @@
         "type": "color"
       },
       "selectionColor": {
-        "value": "#5d2f0e",
-        "step": 800,
+        "value": "#ee670a3d",
+        "step": 500,
         "type": "color"
       },
       "borderColor": {
-        "value": "#ee670a",
+        "value": "#ee670acc",
         "step": 500,
         "type": "color"
       }
@@ -553,12 +553,12 @@
         "type": "color"
       },
       "selectionColor": {
-        "value": "#3e1169",
-        "step": 800,
+        "value": "#993bf33d",
+        "step": 500,
         "type": "color"
       },
       "borderColor": {
-        "value": "#993bf3",
+        "value": "#993bf3cc",
         "step": 500,
         "type": "color"
       }
@@ -575,12 +575,12 @@
         "type": "color"
       },
       "selectionColor": {
-        "value": "#0e4f48",
-        "step": 800,
+        "value": "#16d6c13d",
+        "step": 400,
         "type": "color"
       },
       "borderColor": {
-        "value": "#16d6c1",
+        "value": "#16d6c1cc",
         "step": 400,
         "type": "color"
       }
@@ -597,12 +597,12 @@
         "type": "color"
       },
       "selectionColor": {
-        "value": "#fbc6e1",
-        "step": 100,
+        "value": "#ef59a33d",
+        "step": 400,
         "type": "color"
       },
       "borderColor": {
-        "value": "#ef59a3",
+        "value": "#ef59a3cc",
         "step": 400,
         "type": "color"
       }
@@ -619,12 +619,12 @@
         "type": "color"
       },
       "selectionColor": {
-        "value": "#fce9b7",
-        "step": 100,
+        "value": "#f7bf173d",
+        "step": 400,
         "type": "color"
       },
       "borderColor": {
-        "value": "#f7bf17",
+        "value": "#f7bf17cc",
         "step": 400,
         "type": "color"
       }

styles/src/figma/light.json → styles/dist/light.json 🔗

@@ -9,18 +9,18 @@
       "type": "color"
     },
     "secondary": {
-      "value": "#555555",
-      "step": 600,
+      "value": "#474747",
+      "step": 650,
       "type": "color"
     },
     "muted": {
-      "value": "#808080",
-      "step": 450,
+      "value": "#636363",
+      "step": 550,
       "type": "color"
     },
     "placeholder": {
-      "value": "#aaaaaa",
-      "step": 300,
+      "value": "#808080",
+      "step": 450,
       "type": "color"
     },
     "active": {
@@ -29,7 +29,7 @@
       "type": "color"
     },
     "feature": {
-      "value": "#2472f2",
+      "value": "#484bed",
       "step": 500,
       "type": "color"
     },
@@ -56,8 +56,8 @@
   },
   "icon": {
     "primary": {
-      "value": "#aaaaaa",
-      "step": 300,
+      "value": "#393939",
+      "step": 700,
       "type": "color"
     },
     "secondary": {
@@ -66,13 +66,13 @@
       "type": "color"
     },
     "muted": {
-      "value": "#555555",
-      "step": 600,
+      "value": "#9c9c9c",
+      "step": 350,
       "type": "color"
     },
     "placeholder": {
-      "value": "#393939",
-      "step": 700,
+      "value": "#aaaaaa",
+      "step": 300,
       "type": "color"
     },
     "active": {
@@ -81,8 +81,8 @@
       "type": "color"
     },
     "feature": {
-      "value": "#1179a8",
-      "step": 600,
+      "value": "#484bed",
+      "step": 500,
       "type": "color"
     },
     "ok": {
@@ -109,45 +109,45 @@
   "background": {
     "100": {
       "base": {
-        "value": "#e3e3e3",
-        "step": 100,
+        "value": "#eaeaea",
+        "step": 75,
         "type": "color"
       },
       "hovered": {
-        "value": "#d5d5d5",
-        "step": 150,
+        "value": "#e3e3e3",
+        "step": 100,
         "type": "color"
       },
       "active": {
-        "value": "#c6c6c6",
-        "step": 200,
+        "value": "#d5d5d5",
+        "step": 150,
         "type": "color"
       },
       "focused": {
-        "value": "#d5d5d5",
-        "step": 150,
+        "value": "#e3e3e3",
+        "step": 100,
         "type": "color"
       }
     },
     "300": {
       "base": {
-        "value": "#f1f1f1",
-        "step": 50,
+        "value": "#f8f8f8",
+        "step": 25,
         "type": "color"
       },
       "hovered": {
-        "value": "#e3e3e3",
-        "step": 100,
+        "value": "#eaeaea",
+        "step": 75,
         "type": "color"
       },
       "active": {
-        "value": "#d5d5d5",
-        "step": 150,
+        "value": "#dcdcdc",
+        "step": 125,
         "type": "color"
       },
       "focused": {
-        "value": "#e3e3e3",
-        "step": 100,
+        "value": "#eaeaea",
+        "step": 75,
         "type": "color"
       }
     },
@@ -158,18 +158,18 @@
         "type": "color"
       },
       "hovered": {
-        "value": "#f8f8f8",
-        "step": 25,
+        "value": "#00000008",
+        "step": 900,
         "type": "color"
       },
       "active": {
-        "value": "#f1f1f1",
-        "step": 50,
+        "value": "#0000000f",
+        "step": 900,
         "type": "color"
       },
       "focused": {
-        "value": "#eaeaea",
-        "step": 75,
+        "value": "#f1f1f1",
+        "step": 50,
         "type": "color"
       }
     },
@@ -264,18 +264,18 @@
   },
   "border": {
     "primary": {
-      "value": "#c6c6c6",
-      "step": 200,
+      "value": "#d5d5d5",
+      "step": 150,
       "type": "color"
     },
     "secondary": {
-      "value": "#e3e3e3",
-      "step": 100,
+      "value": "#d5d5d5",
+      "step": 150,
       "type": "color"
     },
     "muted": {
-      "value": "#f1f1f1",
-      "step": 50,
+      "value": "#e3e3e3",
+      "step": 100,
       "type": "color"
     },
     "focused": {
@@ -316,24 +316,24 @@
       "type": "color"
     },
     "indent_guide": {
-      "value": "#f1f1f1",
-      "step": 50,
+      "value": "#e3e3e3",
+      "step": 100,
       "type": "color"
     },
     "indent_guide_active": {
-      "value": "#e3e3e3",
-      "step": 100,
+      "value": "#d5d5d5",
+      "step": 150,
       "type": "color"
     },
     "line": {
       "active": {
-        "value": "#f1f1f1",
-        "step": 50,
+        "value": "#0000000f",
+        "step": 900,
         "type": "color"
       },
       "highlighted": {
-        "value": "#f1f1f1",
-        "step": 50,
+        "value": "#0000001f",
+        "step": 900,
         "type": "color"
       },
       "inserted": {
@@ -354,18 +354,18 @@
     },
     "highlight": {
       "selection": {
-        "value": "#c5dafc",
-        "step": 100,
+        "value": "#2472f23d",
+        "step": 500,
         "type": "color"
       },
       "occurrence": {
-        "value": "#f1f1f1",
-        "step": 50,
+        "value": "#0000000f",
+        "step": 900,
         "type": "color"
       },
       "activeOccurrence": {
-        "value": "#ffffff",
-        "step": 0,
+        "value": "#00000029",
+        "step": 900,
         "type": "color"
       },
       "matchingBracket": {
@@ -374,13 +374,13 @@
         "type": "color"
       },
       "match": {
-        "value": "#ffffff",
-        "step": 0,
+        "value": "#eb2d2d33",
+        "step": 500,
         "type": "color"
       },
       "activeMatch": {
-        "value": "#ffffff",
-        "step": 0,
+        "value": "#7274f35c",
+        "step": 400,
         "type": "color"
       },
       "related": {
@@ -404,59 +404,59 @@
   },
   "syntax": {
     "primary": {
-      "value": "#2b2b2b",
+      "value": "#1c1c1c",
       "type": "color"
     },
     "comment": {
-      "value": "#555555",
+      "value": "#717171",
       "type": "color"
     },
     "keyword": {
-      "value": "#103063",
+      "value": "#1819a1",
       "type": "color"
     },
     "function": {
-      "value": "#1b9447",
+      "value": "#f9812e",
       "type": "color"
     },
     "type": {
-      "value": "#138a7d",
+      "value": "#de900c",
       "type": "color"
     },
     "variant": {
-      "value": "#1179a8",
+      "value": "#1096d3",
       "type": "color"
     },
     "property": {
-      "value": "#134697",
+      "value": "#118a62",
       "type": "color"
     },
     "enum": {
-      "value": "#bb550e",
+      "value": "#eb2d2d",
       "type": "color"
     },
     "operator": {
-      "value": "#bb550e",
+      "value": "#eb2d2d",
       "type": "color"
     },
     "string": {
-      "value": "#bb550e",
+      "value": "#eb2d2d",
       "type": "color"
     },
     "number": {
-      "value": "#14a898",
+      "value": "#484bed",
       "type": "color"
     },
     "boolean": {
-      "value": "#b0740f",
+      "value": "#eb2d2d",
       "type": "color"
     }
   },
   "player": {
     "1": {
       "baseColor": {
-        "value": "#135acd",
-        "step": 600,
+        "value": "#2472f2",
+        "step": 500,
         "type": "color"
       },
       "cursorColor": {
@@ -465,101 +465,101 @@
         "type": "color"
       },
       "selectionColor": {
-        "value": "#c5dafc",
-        "step": 100,
+        "value": "#2472f23d",
+        "step": 500,
         "type": "color"
       },
       "borderColor": {
-        "value": "#2472f2",
+        "value": "#2472f2cc",
         "step": 500,
         "type": "color"
       }
     },
     "2": {
       "baseColor": {
-        "value": "#79ba16",
-        "step": 500,
+        "value": "#12d796",
+        "step": 400,
         "type": "color"
       },
       "cursorColor": {
-        "value": "#79ba16",
-        "step": 500,
+        "value": "#12d796",
+        "step": 400,
         "type": "color"
       },
       "selectionColor": {
-        "value": "#dffab5",
-        "step": 100,
+        "value": "#12d7963d",
+        "step": 400,
         "type": "color"
       },
       "borderColor": {
-        "value": "#79ba16",
-        "step": 500,
+        "value": "#12d796cc",
+        "step": 400,
         "type": "color"
       }
     },
     "3": {
       "baseColor": {
-        "value": "#484bed",
-        "step": 500,
+        "value": "#de57e8",
+        "step": 400,
         "type": "color"
       },
       "cursorColor": {
-        "value": "#484bed",
-        "step": 500,
+        "value": "#de57e8",
+        "step": 400,
         "type": "color"
       },
       "selectionColor": {
-        "value": "#cdcdfc",
-        "step": 100,
+        "value": "#de57e83d",
+        "step": 400,
         "type": "color"
       },
       "borderColor": {
-        "value": "#484bed",
-        "step": 500,
+        "value": "#de57e8cc",
+        "step": 400,
         "type": "color"
       }
     },
     "4": {
       "baseColor": {
-        "value": "#ee670a",
-        "step": 500,
+        "value": "#f9812e",
+        "step": 400,
         "type": "color"
       },
       "cursorColor": {
-        "value": "#ee670a",
-        "step": 500,
+        "value": "#f9812e",
+        "step": 400,
         "type": "color"
       },
       "selectionColor": {
-        "value": "#fcd6bd",
-        "step": 100,
+        "value": "#f9812e3d",
+        "step": 400,
         "type": "color"
       },
       "borderColor": {
-        "value": "#ee670a",
-        "step": 500,
+        "value": "#f9812ecc",
+        "step": 400,
         "type": "color"
       }
     },
     "5": {
       "baseColor": {
-        "value": "#993bf3",
-        "step": 500,
+        "value": "#b066f8",
+        "step": 400,
         "type": "color"
       },
       "cursorColor": {
-        "value": "#993bf3",
-        "step": 500,
+        "value": "#b066f8",
+        "step": 400,
         "type": "color"
       },
       "selectionColor": {
-        "value": "#e4cbfc",
-        "step": 100,
+        "value": "#b066f83d",
+        "step": 400,
         "type": "color"
       },
       "borderColor": {
-        "value": "#993bf3",
-        "step": 500,
+        "value": "#b066f8cc",
+        "step": 400,
         "type": "color"
       }
     },
@@ -575,12 +575,12 @@
         "type": "color"
       },
       "selectionColor": {
-        "value": "#b1faf2",
-        "step": 100,
+        "value": "#16d6c13d",
+        "step": 400,
         "type": "color"
       },
       "borderColor": {
-        "value": "#16d6c1",
+        "value": "#16d6c1cc",
         "step": 400,
         "type": "color"
       }
@@ -597,12 +597,12 @@
         "type": "color"
       },
       "selectionColor": {
-        "value": "#fbc6e1",
-        "step": 100,
+        "value": "#ef59a33d",
+        "step": 400,
         "type": "color"
       },
       "borderColor": {
-        "value": "#ef59a3",
+        "value": "#ef59a3cc",
         "step": 400,
         "type": "color"
       }
@@ -619,12 +619,12 @@
         "type": "color"
       },
       "selectionColor": {
-        "value": "#fce9b7",
-        "step": 100,
+        "value": "#f7bf173d",
+        "step": 400,
         "type": "color"
       },
       "borderColor": {
-        "value": "#f7bf17",
+        "value": "#f7bf17cc",
         "step": 400,
         "type": "color"
       }

styles/src/figma/tokens.json → styles/dist/tokens.json 🔗

@@ -1170,13 +1170,13 @@
         "type": "color"
       },
       "muted": {
-        "value": "#636363",
-        "step": 550,
+        "value": "#808080",
+        "step": 450,
         "type": "color"
       },
       "placeholder": {
-        "value": "#2b2b2b",
-        "step": 750,
+        "value": "#474747",
+        "step": 650,
         "type": "color"
       },
       "active": {
@@ -1237,7 +1237,7 @@
         "type": "color"
       },
       "feature": {
-        "value": "#1096d3",
+        "value": "#2472f2",
         "step": 500,
         "type": "color"
       },
@@ -1275,8 +1275,8 @@
           "type": "color"
         },
         "active": {
-          "value": "#393939",
-          "step": 700,
+          "value": "#1c1c1c",
+          "step": 800,
           "type": "color"
         },
         "focused": {
@@ -1302,8 +1302,8 @@
           "type": "color"
         },
         "focused": {
-          "value": "#323232",
-          "step": 725,
+          "value": "#232323",
+          "step": 775,
           "type": "color"
         }
       },
@@ -1314,13 +1314,13 @@
           "type": "color"
         },
         "hovered": {
-          "value": "#070707",
-          "step": 875,
+          "value": "#ffffff14",
+          "step": 0,
           "type": "color"
         },
         "active": {
-          "value": "#0e0e0e",
-          "step": 850,
+          "value": "#ffffff1f",
+          "step": 0,
           "type": "color"
         },
         "focused": {
@@ -1425,13 +1425,13 @@
         "type": "color"
       },
       "secondary": {
-        "value": "#151515",
-        "step": 825,
+        "value": "#232323",
+        "step": 775,
         "type": "color"
       },
       "muted": {
-        "value": "#232323",
-        "step": 775,
+        "value": "#404040",
+        "step": 675,
         "type": "color"
       },
       "focused": {
@@ -1472,24 +1472,24 @@
         "type": "color"
       },
       "indent_guide": {
-        "value": "#232323",
-        "step": 775,
+        "value": "#404040",
+        "step": 675,
         "type": "color"
       },
       "indent_guide_active": {
-        "value": "#151515",
-        "step": 825,
+        "value": "#232323",
+        "step": 775,
         "type": "color"
       },
       "line": {
         "active": {
-          "value": "#0e0e0e",
-          "step": 850,
+          "value": "#ffffff12",
+          "step": 0,
           "type": "color"
         },
         "highlighted": {
-          "value": "#070707",
-          "step": 875,
+          "value": "#ffffff1f",
+          "step": 0,
           "type": "color"
         },
         "inserted": {
@@ -1510,32 +1510,32 @@
       },
       "highlight": {
         "selection": {
-          "value": "#103063",
-          "step": 800,
+          "value": "#2472f23d",
+          "step": 500,
           "type": "color"
         },
         "occurrence": {
-          "value": "#2b2b2b",
-          "step": 750,
+          "value": "#ffffff1f",
+          "step": 0,
           "type": "color"
         },
         "activeOccurrence": {
-          "value": "#393939",
-          "step": 700,
+          "value": "#ffffff29",
+          "step": 0,
           "type": "color"
         },
         "matchingBracket": {
-          "value": "#0e0e0e",
-          "step": 850,
+          "value": "#ffffff1f",
+          "step": 0,
           "type": "color"
         },
         "match": {
-          "value": "#0a2633",
-          "step": 900,
+          "value": "#1096d329",
+          "step": 500,
           "type": "color"
         },
         "activeMatch": {
-          "value": "#0e4158",
+          "value": "#0e415852",
           "step": 800,
           "type": "color"
         },
@@ -1547,8 +1547,8 @@
       },
       "gutter": {
         "primary": {
-          "value": "#636363",
-          "step": 550,
+          "value": "#474747",
+          "step": 650,
           "type": "color"
         },
         "active": {
@@ -1621,13 +1621,13 @@
           "type": "color"
         },
         "selectionColor": {
-          "value": "#103063",
-          "step": 800,
+          "value": "#2472f23d",
+          "step": 500,
           "type": "color"
         },
         "borderColor": {
-          "value": "#103063",
-          "step": 800,
+          "value": "#2472f2cc",
+          "step": 500,
           "type": "color"
         }
       },
@@ -1643,34 +1643,34 @@
           "type": "color"
         },
         "selectionColor": {
-          "value": "#38530f",
-          "step": 800,
+          "value": "#79ba163d",
+          "step": 500,
           "type": "color"
         },
         "borderColor": {
-          "value": "#79ba16",
+          "value": "#79ba16cc",
           "step": 500,
           "type": "color"
         }
       },
       "3": {
         "baseColor": {
-          "value": "#484bed",
+          "value": "#d430e0",
           "step": 500,
           "type": "color"
         },
         "cursorColor": {
-          "value": "#484bed",
+          "value": "#d430e0",
           "step": 500,
           "type": "color"
         },
         "selectionColor": {
-          "value": "#121269",
-          "step": 800,
+          "value": "#d430e03d",
+          "step": 500,
           "type": "color"
         },
         "borderColor": {
-          "value": "#484bed",
+          "value": "#d430e0cc",
           "step": 500,
           "type": "color"
         }
@@ -1687,12 +1687,12 @@
           "type": "color"
         },
         "selectionColor": {
-          "value": "#5d2f0e",
-          "step": 800,
+          "value": "#ee670a3d",
+          "step": 500,
           "type": "color"
         },
         "borderColor": {
-          "value": "#ee670a",
+          "value": "#ee670acc",
           "step": 500,
           "type": "color"
         }
@@ -1709,12 +1709,12 @@
           "type": "color"
         },
         "selectionColor": {
-          "value": "#3e1169",
-          "step": 800,
+          "value": "#993bf33d",
+          "step": 500,
           "type": "color"
         },
         "borderColor": {
-          "value": "#993bf3",
+          "value": "#993bf3cc",
           "step": 500,
           "type": "color"
         }
@@ -1731,12 +1731,12 @@
           "type": "color"
         },
         "selectionColor": {
-          "value": "#0e4f48",
-          "step": 800,
+          "value": "#16d6c13d",
+          "step": 400,
           "type": "color"
         },
         "borderColor": {
-          "value": "#16d6c1",
+          "value": "#16d6c1cc",
           "step": 400,
           "type": "color"
         }
@@ -1753,12 +1753,12 @@
           "type": "color"
         },
         "selectionColor": {
-          "value": "#fbc6e1",
-          "step": 100,
+          "value": "#ef59a33d",
+          "step": 400,
           "type": "color"
         },
         "borderColor": {
-          "value": "#ef59a3",
+          "value": "#ef59a3cc",
           "step": 400,
           "type": "color"
         }
@@ -1775,12 +1775,12 @@
           "type": "color"
         },
         "selectionColor": {
-          "value": "#fce9b7",
-          "step": 100,
+          "value": "#f7bf173d",
+          "step": 400,
           "type": "color"
         },
         "borderColor": {
-          "value": "#f7bf17",
+          "value": "#f7bf17cc",
           "step": 400,
           "type": "color"
         }
@@ -1802,18 +1802,18 @@
         "type": "color"
       },
       "secondary": {
-        "value": "#555555",
-        "step": 600,
+        "value": "#474747",
+        "step": 650,
         "type": "color"
       },
       "muted": {
-        "value": "#808080",
-        "step": 450,
+        "value": "#636363",
+        "step": 550,
         "type": "color"
       },
       "placeholder": {
-        "value": "#aaaaaa",
-        "step": 300,
+        "value": "#808080",
+        "step": 450,
         "type": "color"
       },
       "active": {
@@ -1822,7 +1822,7 @@
         "type": "color"
       },
       "feature": {
-        "value": "#2472f2",
+        "value": "#484bed",
         "step": 500,
         "type": "color"
       },
@@ -1849,8 +1849,8 @@
     },
     "icon": {
       "primary": {
-        "value": "#aaaaaa",
-        "step": 300,
+        "value": "#393939",
+        "step": 700,
         "type": "color"
       },
       "secondary": {
@@ -1859,13 +1859,13 @@
         "type": "color"
       },
       "muted": {
-        "value": "#555555",
-        "step": 600,
+        "value": "#9c9c9c",
+        "step": 350,
         "type": "color"
       },
       "placeholder": {
-        "value": "#393939",
-        "step": 700,
+        "value": "#aaaaaa",
+        "step": 300,
         "type": "color"
       },
       "active": {
@@ -1874,8 +1874,8 @@
         "type": "color"
       },
       "feature": {
-        "value": "#1179a8",
-        "step": 600,
+        "value": "#484bed",
+        "step": 500,
         "type": "color"
       },
       "ok": {
@@ -1902,45 +1902,45 @@
     "background": {
       "100": {
         "base": {
-          "value": "#e3e3e3",
-          "step": 100,
+          "value": "#eaeaea",
+          "step": 75,
           "type": "color"
         },
         "hovered": {
-          "value": "#d5d5d5",
-          "step": 150,
+          "value": "#e3e3e3",
+          "step": 100,
           "type": "color"
         },
         "active": {
-          "value": "#c6c6c6",
-          "step": 200,
+          "value": "#d5d5d5",
+          "step": 150,
           "type": "color"
         },
         "focused": {
-          "value": "#d5d5d5",
-          "step": 150,
+          "value": "#e3e3e3",
+          "step": 100,
           "type": "color"
         }
       },
       "300": {
         "base": {
-          "value": "#f1f1f1",
-          "step": 50,
+          "value": "#f8f8f8",
+          "step": 25,
           "type": "color"
         },
         "hovered": {
-          "value": "#e3e3e3",
-          "step": 100,
+          "value": "#eaeaea",
+          "step": 75,
           "type": "color"
         },
         "active": {
-          "value": "#d5d5d5",
-          "step": 150,
+          "value": "#dcdcdc",
+          "step": 125,
           "type": "color"
         },
         "focused": {
-          "value": "#e3e3e3",
-          "step": 100,
+          "value": "#eaeaea",
+          "step": 75,
           "type": "color"
         }
       },
@@ -1951,18 +1951,18 @@
           "type": "color"
         },
         "hovered": {
-          "value": "#f8f8f8",
-          "step": 25,
+          "value": "#00000008",
+          "step": 900,
           "type": "color"
         },
         "active": {
-          "value": "#f1f1f1",
-          "step": 50,
+          "value": "#0000000f",
+          "step": 900,
           "type": "color"
         },
         "focused": {
-          "value": "#eaeaea",
-          "step": 75,
+          "value": "#f1f1f1",
+          "step": 50,
           "type": "color"
         }
       },
@@ -2057,18 +2057,18 @@
     },
     "border": {
       "primary": {
-        "value": "#c6c6c6",
-        "step": 200,
+        "value": "#d5d5d5",
+        "step": 150,
         "type": "color"
       },
       "secondary": {
-        "value": "#e3e3e3",
-        "step": 100,
+        "value": "#d5d5d5",
+        "step": 150,
         "type": "color"
       },
       "muted": {
-        "value": "#f1f1f1",
-        "step": 50,
+        "value": "#e3e3e3",
+        "step": 100,
         "type": "color"
       },
       "focused": {
@@ -2109,24 +2109,24 @@
         "type": "color"
       },
       "indent_guide": {
-        "value": "#f1f1f1",
-        "step": 50,
+        "value": "#e3e3e3",
+        "step": 100,
         "type": "color"
       },
       "indent_guide_active": {
-        "value": "#e3e3e3",
-        "step": 100,
+        "value": "#d5d5d5",
+        "step": 150,
         "type": "color"
       },
       "line": {
         "active": {
-          "value": "#f1f1f1",
-          "step": 50,
+          "value": "#0000000f",
+          "step": 900,
           "type": "color"
         },
         "highlighted": {
-          "value": "#f1f1f1",
-          "step": 50,
+          "value": "#0000001f",
+          "step": 900,
           "type": "color"
         },
         "inserted": {
@@ -2147,18 +2147,18 @@
       },
       "highlight": {
         "selection": {
-          "value": "#c5dafc",
-          "step": 100,
+          "value": "#2472f23d",
+          "step": 500,
           "type": "color"
         },
         "occurrence": {
-          "value": "#f1f1f1",
-          "step": 50,
+          "value": "#0000000f",
+          "step": 900,
           "type": "color"
         },
         "activeOccurrence": {
-          "value": "#ffffff",
-          "step": 0,
+          "value": "#00000029",
+          "step": 900,
           "type": "color"
         },
         "matchingBracket": {
@@ -2167,13 +2167,13 @@
           "type": "color"
         },
         "match": {
-          "value": "#ffffff",
-          "step": 0,
+          "value": "#eb2d2d33",
+          "step": 500,
           "type": "color"
         },
         "activeMatch": {
-          "value": "#ffffff",
-          "step": 0,
+          "value": "#7274f35c",
+          "step": 400,
           "type": "color"
         },
         "related": {
@@ -2197,59 +2197,59 @@
     },
     "syntax": {
       "primary": {
-        "value": "#2b2b2b",
+        "value": "#1c1c1c",
         "type": "color"
       },
       "comment": {
-        "value": "#555555",
+        "value": "#717171",
         "type": "color"
       },
       "keyword": {
-        "value": "#103063",
+        "value": "#1819a1",
         "type": "color"
       },
       "function": {
-        "value": "#1b9447",
+        "value": "#f9812e",
         "type": "color"
       },
       "type": {
-        "value": "#138a7d",
+        "value": "#de900c",
         "type": "color"
       },
       "variant": {
-        "value": "#1179a8",
+        "value": "#1096d3",
         "type": "color"
       },
       "property": {
-        "value": "#134697",
+        "value": "#118a62",
         "type": "color"
       },
       "enum": {
-        "value": "#bb550e",
+        "value": "#eb2d2d",
         "type": "color"
       },
       "operator": {
-        "value": "#bb550e",
+        "value": "#eb2d2d",
         "type": "color"
       },
       "string": {
-        "value": "#bb550e",
+        "value": "#eb2d2d",
         "type": "color"
       },
       "number": {
-        "value": "#14a898",
+        "value": "#484bed",
         "type": "color"
       },
       "boolean": {
-        "value": "#b0740f",
+        "value": "#eb2d2d",
         "type": "color"
       }
     },
     "player": {
       "1": {
         "baseColor": {
-          "value": "#135acd",
-          "step": 600,
+          "value": "#2472f2",
+          "step": 500,
           "type": "color"
         },
         "cursorColor": {
@@ -2258,101 +2258,101 @@
           "type": "color"
         },
         "selectionColor": {
-          "value": "#c5dafc",
-          "step": 100,
+          "value": "#2472f23d",
+          "step": 500,
           "type": "color"
         },
         "borderColor": {
-          "value": "#2472f2",
+          "value": "#2472f2cc",
           "step": 500,
           "type": "color"
         }
       },
       "2": {
         "baseColor": {
-          "value": "#79ba16",
-          "step": 500,
+          "value": "#12d796",
+          "step": 400,
           "type": "color"
         },
         "cursorColor": {
-          "value": "#79ba16",
-          "step": 500,
+          "value": "#12d796",
+          "step": 400,
           "type": "color"
         },
         "selectionColor": {
-          "value": "#dffab5",
-          "step": 100,
+          "value": "#12d7963d",
+          "step": 400,
           "type": "color"
         },
         "borderColor": {
-          "value": "#79ba16",
-          "step": 500,
+          "value": "#12d796cc",
+          "step": 400,
           "type": "color"
         }
       },
       "3": {
         "baseColor": {
-          "value": "#484bed",
-          "step": 500,
+          "value": "#de57e8",
+          "step": 400,
           "type": "color"
         },
         "cursorColor": {
-          "value": "#484bed",
-          "step": 500,
+          "value": "#de57e8",
+          "step": 400,
           "type": "color"
         },
         "selectionColor": {
-          "value": "#cdcdfc",
-          "step": 100,
+          "value": "#de57e83d",
+          "step": 400,
           "type": "color"
         },
         "borderColor": {
-          "value": "#484bed",
-          "step": 500,
+          "value": "#de57e8cc",
+          "step": 400,
           "type": "color"
         }
       },
       "4": {
         "baseColor": {
-          "value": "#ee670a",
-          "step": 500,
+          "value": "#f9812e",
+          "step": 400,
           "type": "color"
         },
         "cursorColor": {
-          "value": "#ee670a",
-          "step": 500,
+          "value": "#f9812e",
+          "step": 400,
           "type": "color"
         },
         "selectionColor": {
-          "value": "#fcd6bd",
-          "step": 100,
+          "value": "#f9812e3d",
+          "step": 400,
           "type": "color"
         },
         "borderColor": {
-          "value": "#ee670a",
-          "step": 500,
+          "value": "#f9812ecc",
+          "step": 400,
           "type": "color"
         }
       },
       "5": {
         "baseColor": {
-          "value": "#993bf3",
-          "step": 500,
+          "value": "#b066f8",
+          "step": 400,
           "type": "color"
         },
         "cursorColor": {
-          "value": "#993bf3",
-          "step": 500,
+          "value": "#b066f8",
+          "step": 400,
           "type": "color"
         },
         "selectionColor": {
-          "value": "#e4cbfc",
-          "step": 100,
+          "value": "#b066f83d",
+          "step": 400,
           "type": "color"
         },
         "borderColor": {
-          "value": "#993bf3",
-          "step": 500,
+          "value": "#b066f8cc",
+          "step": 400,
           "type": "color"
         }
       },
@@ -2368,12 +2368,12 @@
           "type": "color"
         },
         "selectionColor": {
-          "value": "#b1faf2",
-          "step": 100,
+          "value": "#16d6c13d",
+          "step": 400,
           "type": "color"
         },
         "borderColor": {
-          "value": "#16d6c1",
+          "value": "#16d6c1cc",
           "step": 400,
           "type": "color"
         }
@@ -2390,12 +2390,12 @@
           "type": "color"
         },
         "selectionColor": {
-          "value": "#fbc6e1",
-          "step": 100,
+          "value": "#ef59a33d",
+          "step": 400,
           "type": "color"
         },
         "borderColor": {
-          "value": "#ef59a3",
+          "value": "#ef59a3cc",
           "step": 400,
           "type": "color"
         }
@@ -2412,12 +2412,12 @@
           "type": "color"
         },
         "selectionColor": {
-          "value": "#fce9b7",
-          "step": 100,
+          "value": "#f7bf173d",
+          "step": 400,
           "type": "color"
         },
         "borderColor": {
-          "value": "#f7bf17",
+          "value": "#f7bf17cc",
           "step": 400,
           "type": "color"
         }

styles/package-lock.json 🔗

@@ -12,9 +12,7 @@
                 "@types/chroma-js": "^2.1.3",
                 "@types/node": "^17.0.23",
                 "case-anything": "^2.1.10",
-                "chroma-js": "^2.4.2"
-            },
-            "devDependencies": {
+                "chroma-js": "^2.4.2",
                 "nodemon": "^2.0.15",
                 "ts-node": "^10.7.0"
             }
@@ -23,7 +21,6 @@
             "version": "0.8.0",
             "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz",
             "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==",
-            "dev": true,
             "engines": {
                 "node": ">= 12"
             }
@@ -32,7 +29,6 @@
             "version": "0.7.0",
             "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz",
             "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==",
-            "dev": true,
             "dependencies": {
                 "@cspotcode/source-map-consumer": "0.8.0"
             },
@@ -44,7 +40,6 @@
             "version": "0.14.0",
             "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
             "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
-            "dev": true,
             "engines": {
                 "node": ">=6"
             }
@@ -53,7 +48,6 @@
             "version": "1.1.2",
             "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
             "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
-            "dev": true,
             "dependencies": {
                 "defer-to-connect": "^1.0.1"
             },
@@ -64,26 +58,22 @@
         "node_modules/@tsconfig/node10": {
             "version": "1.0.8",
             "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz",
-            "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==",
-            "dev": true
+            "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg=="
         },
         "node_modules/@tsconfig/node12": {
             "version": "1.0.9",
             "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz",
-            "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==",
-            "dev": true
+            "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw=="
         },
         "node_modules/@tsconfig/node14": {
             "version": "1.0.1",
             "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz",
-            "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==",
-            "dev": true
+            "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg=="
         },
         "node_modules/@tsconfig/node16": {
             "version": "1.0.2",
             "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz",
-            "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==",
-            "dev": true
+            "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA=="
         },
         "node_modules/@types/chroma-js": {
             "version": "2.1.3",
@@ -98,14 +88,12 @@
         "node_modules/abbrev": {
             "version": "1.1.1",
             "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
-            "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
-            "dev": true
+            "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
         },
         "node_modules/acorn": {
             "version": "8.7.0",
             "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz",
             "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==",
-            "dev": true,
             "bin": {
                 "acorn": "bin/acorn"
             },
@@ -117,7 +105,6 @@
             "version": "8.2.0",
             "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
             "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
-            "dev": true,
             "engines": {
                 "node": ">=0.4.0"
             }
@@ -126,7 +113,6 @@
             "version": "3.0.1",
             "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
             "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
-            "dev": true,
             "dependencies": {
                 "string-width": "^4.1.0"
             }
@@ -135,7 +121,6 @@
             "version": "5.0.1",
             "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
             "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
-            "dev": true,
             "engines": {
                 "node": ">=8"
             }
@@ -144,7 +129,6 @@
             "version": "4.3.0",
             "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
             "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-            "dev": true,
             "dependencies": {
                 "color-convert": "^2.0.1"
             },
@@ -159,7 +143,6 @@
             "version": "3.1.2",
             "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
             "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
-            "dev": true,
             "dependencies": {
                 "normalize-path": "^3.0.0",
                 "picomatch": "^2.0.4"
@@ -171,20 +154,17 @@
         "node_modules/arg": {
             "version": "4.1.3",
             "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
-            "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
-            "dev": true
+            "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="
         },
         "node_modules/balanced-match": {
             "version": "1.0.2",
             "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
-            "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
-            "dev": true
+            "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
         },
         "node_modules/binary-extensions": {
             "version": "2.2.0",
             "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
             "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
-            "dev": true,
             "engines": {
                 "node": ">=8"
             }
@@ -193,7 +173,6 @@
             "version": "5.1.2",
             "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz",
             "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==",
-            "dev": true,
             "dependencies": {
                 "ansi-align": "^3.0.0",
                 "camelcase": "^6.2.0",
@@ -215,7 +194,6 @@
             "version": "1.1.11",
             "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
             "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
-            "dev": true,
             "dependencies": {
                 "balanced-match": "^1.0.0",
                 "concat-map": "0.0.1"
@@ -225,7 +203,6 @@
             "version": "3.0.2",
             "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
             "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
-            "dev": true,
             "dependencies": {
                 "fill-range": "^7.0.1"
             },
@@ -237,7 +214,6 @@
             "version": "6.1.0",
             "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
             "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
-            "dev": true,
             "dependencies": {
                 "clone-response": "^1.0.2",
                 "get-stream": "^5.1.0",
@@ -255,7 +231,6 @@
             "version": "5.2.0",
             "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
             "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
-            "dev": true,
             "dependencies": {
                 "pump": "^3.0.0"
             },
@@ -270,7 +245,6 @@
             "version": "2.0.0",
             "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
             "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
-            "dev": true,
             "engines": {
                 "node": ">=8"
             }
@@ -279,7 +253,6 @@
             "version": "6.3.0",
             "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
             "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
-            "dev": true,
             "engines": {
                 "node": ">=10"
             },
@@ -302,7 +275,6 @@
             "version": "4.1.2",
             "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
             "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-            "dev": true,
             "dependencies": {
                 "ansi-styles": "^4.1.0",
                 "supports-color": "^7.1.0"
@@ -318,7 +290,6 @@
             "version": "4.0.0",
             "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
             "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-            "dev": true,
             "engines": {
                 "node": ">=8"
             }
@@ -327,7 +298,6 @@
             "version": "7.2.0",
             "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
             "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-            "dev": true,
             "dependencies": {
                 "has-flag": "^4.0.0"
             },
@@ -339,7 +309,6 @@
             "version": "3.5.3",
             "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
             "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
-            "dev": true,
             "funding": [
                 {
                     "type": "individual",
@@ -370,14 +339,12 @@
         "node_modules/ci-info": {
             "version": "2.0.0",
             "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
-            "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
-            "dev": true
+            "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
         },
         "node_modules/cli-boxes": {
             "version": "2.2.1",
             "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz",
             "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==",
-            "dev": true,
             "engines": {
                 "node": ">=6"
             },
@@ -389,7 +356,6 @@
             "version": "1.0.2",
             "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
             "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
-            "dev": true,
             "dependencies": {
                 "mimic-response": "^1.0.0"
             }
@@ -398,7 +364,6 @@
             "version": "2.0.1",
             "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
             "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-            "dev": true,
             "dependencies": {
                 "color-name": "~1.1.4"
             },
@@ -409,20 +374,17 @@
         "node_modules/color-name": {
             "version": "1.1.4",
             "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
-            "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-            "dev": true
+            "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
         },
         "node_modules/concat-map": {
             "version": "0.0.1",
             "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
-            "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
-            "dev": true
+            "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
         },
         "node_modules/configstore": {
             "version": "5.0.1",
             "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
             "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==",
-            "dev": true,
             "dependencies": {
                 "dot-prop": "^5.2.0",
                 "graceful-fs": "^4.1.2",
@@ -438,14 +400,12 @@
         "node_modules/create-require": {
             "version": "1.1.1",
             "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
-            "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
-            "dev": true
+            "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="
         },
         "node_modules/crypto-random-string": {
             "version": "2.0.0",
             "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
             "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
-            "dev": true,
             "engines": {
                 "node": ">=8"
             }
@@ -454,7 +414,6 @@
             "version": "3.2.7",
             "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
             "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
-            "dev": true,
             "dependencies": {
                 "ms": "^2.1.1"
             }
@@ -463,7 +422,6 @@
             "version": "3.3.0",
             "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
             "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
-            "dev": true,
             "dependencies": {
                 "mimic-response": "^1.0.0"
             },
@@ -475,7 +433,6 @@
             "version": "0.6.0",
             "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
             "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
-            "dev": true,
             "engines": {
                 "node": ">=4.0.0"
             }
@@ -483,14 +440,12 @@
         "node_modules/defer-to-connect": {
             "version": "1.1.3",
             "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
-            "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==",
-            "dev": true
+            "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ=="
         },
         "node_modules/diff": {
             "version": "4.0.2",
             "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
             "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
-            "dev": true,
             "engines": {
                 "node": ">=0.3.1"
             }
@@ -499,7 +454,6 @@
             "version": "5.3.0",
             "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
             "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
-            "dev": true,
             "dependencies": {
                 "is-obj": "^2.0.0"
             },
@@ -510,20 +464,17 @@
         "node_modules/duplexer3": {
             "version": "0.1.4",
             "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
-            "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
-            "dev": true
+            "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
         },
         "node_modules/emoji-regex": {
             "version": "8.0.0",
             "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
-            "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
-            "dev": true
+            "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
         },
         "node_modules/end-of-stream": {
             "version": "1.4.4",
             "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
             "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
-            "dev": true,
             "dependencies": {
                 "once": "^1.4.0"
             }
@@ -532,7 +483,6 @@
             "version": "2.1.1",
             "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz",
             "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==",
-            "dev": true,
             "engines": {
                 "node": ">=8"
             }
@@ -541,7 +491,6 @@
             "version": "7.0.1",
             "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
             "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
-            "dev": true,
             "dependencies": {
                 "to-regex-range": "^5.0.1"
             },
@@ -553,7 +502,6 @@
             "version": "2.3.2",
             "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
             "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
-            "dev": true,
             "hasInstallScript": true,
             "optional": true,
             "os": [
@@ -567,7 +515,6 @@
             "version": "4.1.0",
             "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
             "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
-            "dev": true,
             "dependencies": {
                 "pump": "^3.0.0"
             },
@@ -579,7 +526,6 @@
             "version": "5.1.2",
             "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
             "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
-            "dev": true,
             "dependencies": {
                 "is-glob": "^4.0.1"
             },
@@ -591,7 +537,6 @@
             "version": "3.0.0",
             "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz",
             "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==",
-            "dev": true,
             "dependencies": {
                 "ini": "2.0.0"
             },
@@ -606,7 +551,6 @@
             "version": "9.6.0",
             "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
             "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
-            "dev": true,
             "dependencies": {
                 "@sindresorhus/is": "^0.14.0",
                 "@szmarczak/http-timer": "^1.1.2",
@@ -627,14 +571,12 @@
         "node_modules/graceful-fs": {
             "version": "4.2.9",
             "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz",
-            "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==",
-            "dev": true
+            "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ=="
         },
         "node_modules/has-flag": {
             "version": "3.0.0",
             "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
             "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
-            "dev": true,
             "engines": {
                 "node": ">=4"
             }
@@ -643,7 +585,6 @@
             "version": "2.1.0",
             "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz",
             "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==",
-            "dev": true,
             "engines": {
                 "node": ">=8"
             }
@@ -651,20 +592,17 @@
         "node_modules/http-cache-semantics": {
             "version": "4.1.0",
             "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
-            "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
-            "dev": true
+            "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="
         },
         "node_modules/ignore-by-default": {
             "version": "1.0.1",
             "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
-            "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=",
-            "dev": true
+            "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk="
         },
         "node_modules/import-lazy": {
             "version": "2.1.0",
             "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
             "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=",
-            "dev": true,
             "engines": {
                 "node": ">=4"
             }
@@ -673,7 +611,6 @@
             "version": "0.1.4",
             "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
             "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
-            "dev": true,
             "engines": {
                 "node": ">=0.8.19"
             }
@@ -682,7 +619,6 @@
             "version": "2.0.0",
             "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
             "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
-            "dev": true,
             "engines": {
                 "node": ">=10"
             }
@@ -691,7 +627,6 @@
             "version": "2.1.0",
             "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
             "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
-            "dev": true,
             "dependencies": {
                 "binary-extensions": "^2.0.0"
             },
@@ -703,7 +638,6 @@
             "version": "2.0.0",
             "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
             "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
-            "dev": true,
             "dependencies": {
                 "ci-info": "^2.0.0"
             },
@@ -715,7 +649,6 @@
             "version": "2.1.1",
             "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
             "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
-            "dev": true,
             "engines": {
                 "node": ">=0.10.0"
             }
@@ -724,7 +657,6 @@
             "version": "3.0.0",
             "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
             "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
-            "dev": true,
             "engines": {
                 "node": ">=8"
             }
@@ -733,7 +665,6 @@
             "version": "4.0.3",
             "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
             "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
-            "dev": true,
             "dependencies": {
                 "is-extglob": "^2.1.1"
             },
@@ -745,7 +676,6 @@
             "version": "0.4.0",
             "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz",
             "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==",
-            "dev": true,
             "dependencies": {
                 "global-dirs": "^3.0.0",
                 "is-path-inside": "^3.0.2"
@@ -761,7 +691,6 @@
             "version": "5.0.0",
             "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz",
             "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==",
-            "dev": true,
             "engines": {
                 "node": ">=10"
             },
@@ -773,7 +702,6 @@
             "version": "7.0.0",
             "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
             "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
-            "dev": true,
             "engines": {
                 "node": ">=0.12.0"
             }
@@ -782,7 +710,6 @@
             "version": "2.0.0",
             "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
             "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
-            "dev": true,
             "engines": {
                 "node": ">=8"
             }
@@ -791,7 +718,6 @@
             "version": "3.0.3",
             "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
             "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
-            "dev": true,
             "engines": {
                 "node": ">=8"
             }
@@ -799,26 +725,22 @@
         "node_modules/is-typedarray": {
             "version": "1.0.0",
             "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
-            "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
-            "dev": true
+            "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
         },
         "node_modules/is-yarn-global": {
             "version": "0.3.0",
             "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz",
-            "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==",
-            "dev": true
+            "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw=="
         },
         "node_modules/json-buffer": {
             "version": "3.0.0",
             "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
-            "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=",
-            "dev": true
+            "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
         },
         "node_modules/keyv": {
             "version": "3.1.0",
             "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
             "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
-            "dev": true,
             "dependencies": {
                 "json-buffer": "3.0.0"
             }
@@ -827,7 +749,6 @@
             "version": "5.1.0",
             "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
             "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==",
-            "dev": true,
             "dependencies": {
                 "package-json": "^6.3.0"
             },
@@ -839,7 +760,6 @@
             "version": "1.0.1",
             "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
             "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
-            "dev": true,
             "engines": {
                 "node": ">=0.10.0"
             }
@@ -848,7 +768,6 @@
             "version": "6.0.0",
             "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
             "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-            "dev": true,
             "dependencies": {
                 "yallist": "^4.0.0"
             },
@@ -860,7 +779,6 @@
             "version": "3.1.0",
             "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
             "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
-            "dev": true,
             "dependencies": {
                 "semver": "^6.0.0"
             },
@@ -875,7 +793,6 @@
             "version": "6.3.0",
             "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
             "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
-            "dev": true,
             "bin": {
                 "semver": "bin/semver.js"
             }
@@ -883,14 +800,12 @@
         "node_modules/make-error": {
             "version": "1.3.6",
             "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
-            "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
-            "dev": true
+            "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="
         },
         "node_modules/mimic-response": {
             "version": "1.0.1",
             "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
             "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
-            "dev": true,
             "engines": {
                 "node": ">=4"
             }
@@ -899,7 +814,6 @@
             "version": "3.1.2",
             "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
             "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
-            "dev": true,
             "dependencies": {
                 "brace-expansion": "^1.1.7"
             },
@@ -910,20 +824,17 @@
         "node_modules/minimist": {
             "version": "1.2.6",
             "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
-            "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
-            "dev": true
+            "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
         },
         "node_modules/ms": {
             "version": "2.1.3",
             "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
-            "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
-            "dev": true
+            "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
         },
         "node_modules/nodemon": {
             "version": "2.0.15",
             "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz",
             "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==",
-            "dev": true,
             "hasInstallScript": true,
             "dependencies": {
                 "chokidar": "^3.5.2",
@@ -952,7 +863,6 @@
             "version": "1.0.10",
             "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
             "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
-            "dev": true,
             "dependencies": {
                 "abbrev": "1"
             },
@@ -967,7 +877,6 @@
             "version": "3.0.0",
             "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
             "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
-            "dev": true,
             "engines": {
                 "node": ">=0.10.0"
             }
@@ -976,7 +885,6 @@
             "version": "4.5.1",
             "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
             "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
-            "dev": true,
             "engines": {
                 "node": ">=8"
             }
@@ -985,7 +893,6 @@
             "version": "1.4.0",
             "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
             "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
-            "dev": true,
             "dependencies": {
                 "wrappy": "1"
             }
@@ -994,7 +901,6 @@
             "version": "1.1.0",
             "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
             "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
-            "dev": true,
             "engines": {
                 "node": ">=6"
             }
@@ -1003,7 +909,6 @@
             "version": "6.5.0",
             "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz",
             "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==",
-            "dev": true,
             "dependencies": {
                 "got": "^9.6.0",
                 "registry-auth-token": "^4.0.0",
@@ -1018,7 +923,6 @@
             "version": "6.3.0",
             "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
             "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
-            "dev": true,
             "bin": {
                 "semver": "bin/semver.js"
             }
@@ -1027,7 +931,6 @@
             "version": "2.3.1",
             "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
             "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
-            "dev": true,
             "engines": {
                 "node": ">=8.6"
             },
@@ -1039,7 +942,6 @@
             "version": "2.0.0",
             "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
             "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
-            "dev": true,
             "engines": {
                 "node": ">=4"
             }
@@ -1047,14 +949,12 @@
         "node_modules/pstree.remy": {
             "version": "1.1.8",
             "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
-            "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==",
-            "dev": true
+            "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w=="
         },
         "node_modules/pump": {
             "version": "3.0.0",
             "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
             "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
-            "dev": true,
             "dependencies": {
                 "end-of-stream": "^1.1.0",
                 "once": "^1.3.1"
@@ -1064,7 +964,6 @@
             "version": "2.1.1",
             "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz",
             "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==",
-            "dev": true,
             "dependencies": {
                 "escape-goat": "^2.0.0"
             },
@@ -1076,7 +975,6 @@
             "version": "1.2.8",
             "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
             "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
-            "dev": true,
             "dependencies": {
                 "deep-extend": "^0.6.0",
                 "ini": "~1.3.0",
@@ -1090,14 +988,12 @@
         "node_modules/rc/node_modules/ini": {
             "version": "1.3.8",
             "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
-            "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
-            "dev": true
+            "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
         },
         "node_modules/readdirp": {
             "version": "3.6.0",
             "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
             "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
-            "dev": true,
             "dependencies": {
                 "picomatch": "^2.2.1"
             },
@@ -1109,7 +1005,6 @@
             "version": "4.2.1",
             "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz",
             "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==",
-            "dev": true,
             "dependencies": {
                 "rc": "^1.2.8"
             },
@@ -1121,7 +1016,6 @@
             "version": "5.1.0",
             "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz",
             "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==",
-            "dev": true,
             "dependencies": {
                 "rc": "^1.2.8"
             },
@@ -1133,7 +1027,6 @@
             "version": "1.0.2",
             "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
             "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
-            "dev": true,
             "dependencies": {
                 "lowercase-keys": "^1.0.0"
             }
@@ -1142,7 +1035,6 @@
             "version": "5.7.1",
             "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
             "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
-            "dev": true,
             "bin": {
                 "semver": "bin/semver"
             }
@@ -1151,7 +1043,6 @@
             "version": "3.1.1",
             "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz",
             "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==",
-            "dev": true,
             "dependencies": {
                 "semver": "^6.3.0"
             },
@@ -1163,7 +1054,6 @@
             "version": "6.3.0",
             "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
             "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
-            "dev": true,
             "bin": {
                 "semver": "bin/semver.js"
             }
@@ -1171,14 +1061,12 @@
         "node_modules/signal-exit": {
             "version": "3.0.7",
             "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
-            "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
-            "dev": true
+            "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
         },
         "node_modules/string-width": {
             "version": "4.2.3",
             "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
             "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
-            "dev": true,
             "dependencies": {
                 "emoji-regex": "^8.0.0",
                 "is-fullwidth-code-point": "^3.0.0",
@@ -1192,7 +1080,6 @@
             "version": "6.0.1",
             "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
             "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
-            "dev": true,
             "dependencies": {
                 "ansi-regex": "^5.0.1"
             },
@@ -1204,7 +1091,6 @@
             "version": "2.0.1",
             "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
             "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
-            "dev": true,
             "engines": {
                 "node": ">=0.10.0"
             }
@@ -1213,7 +1099,6 @@
             "version": "5.5.0",
             "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
             "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-            "dev": true,
             "dependencies": {
                 "has-flag": "^3.0.0"
             },
@@ -1225,7 +1110,6 @@
             "version": "1.0.0",
             "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
             "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
-            "dev": true,
             "engines": {
                 "node": ">=6"
             }
@@ -1234,7 +1118,6 @@
             "version": "5.0.1",
             "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
             "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
-            "dev": true,
             "dependencies": {
                 "is-number": "^7.0.0"
             },
@@ -1246,7 +1129,6 @@
             "version": "3.1.0",
             "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
             "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
-            "dev": true,
             "dependencies": {
                 "nopt": "~1.0.10"
             },
@@ -1258,7 +1140,6 @@
             "version": "10.7.0",
             "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz",
             "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==",
-            "dev": true,
             "dependencies": {
                 "@cspotcode/source-map-support": "0.7.0",
                 "@tsconfig/node10": "^1.0.7",
@@ -1301,7 +1182,6 @@
             "version": "0.20.2",
             "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
             "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
-            "dev": true,
             "engines": {
                 "node": ">=10"
             },
@@ -1313,7 +1193,6 @@
             "version": "3.1.5",
             "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
             "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
-            "dev": true,
             "dependencies": {
                 "is-typedarray": "^1.0.0"
             }
@@ -1322,7 +1201,6 @@
             "version": "4.6.3",
             "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz",
             "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==",
-            "dev": true,
             "peer": true,
             "bin": {
                 "tsc": "bin/tsc",
@@ -1335,14 +1213,12 @@
         "node_modules/undefsafe": {
             "version": "2.0.5",
             "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
-            "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==",
-            "dev": true
+            "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA=="
         },
         "node_modules/unique-string": {
             "version": "2.0.0",
             "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
             "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
-            "dev": true,
             "dependencies": {
                 "crypto-random-string": "^2.0.0"
             },
@@ -1354,7 +1230,6 @@
             "version": "5.1.0",
             "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz",
             "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==",
-            "dev": true,
             "dependencies": {
                 "boxen": "^5.0.0",
                 "chalk": "^4.1.0",
@@ -1382,7 +1257,6 @@
             "version": "7.3.5",
             "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
             "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
-            "dev": true,
             "dependencies": {
                 "lru-cache": "^6.0.0"
             },
@@ -1397,7 +1271,6 @@
             "version": "3.0.0",
             "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
             "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
-            "dev": true,
             "dependencies": {
                 "prepend-http": "^2.0.0"
             },

styles/package.json 🔗

@@ -4,8 +4,9 @@
     "description": "",
     "main": "index.js",
     "scripts": {
+        "build": "npm run build-themes && npm run build-tokens",
         "build-themes": "ts-node ./src/buildThemes.ts",
-        "build-figma": "ts-node ./src/buildFigmaTokens.ts",
+        "build-tokens": "ts-node ./src/buildTokens.ts",
         "watch": "nodemon"
     },
     "author": "",

styles/src/buildThemes.ts 🔗

@@ -13,5 +13,5 @@ for (let theme of themes) {
         `${__dirname}/../../crates/zed/assets/themes/${theme.name}.json`
     );
     fs.writeFileSync(outPath, styleTreeJSON);
-    console.log(`Generated ${outPath}`);
+    console.log(`- ${outPath} created`);
 }

styles/src/buildFigmaTokens.ts → styles/src/buildTokens.ts 🔗

@@ -83,28 +83,28 @@ const coreTokens = {
     size: fontSizes,
 };
 
-const combinedTokens: any = {
-    core: coreTokens,
-}
+const combinedTokens: any = {};
+
+const distPath = path.resolve(`${__dirname}/../dist`);
 
-// Create core.json
-const corePath = path.resolve(`${__dirname}/../dist/figma/core.json`);
-const coreJSON = JSON.stringify(coreTokens, null, 2);
-fs.writeFileSync(corePath, coreJSON);
-console.log(`- Core: core.json created`);
+// Add core tokens to the combined tokens and write `core.json`.
+// We write `core.json` as a separate file for the design team's convenience, but it isn't consumed by Figma Tokens directly.
+const corePath = path.join(distPath, "core.json");
+fs.writeFileSync(corePath, JSON.stringify(coreTokens, null, 2));
+console.log(`- ${corePath} created`);
+combinedTokens.core = coreTokens;
 
-// Create {theme}.json
+// Add each theme to the combined tokens and write ${theme}.json.
+// We write `${theme}.json` as a separate file for the design team's convenience, but it isn't consumed by Figma Tokens directly.
 let themes = [dark, light];
-const themePath = path.resolve(`${__dirname}/figma`);
 themes.forEach((theme) => {
-    const tokenJSON = JSON.stringify(themeTokens(theme), null, 2);
-    fs.writeFileSync(`${themePath}/${theme.name}.json`, tokenJSON);
-    console.log(`- Theme: ${theme.name}.json created`);
+    const themePath = `${distPath}/${theme.name}.json`
+    fs.writeFileSync(themePath, JSON.stringify(themeTokens(theme), null, 2));
+    console.log(`- ${themePath} created`);
     combinedTokens[theme.name] = themeTokens(theme);
 });
 
-// Create combined tokens.json
-const combinedPath = path.resolve(`${__dirname}/figma/tokens.json`);
-const combinedJSON = JSON.stringify(combinedTokens, null, 2);
-fs.writeFileSync(combinedPath, combinedJSON);
-console.log(`- Combined: tokens.json created`);
+// Write combined tokens to `tokens.json`. This file is consumed by the Figma Tokens plugin to keep our designs consistent with the app.
+const combinedPath = path.resolve(`${distPath}/tokens.json`);
+fs.writeFileSync(combinedPath, JSON.stringify(combinedTokens, null, 2));
+console.log(`- ${combinedPath} created`);

styles/src/figma/core.json 🔗

@@ -1,1155 +0,0 @@
-{
-  "color": {
-    "neutral": {
-      "0": {
-        "value": "#ffffff",
-        "step": 0,
-        "type": "color"
-      },
-      "25": {
-        "value": "#f8f8f8",
-        "step": 25,
-        "type": "color"
-      },
-      "50": {
-        "value": "#f1f1f1",
-        "step": 50,
-        "type": "color"
-      },
-      "75": {
-        "value": "#eaeaea",
-        "step": 75,
-        "type": "color"
-      },
-      "100": {
-        "value": "#e3e3e3",
-        "step": 100,
-        "type": "color"
-      },
-      "125": {
-        "value": "#dcdcdc",
-        "step": 125,
-        "type": "color"
-      },
-      "150": {
-        "value": "#d5d5d5",
-        "step": 150,
-        "type": "color"
-      },
-      "175": {
-        "value": "#cdcdcd",
-        "step": 175,
-        "type": "color"
-      },
-      "200": {
-        "value": "#c6c6c6",
-        "step": 200,
-        "type": "color"
-      },
-      "225": {
-        "value": "#bfbfbf",
-        "step": 225,
-        "type": "color"
-      },
-      "250": {
-        "value": "#b8b8b8",
-        "step": 250,
-        "type": "color"
-      },
-      "275": {
-        "value": "#b1b1b1",
-        "step": 275,
-        "type": "color"
-      },
-      "300": {
-        "value": "#aaaaaa",
-        "step": 300,
-        "type": "color"
-      },
-      "325": {
-        "value": "#a3a3a3",
-        "step": 325,
-        "type": "color"
-      },
-      "350": {
-        "value": "#9c9c9c",
-        "step": 350,
-        "type": "color"
-      },
-      "375": {
-        "value": "#959595",
-        "step": 375,
-        "type": "color"
-      },
-      "400": {
-        "value": "#8e8e8e",
-        "step": 400,
-        "type": "color"
-      },
-      "425": {
-        "value": "#878787",
-        "step": 425,
-        "type": "color"
-      },
-      "450": {
-        "value": "#808080",
-        "step": 450,
-        "type": "color"
-      },
-      "475": {
-        "value": "#787878",
-        "step": 475,
-        "type": "color"
-      },
-      "500": {
-        "value": "#717171",
-        "step": 500,
-        "type": "color"
-      },
-      "525": {
-        "value": "#6a6a6a",
-        "step": 525,
-        "type": "color"
-      },
-      "550": {
-        "value": "#636363",
-        "step": 550,
-        "type": "color"
-      },
-      "575": {
-        "value": "#5c5c5c",
-        "step": 575,
-        "type": "color"
-      },
-      "600": {
-        "value": "#555555",
-        "step": 600,
-        "type": "color"
-      },
-      "625": {
-        "value": "#4e4e4e",
-        "step": 625,
-        "type": "color"
-      },
-      "650": {
-        "value": "#474747",
-        "step": 650,
-        "type": "color"
-      },
-      "675": {
-        "value": "#404040",
-        "step": 675,
-        "type": "color"
-      },
-      "700": {
-        "value": "#393939",
-        "step": 700,
-        "type": "color"
-      },
-      "725": {
-        "value": "#323232",
-        "step": 725,
-        "type": "color"
-      },
-      "750": {
-        "value": "#2b2b2b",
-        "step": 750,
-        "type": "color"
-      },
-      "775": {
-        "value": "#232323",
-        "step": 775,
-        "type": "color"
-      },
-      "800": {
-        "value": "#1c1c1c",
-        "step": 800,
-        "type": "color"
-      },
-      "825": {
-        "value": "#151515",
-        "step": 825,
-        "type": "color"
-      },
-      "850": {
-        "value": "#0e0e0e",
-        "step": 850,
-        "type": "color"
-      },
-      "875": {
-        "value": "#070707",
-        "step": 875,
-        "type": "color"
-      },
-      "900": {
-        "value": "#000000",
-        "step": 900,
-        "type": "color"
-      }
-    },
-    "rose": {
-      "0": {
-        "value": "#feecef",
-        "step": 0,
-        "type": "color"
-      },
-      "100": {
-        "value": "#fdd5db",
-        "step": 100,
-        "type": "color"
-      },
-      "200": {
-        "value": "#fbbdc8",
-        "step": 200,
-        "type": "color"
-      },
-      "300": {
-        "value": "#faa4b3",
-        "step": 300,
-        "type": "color"
-      },
-      "400": {
-        "value": "#f98a9d",
-        "step": 400,
-        "type": "color"
-      },
-      "500": {
-        "value": "#f76e86",
-        "step": 500,
-        "type": "color"
-      },
-      "600": {
-        "value": "#f54c69",
-        "step": 600,
-        "type": "color"
-      },
-      "700": {
-        "value": "#ec2548",
-        "step": 700,
-        "type": "color"
-      },
-      "800": {
-        "value": "#d21939",
-        "step": 800,
-        "type": "color"
-      },
-      "900": {
-        "value": "#b41a35",
-        "step": 900,
-        "type": "color"
-      }
-    },
-    "red": {
-      "0": {
-        "value": "#feecec",
-        "step": 0,
-        "type": "color"
-      },
-      "100": {
-        "value": "#fdd4d4",
-        "step": 100,
-        "type": "color"
-      },
-      "200": {
-        "value": "#fbbdbd",
-        "step": 200,
-        "type": "color"
-      },
-      "300": {
-        "value": "#f9a5a5",
-        "step": 300,
-        "type": "color"
-      },
-      "400": {
-        "value": "#f78c8c",
-        "step": 400,
-        "type": "color"
-      },
-      "500": {
-        "value": "#f47171",
-        "step": 500,
-        "type": "color"
-      },
-      "600": {
-        "value": "#f15252",
-        "step": 600,
-        "type": "color"
-      },
-      "700": {
-        "value": "#e82c2c",
-        "step": 700,
-        "type": "color"
-      },
-      "800": {
-        "value": "#d11c1c",
-        "step": 800,
-        "type": "color"
-      },
-      "900": {
-        "value": "#b21c1c",
-        "step": 900,
-        "type": "color"
-      }
-    },
-    "orange": {
-      "0": {
-        "value": "#fef3ec",
-        "step": 0,
-        "type": "color"
-      },
-      "100": {
-        "value": "#fde0cd",
-        "step": 100,
-        "type": "color"
-      },
-      "200": {
-        "value": "#fbccac",
-        "step": 200,
-        "type": "color"
-      },
-      "300": {
-        "value": "#fab78b",
-        "step": 300,
-        "type": "color"
-      },
-      "400": {
-        "value": "#faa266",
-        "step": 400,
-        "type": "color"
-      },
-      "500": {
-        "value": "#f98a3d",
-        "step": 500,
-        "type": "color"
-      },
-      "600": {
-        "value": "#f77113",
-        "step": 600,
-        "type": "color"
-      },
-      "700": {
-        "value": "#e0650f",
-        "step": 700,
-        "type": "color"
-      },
-      "800": {
-        "value": "#c65d14",
-        "step": 800,
-        "type": "color"
-      },
-      "900": {
-        "value": "#ac5517",
-        "step": 900,
-        "type": "color"
-      }
-    },
-    "amber": {
-      "0": {
-        "value": "#fef7ec",
-        "step": 0,
-        "type": "color"
-      },
-      "100": {
-        "value": "#fce7c4",
-        "step": 100,
-        "type": "color"
-      },
-      "200": {
-        "value": "#fad69d",
-        "step": 200,
-        "type": "color"
-      },
-      "300": {
-        "value": "#f8c570",
-        "step": 300,
-        "type": "color"
-      },
-      "400": {
-        "value": "#f7b241",
-        "step": 400,
-        "type": "color"
-      },
-      "500": {
-        "value": "#f59f0c",
-        "step": 500,
-        "type": "color"
-      },
-      "600": {
-        "value": "#e1930e",
-        "step": 600,
-        "type": "color"
-      },
-      "700": {
-        "value": "#cd8812",
-        "step": 700,
-        "type": "color"
-      },
-      "800": {
-        "value": "#ba7d15",
-        "step": 800,
-        "type": "color"
-      },
-      "900": {
-        "value": "#a77218",
-        "step": 900,
-        "type": "color"
-      }
-    },
-    "yellow": {
-      "0": {
-        "value": "#fef9ec",
-        "step": 0,
-        "type": "color"
-      },
-      "100": {
-        "value": "#fceabc",
-        "step": 100,
-        "type": "color"
-      },
-      "200": {
-        "value": "#fadc89",
-        "step": 200,
-        "type": "color"
-      },
-      "300": {
-        "value": "#f8cc4e",
-        "step": 300,
-        "type": "color"
-      },
-      "400": {
-        "value": "#f6bc09",
-        "step": 400,
-        "type": "color"
-      },
-      "500": {
-        "value": "#e5af09",
-        "step": 500,
-        "type": "color"
-      },
-      "600": {
-        "value": "#d4a30d",
-        "step": 600,
-        "type": "color"
-      },
-      "700": {
-        "value": "#c49811",
-        "step": 700,
-        "type": "color"
-      },
-      "800": {
-        "value": "#b48d14",
-        "step": 800,
-        "type": "color"
-      },
-      "900": {
-        "value": "#a48117",
-        "step": 900,
-        "type": "color"
-      }
-    },
-    "lime": {
-      "0": {
-        "value": "#f7feec",
-        "step": 0,
-        "type": "color"
-      },
-      "100": {
-        "value": "#dbf9ac",
-        "step": 100,
-        "type": "color"
-      },
-      "200": {
-        "value": "#bdf36b",
-        "step": 200,
-        "type": "color"
-      },
-      "300": {
-        "value": "#9feb2b",
-        "step": 300,
-        "type": "color"
-      },
-      "400": {
-        "value": "#90df17",
-        "step": 400,
-        "type": "color"
-      },
-      "500": {
-        "value": "#87d116",
-        "step": 500,
-        "type": "color"
-      },
-      "600": {
-        "value": "#7fc417",
-        "step": 600,
-        "type": "color"
-      },
-      "700": {
-        "value": "#78b618",
-        "step": 700,
-        "type": "color"
-      },
-      "800": {
-        "value": "#70aa19",
-        "step": 800,
-        "type": "color"
-      },
-      "900": {
-        "value": "#699c1a",
-        "step": 900,
-        "type": "color"
-      }
-    },
-    "green": {
-      "0": {
-        "value": "#ecfef2",
-        "step": 0,
-        "type": "color"
-      },
-      "100": {
-        "value": "#befad2",
-        "step": 100,
-        "type": "color"
-      },
-      "200": {
-        "value": "#8ff4b2",
-        "step": 200,
-        "type": "color"
-      },
-      "300": {
-        "value": "#60ec92",
-        "step": 300,
-        "type": "color"
-      },
-      "400": {
-        "value": "#34e173",
-        "step": 400,
-        "type": "color"
-      },
-      "500": {
-        "value": "#23d464",
-        "step": 500,
-        "type": "color"
-      },
-      "600": {
-        "value": "#22c55e",
-        "step": 600,
-        "type": "color"
-      },
-      "700": {
-        "value": "#20b658",
-        "step": 700,
-        "type": "color"
-      },
-      "800": {
-        "value": "#1ea851",
-        "step": 800,
-        "type": "color"
-      },
-      "900": {
-        "value": "#1d9b4b",
-        "step": 900,
-        "type": "color"
-      }
-    },
-    "emerald": {
-      "0": {
-        "value": "#ecfef8",
-        "step": 0,
-        "type": "color"
-      },
-      "100": {
-        "value": "#b3fbe3",
-        "step": 100,
-        "type": "color"
-      },
-      "200": {
-        "value": "#72f6ca",
-        "step": 200,
-        "type": "color"
-      },
-      "300": {
-        "value": "#1feda9",
-        "step": 300,
-        "type": "color"
-      },
-      "400": {
-        "value": "#12e09b",
-        "step": 400,
-        "type": "color"
-      },
-      "500": {
-        "value": "#11d091",
-        "step": 500,
-        "type": "color"
-      },
-      "600": {
-        "value": "#11c287",
-        "step": 600,
-        "type": "color"
-      },
-      "700": {
-        "value": "#11b37e",
-        "step": 700,
-        "type": "color"
-      },
-      "800": {
-        "value": "#15a575",
-        "step": 800,
-        "type": "color"
-      },
-      "900": {
-        "value": "#18976c",
-        "step": 900,
-        "type": "color"
-      }
-    },
-    "teal": {
-      "0": {
-        "value": "#ecfefc",
-        "step": 0,
-        "type": "color"
-      },
-      "100": {
-        "value": "#b4faf2",
-        "step": 100,
-        "type": "color"
-      },
-      "200": {
-        "value": "#73f4e6",
-        "step": 200,
-        "type": "color"
-      },
-      "300": {
-        "value": "#26ebd5",
-        "step": 300,
-        "type": "color"
-      },
-      "400": {
-        "value": "#16ddc7",
-        "step": 400,
-        "type": "color"
-      },
-      "500": {
-        "value": "#15cfba",
-        "step": 500,
-        "type": "color"
-      },
-      "600": {
-        "value": "#15c1ae",
-        "step": 600,
-        "type": "color"
-      },
-      "700": {
-        "value": "#15b2a1",
-        "step": 700,
-        "type": "color"
-      },
-      "800": {
-        "value": "#17a495",
-        "step": 800,
-        "type": "color"
-      },
-      "900": {
-        "value": "#199788",
-        "step": 900,
-        "type": "color"
-      }
-    },
-    "cyan": {
-      "0": {
-        "value": "#ecfcfe",
-        "step": 0,
-        "type": "color"
-      },
-      "100": {
-        "value": "#bcf5fc",
-        "step": 100,
-        "type": "color"
-      },
-      "200": {
-        "value": "#86edfa",
-        "step": 200,
-        "type": "color"
-      },
-      "300": {
-        "value": "#41e3f8",
-        "step": 300,
-        "type": "color"
-      },
-      "400": {
-        "value": "#07d5f1",
-        "step": 400,
-        "type": "color"
-      },
-      "500": {
-        "value": "#07c7e1",
-        "step": 500,
-        "type": "color"
-      },
-      "600": {
-        "value": "#07b8d0",
-        "step": 600,
-        "type": "color"
-      },
-      "700": {
-        "value": "#0daabf",
-        "step": 700,
-        "type": "color"
-      },
-      "800": {
-        "value": "#119bae",
-        "step": 800,
-        "type": "color"
-      },
-      "900": {
-        "value": "#168e9e",
-        "step": 900,
-        "type": "color"
-      }
-    },
-    "sky": {
-      "0": {
-        "value": "#ecf8fe",
-        "step": 0,
-        "type": "color"
-      },
-      "100": {
-        "value": "#caecfc",
-        "step": 100,
-        "type": "color"
-      },
-      "200": {
-        "value": "#a6defa",
-        "step": 200,
-        "type": "color"
-      },
-      "300": {
-        "value": "#81d2f8",
-        "step": 300,
-        "type": "color"
-      },
-      "400": {
-        "value": "#59c3f5",
-        "step": 400,
-        "type": "color"
-      },
-      "500": {
-        "value": "#2db4f3",
-        "step": 500,
-        "type": "color"
-      },
-      "600": {
-        "value": "#0ea5e8",
-        "step": 600,
-        "type": "color"
-      },
-      "700": {
-        "value": "#1296d1",
-        "step": 700,
-        "type": "color"
-      },
-      "800": {
-        "value": "#1686ba",
-        "step": 800,
-        "type": "color"
-      },
-      "900": {
-        "value": "#1878a4",
-        "step": 900,
-        "type": "color"
-      }
-    },
-    "blue": {
-      "0": {
-        "value": "#ecf3fe",
-        "step": 0,
-        "type": "color"
-      },
-      "100": {
-        "value": "#d0e2fd",
-        "step": 100,
-        "type": "color"
-      },
-      "200": {
-        "value": "#b4cffb",
-        "step": 200,
-        "type": "color"
-      },
-      "300": {
-        "value": "#99befa",
-        "step": 300,
-        "type": "color"
-      },
-      "400": {
-        "value": "#7cacf9",
-        "step": 400,
-        "type": "color"
-      },
-      "500": {
-        "value": "#6099f7",
-        "step": 500,
-        "type": "color"
-      },
-      "600": {
-        "value": "#4287f6",
-        "step": 600,
-        "type": "color"
-      },
-      "700": {
-        "value": "#2774f0",
-        "step": 700,
-        "type": "color"
-      },
-      "800": {
-        "value": "#1762db",
-        "step": 800,
-        "type": "color"
-      },
-      "900": {
-        "value": "#1a55b4",
-        "step": 900,
-        "type": "color"
-      }
-    },
-    "indigo": {
-      "0": {
-        "value": "#ececfe",
-        "step": 0,
-        "type": "color"
-      },
-      "100": {
-        "value": "#d4d5fd",
-        "step": 100,
-        "type": "color"
-      },
-      "200": {
-        "value": "#bebefb",
-        "step": 200,
-        "type": "color"
-      },
-      "300": {
-        "value": "#a7a8f9",
-        "step": 300,
-        "type": "color"
-      },
-      "400": {
-        "value": "#8f90f6",
-        "step": 400,
-        "type": "color"
-      },
-      "500": {
-        "value": "#777af4",
-        "step": 500,
-        "type": "color"
-      },
-      "600": {
-        "value": "#5f62f0",
-        "step": 600,
-        "type": "color"
-      },
-      "700": {
-        "value": "#464aeb",
-        "step": 700,
-        "type": "color"
-      },
-      "800": {
-        "value": "#292de4",
-        "step": 800,
-        "type": "color"
-      },
-      "900": {
-        "value": "#1d20bb",
-        "step": 900,
-        "type": "color"
-      }
-    },
-    "violet": {
-      "0": {
-        "value": "#f1ecfe",
-        "step": 0,
-        "type": "color"
-      },
-      "100": {
-        "value": "#e0d5fd",
-        "step": 100,
-        "type": "color"
-      },
-      "200": {
-        "value": "#cfbcfb",
-        "step": 200,
-        "type": "color"
-      },
-      "300": {
-        "value": "#bda4fa",
-        "step": 300,
-        "type": "color"
-      },
-      "400": {
-        "value": "#ad8cf9",
-        "step": 400,
-        "type": "color"
-      },
-      "500": {
-        "value": "#9b73f7",
-        "step": 500,
-        "type": "color"
-      },
-      "600": {
-        "value": "#8959f6",
-        "step": 600,
-        "type": "color"
-      },
-      "700": {
-        "value": "#7540f0",
-        "step": 700,
-        "type": "color"
-      },
-      "800": {
-        "value": "#5e22e7",
-        "step": 800,
-        "type": "color"
-      },
-      "900": {
-        "value": "#4c1bbc",
-        "step": 900,
-        "type": "color"
-      }
-    },
-    "purple": {
-      "0": {
-        "value": "#f5ecfe",
-        "step": 0,
-        "type": "color"
-      },
-      "100": {
-        "value": "#e9d4fd",
-        "step": 100,
-        "type": "color"
-      },
-      "200": {
-        "value": "#dcbcfc",
-        "step": 200,
-        "type": "color"
-      },
-      "300": {
-        "value": "#d0a4fa",
-        "step": 300,
-        "type": "color"
-      },
-      "400": {
-        "value": "#c38bf9",
-        "step": 400,
-        "type": "color"
-      },
-      "500": {
-        "value": "#b671f8",
-        "step": 500,
-        "type": "color"
-      },
-      "600": {
-        "value": "#a856f7",
-        "step": 600,
-        "type": "color"
-      },
-      "700": {
-        "value": "#9739f1",
-        "step": 700,
-        "type": "color"
-      },
-      "800": {
-        "value": "#831ae6",
-        "step": 800,
-        "type": "color"
-      },
-      "900": {
-        "value": "#6d1bbb",
-        "step": 900,
-        "type": "color"
-      }
-    },
-    "fuschia": {
-      "0": {
-        "value": "#fdecfe",
-        "step": 0,
-        "type": "color"
-      },
-      "100": {
-        "value": "#fad4fc",
-        "step": 100,
-        "type": "color"
-      },
-      "200": {
-        "value": "#f6bbfa",
-        "step": 200,
-        "type": "color"
-      },
-      "300": {
-        "value": "#f1a2f7",
-        "step": 300,
-        "type": "color"
-      },
-      "400": {
-        "value": "#ec8af3",
-        "step": 400,
-        "type": "color"
-      },
-      "500": {
-        "value": "#e56fee",
-        "step": 500,
-        "type": "color"
-      },
-      "600": {
-        "value": "#dd51e7",
-        "step": 600,
-        "type": "color"
-      },
-      "700": {
-        "value": "#d32edf",
-        "step": 700,
-        "type": "color"
-      },
-      "800": {
-        "value": "#bc21c8",
-        "step": 800,
-        "type": "color"
-      },
-      "900": {
-        "value": "#a41ead",
-        "step": 900,
-        "type": "color"
-      }
-    },
-    "pink": {
-      "0": {
-        "value": "#feecf5",
-        "step": 0,
-        "type": "color"
-      },
-      "100": {
-        "value": "#fcd4e8",
-        "step": 100,
-        "type": "color"
-      },
-      "200": {
-        "value": "#fbbcdb",
-        "step": 200,
-        "type": "color"
-      },
-      "300": {
-        "value": "#f8a5ce",
-        "step": 300,
-        "type": "color"
-      },
-      "400": {
-        "value": "#f58ac0",
-        "step": 400,
-        "type": "color"
-      },
-      "500": {
-        "value": "#f26fb0",
-        "step": 500,
-        "type": "color"
-      },
-      "600": {
-        "value": "#ee519e",
-        "step": 600,
-        "type": "color"
-      },
-      "700": {
-        "value": "#e52e89",
-        "step": 700,
-        "type": "color"
-      },
-      "800": {
-        "value": "#ce1e76",
-        "step": 800,
-        "type": "color"
-      },
-      "900": {
-        "value": "#b21d67",
-        "step": 900,
-        "type": "color"
-      }
-    }
-  },
-  "text": {
-    "family": {
-      "sans": {
-        "value": "Zed Sans",
-        "type": "fontFamily"
-      },
-      "mono": {
-        "value": "Zed Mono",
-        "type": "fontFamily"
-      }
-    },
-    "weight": {
-      "thin": {
-        "value": "thin",
-        "type": "fontWeight"
-      },
-      "extra_light": {
-        "value": "extra_light",
-        "type": "fontWeight"
-      },
-      "light": {
-        "value": "light",
-        "type": "fontWeight"
-      },
-      "normal": {
-        "value": "normal",
-        "type": "fontWeight"
-      },
-      "medium": {
-        "value": "medium",
-        "type": "fontWeight"
-      },
-      "semibold": {
-        "value": "semibold",
-        "type": "fontWeight"
-      },
-      "bold": {
-        "value": "bold",
-        "type": "fontWeight"
-      },
-      "extra_bold": {
-        "value": "extra_bold",
-        "type": "fontWeight"
-      },
-      "black": {
-        "value": "black",
-        "type": "fontWeight"
-      }
-    }
-  },
-  "size": {
-    "3xs": {
-      "value": 8,
-      "type": "fontSize"
-    },
-    "2xs": {
-      "value": 10,
-      "type": "fontSize"
-    },
-    "xs": {
-      "value": 12,
-      "type": "fontSize"
-    },
-    "sm": {
-      "value": 14,
-      "type": "fontSize"
-    },
-    "md": {
-      "value": 16,
-      "type": "fontSize"
-    },
-    "lg": {
-      "value": 18,
-      "type": "fontSize"
-    },
-    "xl": {
-      "value": 20,
-      "type": "fontSize"
-    }
-  }
-}