├── .gitignore ├── README.md ├── dist ├── css │ └── variables.css └── js │ └── tokens.js ├── package-lock.json ├── package.json ├── src └── scss │ └── _variables.scss ├── style-dictionary.config.js ├── tailwind.config.js └── tokens └── tokens.json /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # TailwindCSS → Style Dictionary → Figma Tokens 2 | 3 | ![](https://progress-bar.dev/43?title=progress) 4 | 5 | What‘s an equivalent of Tailwind‘s `p-4` on the design side? This is an attempt to make the designer productive and accurate by using “default” tokens (in my case, Tailwind) in Figma! 6 | 7 | Today I have to recreate all these default tokens from the UI tool, which is prone to human error. So I figured one of the ways is we pull Tailwind's full default config and transform them into a format that Figma Tokens can consume. 8 | 9 | Thanks to this tutorial by [@philwolstenholme](https://github.com/philwolstenholme) on [dev.to](https://dev.to/philw_/using-style-dictionary-to-transform-tailwind-config-into-scss-variables-css-custom-properties-and-javascript-via-design-tokens-24h5), we managed these token types so far: 10 | 11 | - Spacing ✅ 12 | - Colors ✅ 13 | - Border Radius ✅ 14 | - Border Width ✅ 15 | - Opacity ✅ 16 | - Box Shadow ✅ 17 | - Line Heights ✅ (hat tip to [@sonnylazuardi](https://github.com/sonnylazuardi)) 18 | - Letter Spacing 🐞 (em doesn‘t seem to work on Figma) 19 | 20 | #### Need help with 21 | - Sizing 22 | - Typography 23 | - Font Family 24 | - Font Weight 25 | - Font Size 26 | - Paragraph Spacing 27 | - Text Case 28 | - Text Decoration 29 | - _Composition (if available)_ 30 | 31 |
32 | 33 | **Notice the `Other` panel**. Technically, each token type should be transformed correctly. 34 | 35 | 36 | 37 |
38 | 39 | ### Credits, References & Resources 40 | 41 | - https://dev.to/philw_/using-style-dictionary-to-transform-tailwind-config-into-scss-variables-css-custom-properties-and-javascript-via-design-tokens-24h5 42 | 43 | - [@sonnylazuardi](https://github.com/sonnylazuardi)‘s contribution 44 | -------------------------------------------------------------------------------- /dist/css/variables.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Do not edit directly 3 | * Generated on Mon, 12 Sep 2022 15:35:36 GMT 4 | */ 5 | 6 | :root { 7 | --screens-sm: 640px; 8 | --screens-md: 768px; 9 | --screens-lg: 1024px; 10 | --screens-xl: 1280px; 11 | --screens-2xl: 1536px; 12 | --colors-inherit: inherit; 13 | --colors-current: currentColor; 14 | --colors-transparent: transparent; 15 | --colors-black: #000; 16 | --colors-white: #fff; 17 | --colors-slate-50: #f8fafc; 18 | --colors-slate-100: #f1f5f9; 19 | --colors-slate-200: #e2e8f0; 20 | --colors-slate-300: #cbd5e1; 21 | --colors-slate-400: #94a3b8; 22 | --colors-slate-500: #64748b; 23 | --colors-slate-600: #475569; 24 | --colors-slate-700: #334155; 25 | --colors-slate-800: #1e293b; 26 | --colors-slate-900: #0f172a; 27 | --colors-gray-50: #f9fafb; 28 | --colors-gray-100: #f3f4f6; 29 | --colors-gray-200: #e5e7eb; 30 | --colors-gray-300: #d1d5db; 31 | --colors-gray-400: #9ca3af; 32 | --colors-gray-500: #6b7280; 33 | --colors-gray-600: #4b5563; 34 | --colors-gray-700: #374151; 35 | --colors-gray-800: #1f2937; 36 | --colors-gray-900: #111827; 37 | --colors-zinc-50: #fafafa; 38 | --colors-zinc-100: #f4f4f5; 39 | --colors-zinc-200: #e4e4e7; 40 | --colors-zinc-300: #d4d4d8; 41 | --colors-zinc-400: #a1a1aa; 42 | --colors-zinc-500: #71717a; 43 | --colors-zinc-600: #52525b; 44 | --colors-zinc-700: #3f3f46; 45 | --colors-zinc-800: #27272a; 46 | --colors-zinc-900: #18181b; 47 | --colors-neutral-50: #fafafa; 48 | --colors-neutral-100: #f5f5f5; 49 | --colors-neutral-200: #e5e5e5; 50 | --colors-neutral-300: #d4d4d4; 51 | --colors-neutral-400: #a3a3a3; 52 | --colors-neutral-500: #737373; 53 | --colors-neutral-600: #525252; 54 | --colors-neutral-700: #404040; 55 | --colors-neutral-800: #262626; 56 | --colors-neutral-900: #171717; 57 | --colors-stone-50: #fafaf9; 58 | --colors-stone-100: #f5f5f4; 59 | --colors-stone-200: #e7e5e4; 60 | --colors-stone-300: #d6d3d1; 61 | --colors-stone-400: #a8a29e; 62 | --colors-stone-500: #78716c; 63 | --colors-stone-600: #57534e; 64 | --colors-stone-700: #44403c; 65 | --colors-stone-800: #292524; 66 | --colors-stone-900: #1c1917; 67 | --colors-red-50: #fef2f2; 68 | --colors-red-100: #fee2e2; 69 | --colors-red-200: #fecaca; 70 | --colors-red-300: #fca5a5; 71 | --colors-red-400: #f87171; 72 | --colors-red-500: #ef4444; 73 | --colors-red-600: #dc2626; 74 | --colors-red-700: #b91c1c; 75 | --colors-red-800: #991b1b; 76 | --colors-red-900: #7f1d1d; 77 | --colors-orange-50: #fff7ed; 78 | --colors-orange-100: #ffedd5; 79 | --colors-orange-200: #fed7aa; 80 | --colors-orange-300: #fdba74; 81 | --colors-orange-400: #fb923c; 82 | --colors-orange-500: #f97316; 83 | --colors-orange-600: #ea580c; 84 | --colors-orange-700: #c2410c; 85 | --colors-orange-800: #9a3412; 86 | --colors-orange-900: #7c2d12; 87 | --colors-amber-50: #fffbeb; 88 | --colors-amber-100: #fef3c7; 89 | --colors-amber-200: #fde68a; 90 | --colors-amber-300: #fcd34d; 91 | --colors-amber-400: #fbbf24; 92 | --colors-amber-500: #f59e0b; 93 | --colors-amber-600: #d97706; 94 | --colors-amber-700: #b45309; 95 | --colors-amber-800: #92400e; 96 | --colors-amber-900: #78350f; 97 | --colors-yellow-50: #fefce8; 98 | --colors-yellow-100: #fef9c3; 99 | --colors-yellow-200: #fef08a; 100 | --colors-yellow-300: #fde047; 101 | --colors-yellow-400: #facc15; 102 | --colors-yellow-500: #eab308; 103 | --colors-yellow-600: #ca8a04; 104 | --colors-yellow-700: #a16207; 105 | --colors-yellow-800: #854d0e; 106 | --colors-yellow-900: #713f12; 107 | --colors-lime-50: #f7fee7; 108 | --colors-lime-100: #ecfccb; 109 | --colors-lime-200: #d9f99d; 110 | --colors-lime-300: #bef264; 111 | --colors-lime-400: #a3e635; 112 | --colors-lime-500: #84cc16; 113 | --colors-lime-600: #65a30d; 114 | --colors-lime-700: #4d7c0f; 115 | --colors-lime-800: #3f6212; 116 | --colors-lime-900: #365314; 117 | --colors-green-50: #f0fdf4; 118 | --colors-green-100: #dcfce7; 119 | --colors-green-200: #bbf7d0; 120 | --colors-green-300: #86efac; 121 | --colors-green-400: #4ade80; 122 | --colors-green-500: #22c55e; 123 | --colors-green-600: #16a34a; 124 | --colors-green-700: #15803d; 125 | --colors-green-800: #166534; 126 | --colors-green-900: #14532d; 127 | --colors-emerald-50: #ecfdf5; 128 | --colors-emerald-100: #d1fae5; 129 | --colors-emerald-200: #a7f3d0; 130 | --colors-emerald-300: #6ee7b7; 131 | --colors-emerald-400: #34d399; 132 | --colors-emerald-500: #10b981; 133 | --colors-emerald-600: #059669; 134 | --colors-emerald-700: #047857; 135 | --colors-emerald-800: #065f46; 136 | --colors-emerald-900: #064e3b; 137 | --colors-teal-50: #f0fdfa; 138 | --colors-teal-100: #ccfbf1; 139 | --colors-teal-200: #99f6e4; 140 | --colors-teal-300: #5eead4; 141 | --colors-teal-400: #2dd4bf; 142 | --colors-teal-500: #14b8a6; 143 | --colors-teal-600: #0d9488; 144 | --colors-teal-700: #0f766e; 145 | --colors-teal-800: #115e59; 146 | --colors-teal-900: #134e4a; 147 | --colors-cyan-50: #ecfeff; 148 | --colors-cyan-100: #cffafe; 149 | --colors-cyan-200: #a5f3fc; 150 | --colors-cyan-300: #67e8f9; 151 | --colors-cyan-400: #22d3ee; 152 | --colors-cyan-500: #06b6d4; 153 | --colors-cyan-600: #0891b2; 154 | --colors-cyan-700: #0e7490; 155 | --colors-cyan-800: #155e75; 156 | --colors-cyan-900: #164e63; 157 | --colors-sky-50: #f0f9ff; 158 | --colors-sky-100: #e0f2fe; 159 | --colors-sky-200: #bae6fd; 160 | --colors-sky-300: #7dd3fc; 161 | --colors-sky-400: #38bdf8; 162 | --colors-sky-500: #0ea5e9; 163 | --colors-sky-600: #0284c7; 164 | --colors-sky-700: #0369a1; 165 | --colors-sky-800: #075985; 166 | --colors-sky-900: #0c4a6e; 167 | --colors-blue-50: #eff6ff; 168 | --colors-blue-100: #dbeafe; 169 | --colors-blue-200: #bfdbfe; 170 | --colors-blue-300: #93c5fd; 171 | --colors-blue-400: #60a5fa; 172 | --colors-blue-500: #3b82f6; 173 | --colors-blue-600: #2563eb; 174 | --colors-blue-700: #1d4ed8; 175 | --colors-blue-800: #1e40af; 176 | --colors-blue-900: #1e3a8a; 177 | --colors-indigo-50: #eef2ff; 178 | --colors-indigo-100: #e0e7ff; 179 | --colors-indigo-200: #c7d2fe; 180 | --colors-indigo-300: #a5b4fc; 181 | --colors-indigo-400: #818cf8; 182 | --colors-indigo-500: #6366f1; 183 | --colors-indigo-600: #4f46e5; 184 | --colors-indigo-700: #4338ca; 185 | --colors-indigo-800: #3730a3; 186 | --colors-indigo-900: #312e81; 187 | --colors-violet-50: #f5f3ff; 188 | --colors-violet-100: #ede9fe; 189 | --colors-violet-200: #ddd6fe; 190 | --colors-violet-300: #c4b5fd; 191 | --colors-violet-400: #a78bfa; 192 | --colors-violet-500: #8b5cf6; 193 | --colors-violet-600: #7c3aed; 194 | --colors-violet-700: #6d28d9; 195 | --colors-violet-800: #5b21b6; 196 | --colors-violet-900: #4c1d95; 197 | --colors-purple-50: #faf5ff; 198 | --colors-purple-100: #f3e8ff; 199 | --colors-purple-200: #e9d5ff; 200 | --colors-purple-300: #d8b4fe; 201 | --colors-purple-400: #c084fc; 202 | --colors-purple-500: #a855f7; 203 | --colors-purple-600: #9333ea; 204 | --colors-purple-700: #7e22ce; 205 | --colors-purple-800: #6b21a8; 206 | --colors-purple-900: #581c87; 207 | --colors-fuchsia-50: #fdf4ff; 208 | --colors-fuchsia-100: #fae8ff; 209 | --colors-fuchsia-200: #f5d0fe; 210 | --colors-fuchsia-300: #f0abfc; 211 | --colors-fuchsia-400: #e879f9; 212 | --colors-fuchsia-500: #d946ef; 213 | --colors-fuchsia-600: #c026d3; 214 | --colors-fuchsia-700: #a21caf; 215 | --colors-fuchsia-800: #86198f; 216 | --colors-fuchsia-900: #701a75; 217 | --colors-pink-50: #fdf2f8; 218 | --colors-pink-100: #fce7f3; 219 | --colors-pink-200: #fbcfe8; 220 | --colors-pink-300: #f9a8d4; 221 | --colors-pink-400: #f472b6; 222 | --colors-pink-500: #ec4899; 223 | --colors-pink-600: #db2777; 224 | --colors-pink-700: #be185d; 225 | --colors-pink-800: #9d174d; 226 | --colors-pink-900: #831843; 227 | --colors-rose-50: #fff1f2; 228 | --colors-rose-100: #ffe4e6; 229 | --colors-rose-200: #fecdd3; 230 | --colors-rose-300: #fda4af; 231 | --colors-rose-400: #fb7185; 232 | --colors-rose-500: #f43f5e; 233 | --colors-rose-600: #e11d48; 234 | --colors-rose-700: #be123c; 235 | --colors-rose-800: #9f1239; 236 | --colors-rose-900: #881337; 237 | --spacing-0: 0px; 238 | --spacing-1: 0.25rem; 239 | --spacing-2: 0.5rem; 240 | --spacing-3: 0.75rem; 241 | --spacing-4: 1rem; 242 | --spacing-5: 1.25rem; 243 | --spacing-6: 1.5rem; 244 | --spacing-7: 1.75rem; 245 | --spacing-8: 2rem; 246 | --spacing-9: 2.25rem; 247 | --spacing-10: 2.5rem; 248 | --spacing-11: 2.75rem; 249 | --spacing-12: 3rem; 250 | --spacing-14: 3.5rem; 251 | --spacing-16: 4rem; 252 | --spacing-20: 5rem; 253 | --spacing-24: 6rem; 254 | --spacing-28: 7rem; 255 | --spacing-32: 8rem; 256 | --spacing-36: 9rem; 257 | --spacing-40: 10rem; 258 | --spacing-44: 11rem; 259 | --spacing-48: 12rem; 260 | --spacing-52: 13rem; 261 | --spacing-56: 14rem; 262 | --spacing-60: 15rem; 263 | --spacing-64: 16rem; 264 | --spacing-72: 18rem; 265 | --spacing-80: 20rem; 266 | --spacing-96: 24rem; 267 | --spacing-px: 1px; 268 | --spacing-0-5: 0.125rem; 269 | --spacing-1-5: 0.375rem; 270 | --spacing-2-5: 0.625rem; 271 | --spacing-3-5: 0.875rem; 272 | --animation-none: none; 273 | --animation-spin: spin 1s linear infinite; 274 | --animation-ping: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite; 275 | --animation-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; 276 | --animation-bounce: bounce 1s infinite; 277 | --border-radius-none: 0px; 278 | --border-radius-sm: 0.125rem; 279 | --border-radius-default: 0.25rem; 280 | --border-radius-md: 0.375rem; 281 | --border-radius-lg: 0.5rem; 282 | --border-radius-xl: 0.75rem; 283 | --border-radius-2xl: 1rem; 284 | --border-radius-3xl: 1.5rem; 285 | --border-radius-full: 9999px; 286 | --border-width-0: 0px; 287 | --border-width-2: 2px; 288 | --border-width-4: 4px; 289 | --border-width-8: 8px; 290 | --border-width-default: 1px; 291 | --box-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05); 292 | --box-shadow-default: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); 293 | --box-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); 294 | --box-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); 295 | --box-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); 296 | --box-shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25); 297 | --box-shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05); 298 | --box-shadow-none: none; 299 | --font-family-sans: ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; 300 | --font-family-serif: ui-serif,Georgia,Cambria,"Times New Roman",Times,serif; 301 | --font-family-mono: ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace; 302 | --font-size-xs: 0.75rem; 303 | --font-size-xs-line-height: 1rem; 304 | --font-size-sm: 0.875rem; 305 | --font-size-sm-line-height: 1.25rem; 306 | --font-size-base: 1rem; 307 | --font-size-base-line-height: 1.5rem; 308 | --font-size-lg: 1.125rem; 309 | --font-size-lg-line-height: 1.75rem; 310 | --font-size-xl: 1.25rem; 311 | --font-size-xl-line-height: 1.75rem; 312 | --font-size-2xl: 1.5rem; 313 | --font-size-2xl-line-height: 2rem; 314 | --font-size-3xl: 1.875rem; 315 | --font-size-3xl-line-height: 2.25rem; 316 | --font-size-4xl: 2.25rem; 317 | --font-size-4xl-line-height: 2.5rem; 318 | --font-size-5xl: 3rem; 319 | --font-size-5xl-line-height: 1; 320 | --font-size-6xl: 3.75rem; 321 | --font-size-6xl-line-height: 1; 322 | --font-size-7xl: 4.5rem; 323 | --font-size-7xl-line-height: 1; 324 | --font-size-8xl: 6rem; 325 | --font-size-8xl-line-height: 1; 326 | --font-size-9xl: 8rem; 327 | --font-size-9xl-line-height: 1; 328 | --font-weight-thin: 100; 329 | --font-weight-extralight: 200; 330 | --font-weight-light: 300; 331 | --font-weight-normal: 400; 332 | --font-weight-medium: 500; 333 | --font-weight-semibold: 600; 334 | --font-weight-bold: 700; 335 | --font-weight-extrabold: 800; 336 | --font-weight-black: 900; 337 | --letter-spacing-tighter: -0.05em; 338 | --letter-spacing-tight: -0.025em; 339 | --letter-spacing-normal: 0em; 340 | --letter-spacing-wide: 0.025em; 341 | --letter-spacing-wider: 0.05em; 342 | --letter-spacing-widest: 0.1em; 343 | --line-height-3: .75rem; 344 | --line-height-4: 1rem; 345 | --line-height-5: 1.25rem; 346 | --line-height-6: 1.5rem; 347 | --line-height-7: 1.75rem; 348 | --line-height-8: 2rem; 349 | --line-height-9: 2.25rem; 350 | --line-height-10: 2.5rem; 351 | --line-height-none: 1; 352 | --line-height-tight: 1.25; 353 | --line-height-snug: 1.375; 354 | --line-height-normal: 1.5; 355 | --line-height-relaxed: 1.625; 356 | --line-height-loose: 2; 357 | --max-width-0: 0rem; 358 | --max-width-none: none; 359 | --max-width-xs: 20rem; 360 | --max-width-sm: 24rem; 361 | --max-width-md: 28rem; 362 | --max-width-lg: 32rem; 363 | --max-width-xl: 36rem; 364 | --max-width-2xl: 42rem; 365 | --max-width-3xl: 48rem; 366 | --max-width-4xl: 56rem; 367 | --max-width-5xl: 64rem; 368 | --max-width-6xl: 72rem; 369 | --max-width-7xl: 80rem; 370 | --max-width-full: 100%; 371 | --max-width-min: min-content; 372 | --max-width-max: max-content; 373 | --max-width-fit: fit-content; 374 | --max-width-prose: 65ch; 375 | --max-width-screen-sm: 640px; 376 | --max-width-screen-md: 768px; 377 | --max-width-screen-lg: 1024px; 378 | --max-width-screen-xl: 1280px; 379 | --max-width-screen-2xl: 1536px; 380 | --opacity-0: 0; 381 | --opacity-5: 0.05; 382 | --opacity-10: 0.1; 383 | --opacity-20: 0.2; 384 | --opacity-25: 0.25; 385 | --opacity-30: 0.3; 386 | --opacity-40: 0.4; 387 | --opacity-50: 0.5; 388 | --opacity-60: 0.6; 389 | --opacity-70: 0.7; 390 | --opacity-75: 0.75; 391 | --opacity-80: 0.8; 392 | --opacity-90: 0.9; 393 | --opacity-95: 0.95; 394 | --opacity-100: 1; 395 | --scale-0: 0; 396 | --scale-50: .5; 397 | --scale-75: .75; 398 | --scale-90: .9; 399 | --scale-95: .95; 400 | --scale-100: 1; 401 | --scale-105: 1.05; 402 | --scale-110: 1.1; 403 | --scale-125: 1.25; 404 | --scale-150: 1.5; 405 | --transition-delay-75: 75ms; 406 | --transition-delay-100: 100ms; 407 | --transition-delay-150: 150ms; 408 | --transition-delay-200: 200ms; 409 | --transition-delay-300: 300ms; 410 | --transition-delay-500: 500ms; 411 | --transition-delay-700: 700ms; 412 | --transition-delay-1000: 1000ms; 413 | --transition-duration-75: 75ms; 414 | --transition-duration-100: 100ms; 415 | --transition-duration-150: 150ms; 416 | --transition-duration-200: 200ms; 417 | --transition-duration-300: 300ms; 418 | --transition-duration-500: 500ms; 419 | --transition-duration-700: 700ms; 420 | --transition-duration-1000: 1000ms; 421 | --transition-duration-default: 150ms; 422 | --transition-property-none: none; 423 | --transition-property-all: all; 424 | --transition-property-default: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; 425 | --transition-property-colors: color, background-color, border-color, text-decoration-color, fill, stroke; 426 | --transition-property-opacity: opacity; 427 | --transition-property-shadow: box-shadow; 428 | --transition-property-transform: transform; 429 | --transition-timing-function-default: cubic-bezier(0.4, 0, 0.2, 1); 430 | --transition-timing-function-linear: linear; 431 | --transition-timing-function-in: cubic-bezier(0.4, 0, 1, 1); 432 | --transition-timing-function-out: cubic-bezier(0, 0, 0.2, 1); 433 | --transition-timing-function-in-out: cubic-bezier(0.4, 0, 0.2, 1); 434 | --z-index-0: 0; 435 | --z-index-10: 10; 436 | --z-index-20: 20; 437 | --z-index-30: 30; 438 | --z-index-40: 40; 439 | --z-index-50: 50; 440 | --z-index-auto: auto; 441 | } 442 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tailwind-to-style-dictionary", 3 | "version": "1.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "tailwind-to-style-dictionary", 9 | "version": "1.0.0", 10 | "license": "ISC", 11 | "dependencies": { 12 | "@divriots/style-dictionary-to-figma": "^0.3.2" 13 | }, 14 | "devDependencies": { 15 | "autoprefixer": "^10.4.9", 16 | "postcss": "^8.4.16", 17 | "style-dictionary": "^3.7.1", 18 | "tailwindcss": "^3.1.8" 19 | } 20 | }, 21 | "node_modules/@divriots/style-dictionary-to-figma": { 22 | "version": "0.3.2", 23 | "resolved": "https://registry.npmjs.org/@divriots/style-dictionary-to-figma/-/style-dictionary-to-figma-0.3.2.tgz", 24 | "integrity": "sha512-qI4eCqAIyrWve+Tiaa74cQqhDCEtyZXy/5h3Kr+Hm/oZ6gf3o++i8EZ9ZZ/pebOKpLnQ+DvceJOxf9YF2R83SA==" 25 | }, 26 | "node_modules/@nodelib/fs.scandir": { 27 | "version": "2.1.5", 28 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 29 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 30 | "dev": true, 31 | "dependencies": { 32 | "@nodelib/fs.stat": "2.0.5", 33 | "run-parallel": "^1.1.9" 34 | }, 35 | "engines": { 36 | "node": ">= 8" 37 | } 38 | }, 39 | "node_modules/@nodelib/fs.stat": { 40 | "version": "2.0.5", 41 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 42 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 43 | "dev": true, 44 | "engines": { 45 | "node": ">= 8" 46 | } 47 | }, 48 | "node_modules/@nodelib/fs.walk": { 49 | "version": "1.2.8", 50 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 51 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 52 | "dev": true, 53 | "dependencies": { 54 | "@nodelib/fs.scandir": "2.1.5", 55 | "fastq": "^1.6.0" 56 | }, 57 | "engines": { 58 | "node": ">= 8" 59 | } 60 | }, 61 | "node_modules/acorn": { 62 | "version": "7.4.1", 63 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", 64 | "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", 65 | "dev": true, 66 | "bin": { 67 | "acorn": "bin/acorn" 68 | }, 69 | "engines": { 70 | "node": ">=0.4.0" 71 | } 72 | }, 73 | "node_modules/acorn-node": { 74 | "version": "1.8.2", 75 | "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", 76 | "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", 77 | "dev": true, 78 | "dependencies": { 79 | "acorn": "^7.0.0", 80 | "acorn-walk": "^7.0.0", 81 | "xtend": "^4.0.2" 82 | } 83 | }, 84 | "node_modules/acorn-walk": { 85 | "version": "7.2.0", 86 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", 87 | "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", 88 | "dev": true, 89 | "engines": { 90 | "node": ">=0.4.0" 91 | } 92 | }, 93 | "node_modules/ansi-styles": { 94 | "version": "4.3.0", 95 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 96 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 97 | "dev": true, 98 | "dependencies": { 99 | "color-convert": "^2.0.1" 100 | }, 101 | "engines": { 102 | "node": ">=8" 103 | }, 104 | "funding": { 105 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 106 | } 107 | }, 108 | "node_modules/anymatch": { 109 | "version": "3.1.2", 110 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", 111 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", 112 | "dev": true, 113 | "dependencies": { 114 | "normalize-path": "^3.0.0", 115 | "picomatch": "^2.0.4" 116 | }, 117 | "engines": { 118 | "node": ">= 8" 119 | } 120 | }, 121 | "node_modules/arg": { 122 | "version": "5.0.2", 123 | "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", 124 | "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", 125 | "dev": true 126 | }, 127 | "node_modules/autoprefixer": { 128 | "version": "10.4.9", 129 | "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.9.tgz", 130 | "integrity": "sha512-Uu67eduPEmOeA0vyJby5ghu1AAELCCNSsLAjK+lz6kYzNM5sqnBO36MqfsjhPjQF/BaJM5U/UuFYyl7PavY/wQ==", 131 | "dev": true, 132 | "funding": [ 133 | { 134 | "type": "opencollective", 135 | "url": "https://opencollective.com/postcss/" 136 | }, 137 | { 138 | "type": "tidelift", 139 | "url": "https://tidelift.com/funding/github/npm/autoprefixer" 140 | } 141 | ], 142 | "dependencies": { 143 | "browserslist": "^4.21.3", 144 | "caniuse-lite": "^1.0.30001394", 145 | "fraction.js": "^4.2.0", 146 | "normalize-range": "^0.1.2", 147 | "picocolors": "^1.0.0", 148 | "postcss-value-parser": "^4.2.0" 149 | }, 150 | "bin": { 151 | "autoprefixer": "bin/autoprefixer" 152 | }, 153 | "engines": { 154 | "node": "^10 || ^12 || >=14" 155 | }, 156 | "peerDependencies": { 157 | "postcss": "^8.1.0" 158 | } 159 | }, 160 | "node_modules/balanced-match": { 161 | "version": "1.0.2", 162 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 163 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 164 | "dev": true 165 | }, 166 | "node_modules/binary-extensions": { 167 | "version": "2.2.0", 168 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 169 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 170 | "dev": true, 171 | "engines": { 172 | "node": ">=8" 173 | } 174 | }, 175 | "node_modules/brace-expansion": { 176 | "version": "1.1.11", 177 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 178 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 179 | "dev": true, 180 | "dependencies": { 181 | "balanced-match": "^1.0.0", 182 | "concat-map": "0.0.1" 183 | } 184 | }, 185 | "node_modules/braces": { 186 | "version": "3.0.2", 187 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 188 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 189 | "dev": true, 190 | "dependencies": { 191 | "fill-range": "^7.0.1" 192 | }, 193 | "engines": { 194 | "node": ">=8" 195 | } 196 | }, 197 | "node_modules/browserslist": { 198 | "version": "4.21.3", 199 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", 200 | "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", 201 | "dev": true, 202 | "funding": [ 203 | { 204 | "type": "opencollective", 205 | "url": "https://opencollective.com/browserslist" 206 | }, 207 | { 208 | "type": "tidelift", 209 | "url": "https://tidelift.com/funding/github/npm/browserslist" 210 | } 211 | ], 212 | "dependencies": { 213 | "caniuse-lite": "^1.0.30001370", 214 | "electron-to-chromium": "^1.4.202", 215 | "node-releases": "^2.0.6", 216 | "update-browserslist-db": "^1.0.5" 217 | }, 218 | "bin": { 219 | "browserslist": "cli.js" 220 | }, 221 | "engines": { 222 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 223 | } 224 | }, 225 | "node_modules/camel-case": { 226 | "version": "4.1.2", 227 | "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", 228 | "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", 229 | "dev": true, 230 | "dependencies": { 231 | "pascal-case": "^3.1.2", 232 | "tslib": "^2.0.3" 233 | } 234 | }, 235 | "node_modules/camelcase-css": { 236 | "version": "2.0.1", 237 | "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", 238 | "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", 239 | "dev": true, 240 | "engines": { 241 | "node": ">= 6" 242 | } 243 | }, 244 | "node_modules/caniuse-lite": { 245 | "version": "1.0.30001397", 246 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001397.tgz", 247 | "integrity": "sha512-SW9N2TbCdLf0eiNDRrrQXx2sOkaakNZbCjgNpPyMJJbiOrU5QzMIrXOVMRM1myBXTD5iTkdrtU/EguCrBocHlA==", 248 | "dev": true, 249 | "funding": [ 250 | { 251 | "type": "opencollective", 252 | "url": "https://opencollective.com/browserslist" 253 | }, 254 | { 255 | "type": "tidelift", 256 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite" 257 | } 258 | ] 259 | }, 260 | "node_modules/capital-case": { 261 | "version": "1.0.4", 262 | "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", 263 | "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", 264 | "dev": true, 265 | "dependencies": { 266 | "no-case": "^3.0.4", 267 | "tslib": "^2.0.3", 268 | "upper-case-first": "^2.0.2" 269 | } 270 | }, 271 | "node_modules/chalk": { 272 | "version": "4.1.2", 273 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 274 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 275 | "dev": true, 276 | "dependencies": { 277 | "ansi-styles": "^4.1.0", 278 | "supports-color": "^7.1.0" 279 | }, 280 | "engines": { 281 | "node": ">=10" 282 | }, 283 | "funding": { 284 | "url": "https://github.com/chalk/chalk?sponsor=1" 285 | } 286 | }, 287 | "node_modules/change-case": { 288 | "version": "4.1.2", 289 | "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", 290 | "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", 291 | "dev": true, 292 | "dependencies": { 293 | "camel-case": "^4.1.2", 294 | "capital-case": "^1.0.4", 295 | "constant-case": "^3.0.4", 296 | "dot-case": "^3.0.4", 297 | "header-case": "^2.0.4", 298 | "no-case": "^3.0.4", 299 | "param-case": "^3.0.4", 300 | "pascal-case": "^3.1.2", 301 | "path-case": "^3.0.4", 302 | "sentence-case": "^3.0.4", 303 | "snake-case": "^3.0.4", 304 | "tslib": "^2.0.3" 305 | } 306 | }, 307 | "node_modules/chokidar": { 308 | "version": "3.5.3", 309 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", 310 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 311 | "dev": true, 312 | "funding": [ 313 | { 314 | "type": "individual", 315 | "url": "https://paulmillr.com/funding/" 316 | } 317 | ], 318 | "dependencies": { 319 | "anymatch": "~3.1.2", 320 | "braces": "~3.0.2", 321 | "glob-parent": "~5.1.2", 322 | "is-binary-path": "~2.1.0", 323 | "is-glob": "~4.0.1", 324 | "normalize-path": "~3.0.0", 325 | "readdirp": "~3.6.0" 326 | }, 327 | "engines": { 328 | "node": ">= 8.10.0" 329 | }, 330 | "optionalDependencies": { 331 | "fsevents": "~2.3.2" 332 | } 333 | }, 334 | "node_modules/chokidar/node_modules/glob-parent": { 335 | "version": "5.1.2", 336 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 337 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 338 | "dev": true, 339 | "dependencies": { 340 | "is-glob": "^4.0.1" 341 | }, 342 | "engines": { 343 | "node": ">= 6" 344 | } 345 | }, 346 | "node_modules/color-convert": { 347 | "version": "2.0.1", 348 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 349 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 350 | "dev": true, 351 | "dependencies": { 352 | "color-name": "~1.1.4" 353 | }, 354 | "engines": { 355 | "node": ">=7.0.0" 356 | } 357 | }, 358 | "node_modules/color-name": { 359 | "version": "1.1.4", 360 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 361 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 362 | "dev": true 363 | }, 364 | "node_modules/commander": { 365 | "version": "8.3.0", 366 | "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", 367 | "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", 368 | "dev": true, 369 | "engines": { 370 | "node": ">= 12" 371 | } 372 | }, 373 | "node_modules/concat-map": { 374 | "version": "0.0.1", 375 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 376 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 377 | "dev": true 378 | }, 379 | "node_modules/constant-case": { 380 | "version": "3.0.4", 381 | "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", 382 | "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", 383 | "dev": true, 384 | "dependencies": { 385 | "no-case": "^3.0.4", 386 | "tslib": "^2.0.3", 387 | "upper-case": "^2.0.2" 388 | } 389 | }, 390 | "node_modules/cssesc": { 391 | "version": "3.0.0", 392 | "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", 393 | "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", 394 | "dev": true, 395 | "bin": { 396 | "cssesc": "bin/cssesc" 397 | }, 398 | "engines": { 399 | "node": ">=4" 400 | } 401 | }, 402 | "node_modules/defined": { 403 | "version": "1.0.0", 404 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", 405 | "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==", 406 | "dev": true 407 | }, 408 | "node_modules/detective": { 409 | "version": "5.2.1", 410 | "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", 411 | "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", 412 | "dev": true, 413 | "dependencies": { 414 | "acorn-node": "^1.8.2", 415 | "defined": "^1.0.0", 416 | "minimist": "^1.2.6" 417 | }, 418 | "bin": { 419 | "detective": "bin/detective.js" 420 | }, 421 | "engines": { 422 | "node": ">=0.8.0" 423 | } 424 | }, 425 | "node_modules/didyoumean": { 426 | "version": "1.2.2", 427 | "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", 428 | "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", 429 | "dev": true 430 | }, 431 | "node_modules/dlv": { 432 | "version": "1.1.3", 433 | "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", 434 | "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", 435 | "dev": true 436 | }, 437 | "node_modules/dot-case": { 438 | "version": "3.0.4", 439 | "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", 440 | "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", 441 | "dev": true, 442 | "dependencies": { 443 | "no-case": "^3.0.4", 444 | "tslib": "^2.0.3" 445 | } 446 | }, 447 | "node_modules/electron-to-chromium": { 448 | "version": "1.4.247", 449 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.247.tgz", 450 | "integrity": "sha512-FLs6R4FQE+1JHM0hh3sfdxnYjKvJpHZyhQDjc2qFq/xFvmmRt/TATNToZhrcGUFzpF2XjeiuozrA8lI0PZmYYw==", 451 | "dev": true 452 | }, 453 | "node_modules/escalade": { 454 | "version": "3.1.1", 455 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 456 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 457 | "dev": true, 458 | "engines": { 459 | "node": ">=6" 460 | } 461 | }, 462 | "node_modules/fast-glob": { 463 | "version": "3.2.12", 464 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", 465 | "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", 466 | "dev": true, 467 | "dependencies": { 468 | "@nodelib/fs.stat": "^2.0.2", 469 | "@nodelib/fs.walk": "^1.2.3", 470 | "glob-parent": "^5.1.2", 471 | "merge2": "^1.3.0", 472 | "micromatch": "^4.0.4" 473 | }, 474 | "engines": { 475 | "node": ">=8.6.0" 476 | } 477 | }, 478 | "node_modules/fast-glob/node_modules/glob-parent": { 479 | "version": "5.1.2", 480 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 481 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 482 | "dev": true, 483 | "dependencies": { 484 | "is-glob": "^4.0.1" 485 | }, 486 | "engines": { 487 | "node": ">= 6" 488 | } 489 | }, 490 | "node_modules/fastq": { 491 | "version": "1.13.0", 492 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", 493 | "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", 494 | "dev": true, 495 | "dependencies": { 496 | "reusify": "^1.0.4" 497 | } 498 | }, 499 | "node_modules/fill-range": { 500 | "version": "7.0.1", 501 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 502 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 503 | "dev": true, 504 | "dependencies": { 505 | "to-regex-range": "^5.0.1" 506 | }, 507 | "engines": { 508 | "node": ">=8" 509 | } 510 | }, 511 | "node_modules/fraction.js": { 512 | "version": "4.2.0", 513 | "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", 514 | "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", 515 | "dev": true, 516 | "engines": { 517 | "node": "*" 518 | }, 519 | "funding": { 520 | "type": "patreon", 521 | "url": "https://www.patreon.com/infusion" 522 | } 523 | }, 524 | "node_modules/fs-extra": { 525 | "version": "10.1.0", 526 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", 527 | "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", 528 | "dev": true, 529 | "dependencies": { 530 | "graceful-fs": "^4.2.0", 531 | "jsonfile": "^6.0.1", 532 | "universalify": "^2.0.0" 533 | }, 534 | "engines": { 535 | "node": ">=12" 536 | } 537 | }, 538 | "node_modules/fs.realpath": { 539 | "version": "1.0.0", 540 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 541 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", 542 | "dev": true 543 | }, 544 | "node_modules/fsevents": { 545 | "version": "2.3.2", 546 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 547 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 548 | "dev": true, 549 | "hasInstallScript": true, 550 | "optional": true, 551 | "os": [ 552 | "darwin" 553 | ], 554 | "engines": { 555 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 556 | } 557 | }, 558 | "node_modules/function-bind": { 559 | "version": "1.1.1", 560 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 561 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 562 | "dev": true 563 | }, 564 | "node_modules/glob": { 565 | "version": "7.2.3", 566 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 567 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 568 | "dev": true, 569 | "dependencies": { 570 | "fs.realpath": "^1.0.0", 571 | "inflight": "^1.0.4", 572 | "inherits": "2", 573 | "minimatch": "^3.1.1", 574 | "once": "^1.3.0", 575 | "path-is-absolute": "^1.0.0" 576 | }, 577 | "engines": { 578 | "node": "*" 579 | }, 580 | "funding": { 581 | "url": "https://github.com/sponsors/isaacs" 582 | } 583 | }, 584 | "node_modules/glob-parent": { 585 | "version": "6.0.2", 586 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 587 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 588 | "dev": true, 589 | "dependencies": { 590 | "is-glob": "^4.0.3" 591 | }, 592 | "engines": { 593 | "node": ">=10.13.0" 594 | } 595 | }, 596 | "node_modules/graceful-fs": { 597 | "version": "4.2.10", 598 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", 599 | "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", 600 | "dev": true 601 | }, 602 | "node_modules/has": { 603 | "version": "1.0.3", 604 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 605 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 606 | "dev": true, 607 | "dependencies": { 608 | "function-bind": "^1.1.1" 609 | }, 610 | "engines": { 611 | "node": ">= 0.4.0" 612 | } 613 | }, 614 | "node_modules/has-flag": { 615 | "version": "4.0.0", 616 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 617 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 618 | "dev": true, 619 | "engines": { 620 | "node": ">=8" 621 | } 622 | }, 623 | "node_modules/header-case": { 624 | "version": "2.0.4", 625 | "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", 626 | "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", 627 | "dev": true, 628 | "dependencies": { 629 | "capital-case": "^1.0.4", 630 | "tslib": "^2.0.3" 631 | } 632 | }, 633 | "node_modules/inflight": { 634 | "version": "1.0.6", 635 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 636 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 637 | "dev": true, 638 | "dependencies": { 639 | "once": "^1.3.0", 640 | "wrappy": "1" 641 | } 642 | }, 643 | "node_modules/inherits": { 644 | "version": "2.0.4", 645 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 646 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 647 | "dev": true 648 | }, 649 | "node_modules/is-binary-path": { 650 | "version": "2.1.0", 651 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 652 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 653 | "dev": true, 654 | "dependencies": { 655 | "binary-extensions": "^2.0.0" 656 | }, 657 | "engines": { 658 | "node": ">=8" 659 | } 660 | }, 661 | "node_modules/is-core-module": { 662 | "version": "2.10.0", 663 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", 664 | "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", 665 | "dev": true, 666 | "dependencies": { 667 | "has": "^1.0.3" 668 | }, 669 | "funding": { 670 | "url": "https://github.com/sponsors/ljharb" 671 | } 672 | }, 673 | "node_modules/is-extglob": { 674 | "version": "2.1.1", 675 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 676 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 677 | "dev": true, 678 | "engines": { 679 | "node": ">=0.10.0" 680 | } 681 | }, 682 | "node_modules/is-glob": { 683 | "version": "4.0.3", 684 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 685 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 686 | "dev": true, 687 | "dependencies": { 688 | "is-extglob": "^2.1.1" 689 | }, 690 | "engines": { 691 | "node": ">=0.10.0" 692 | } 693 | }, 694 | "node_modules/is-number": { 695 | "version": "7.0.0", 696 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 697 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 698 | "dev": true, 699 | "engines": { 700 | "node": ">=0.12.0" 701 | } 702 | }, 703 | "node_modules/json5": { 704 | "version": "2.2.1", 705 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", 706 | "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", 707 | "dev": true, 708 | "bin": { 709 | "json5": "lib/cli.js" 710 | }, 711 | "engines": { 712 | "node": ">=6" 713 | } 714 | }, 715 | "node_modules/jsonc-parser": { 716 | "version": "3.2.0", 717 | "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", 718 | "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", 719 | "dev": true 720 | }, 721 | "node_modules/jsonfile": { 722 | "version": "6.1.0", 723 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", 724 | "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", 725 | "dev": true, 726 | "dependencies": { 727 | "universalify": "^2.0.0" 728 | }, 729 | "optionalDependencies": { 730 | "graceful-fs": "^4.1.6" 731 | } 732 | }, 733 | "node_modules/lilconfig": { 734 | "version": "2.0.6", 735 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", 736 | "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", 737 | "dev": true, 738 | "engines": { 739 | "node": ">=10" 740 | } 741 | }, 742 | "node_modules/lodash": { 743 | "version": "4.17.21", 744 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 745 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", 746 | "dev": true 747 | }, 748 | "node_modules/lower-case": { 749 | "version": "2.0.2", 750 | "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", 751 | "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", 752 | "dev": true, 753 | "dependencies": { 754 | "tslib": "^2.0.3" 755 | } 756 | }, 757 | "node_modules/merge2": { 758 | "version": "1.4.1", 759 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 760 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 761 | "dev": true, 762 | "engines": { 763 | "node": ">= 8" 764 | } 765 | }, 766 | "node_modules/micromatch": { 767 | "version": "4.0.5", 768 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", 769 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", 770 | "dev": true, 771 | "dependencies": { 772 | "braces": "^3.0.2", 773 | "picomatch": "^2.3.1" 774 | }, 775 | "engines": { 776 | "node": ">=8.6" 777 | } 778 | }, 779 | "node_modules/minimatch": { 780 | "version": "3.1.2", 781 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 782 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 783 | "dev": true, 784 | "dependencies": { 785 | "brace-expansion": "^1.1.7" 786 | }, 787 | "engines": { 788 | "node": "*" 789 | } 790 | }, 791 | "node_modules/minimist": { 792 | "version": "1.2.6", 793 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", 794 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", 795 | "dev": true 796 | }, 797 | "node_modules/nanoid": { 798 | "version": "3.3.4", 799 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 800 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", 801 | "dev": true, 802 | "bin": { 803 | "nanoid": "bin/nanoid.cjs" 804 | }, 805 | "engines": { 806 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 807 | } 808 | }, 809 | "node_modules/no-case": { 810 | "version": "3.0.4", 811 | "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", 812 | "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", 813 | "dev": true, 814 | "dependencies": { 815 | "lower-case": "^2.0.2", 816 | "tslib": "^2.0.3" 817 | } 818 | }, 819 | "node_modules/node-releases": { 820 | "version": "2.0.6", 821 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", 822 | "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", 823 | "dev": true 824 | }, 825 | "node_modules/normalize-path": { 826 | "version": "3.0.0", 827 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 828 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 829 | "dev": true, 830 | "engines": { 831 | "node": ">=0.10.0" 832 | } 833 | }, 834 | "node_modules/normalize-range": { 835 | "version": "0.1.2", 836 | "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", 837 | "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", 838 | "dev": true, 839 | "engines": { 840 | "node": ">=0.10.0" 841 | } 842 | }, 843 | "node_modules/object-hash": { 844 | "version": "3.0.0", 845 | "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", 846 | "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", 847 | "dev": true, 848 | "engines": { 849 | "node": ">= 6" 850 | } 851 | }, 852 | "node_modules/once": { 853 | "version": "1.4.0", 854 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 855 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 856 | "dev": true, 857 | "dependencies": { 858 | "wrappy": "1" 859 | } 860 | }, 861 | "node_modules/param-case": { 862 | "version": "3.0.4", 863 | "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", 864 | "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", 865 | "dev": true, 866 | "dependencies": { 867 | "dot-case": "^3.0.4", 868 | "tslib": "^2.0.3" 869 | } 870 | }, 871 | "node_modules/pascal-case": { 872 | "version": "3.1.2", 873 | "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", 874 | "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", 875 | "dev": true, 876 | "dependencies": { 877 | "no-case": "^3.0.4", 878 | "tslib": "^2.0.3" 879 | } 880 | }, 881 | "node_modules/path-case": { 882 | "version": "3.0.4", 883 | "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", 884 | "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", 885 | "dev": true, 886 | "dependencies": { 887 | "dot-case": "^3.0.4", 888 | "tslib": "^2.0.3" 889 | } 890 | }, 891 | "node_modules/path-is-absolute": { 892 | "version": "1.0.1", 893 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 894 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", 895 | "dev": true, 896 | "engines": { 897 | "node": ">=0.10.0" 898 | } 899 | }, 900 | "node_modules/path-parse": { 901 | "version": "1.0.7", 902 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 903 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 904 | "dev": true 905 | }, 906 | "node_modules/picocolors": { 907 | "version": "1.0.0", 908 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 909 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 910 | "dev": true 911 | }, 912 | "node_modules/picomatch": { 913 | "version": "2.3.1", 914 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 915 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 916 | "dev": true, 917 | "engines": { 918 | "node": ">=8.6" 919 | }, 920 | "funding": { 921 | "url": "https://github.com/sponsors/jonschlinkert" 922 | } 923 | }, 924 | "node_modules/pify": { 925 | "version": "2.3.0", 926 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 927 | "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", 928 | "dev": true, 929 | "engines": { 930 | "node": ">=0.10.0" 931 | } 932 | }, 933 | "node_modules/postcss": { 934 | "version": "8.4.16", 935 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", 936 | "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", 937 | "dev": true, 938 | "funding": [ 939 | { 940 | "type": "opencollective", 941 | "url": "https://opencollective.com/postcss/" 942 | }, 943 | { 944 | "type": "tidelift", 945 | "url": "https://tidelift.com/funding/github/npm/postcss" 946 | } 947 | ], 948 | "dependencies": { 949 | "nanoid": "^3.3.4", 950 | "picocolors": "^1.0.0", 951 | "source-map-js": "^1.0.2" 952 | }, 953 | "engines": { 954 | "node": "^10 || ^12 || >=14" 955 | } 956 | }, 957 | "node_modules/postcss-import": { 958 | "version": "14.1.0", 959 | "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", 960 | "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", 961 | "dev": true, 962 | "dependencies": { 963 | "postcss-value-parser": "^4.0.0", 964 | "read-cache": "^1.0.0", 965 | "resolve": "^1.1.7" 966 | }, 967 | "engines": { 968 | "node": ">=10.0.0" 969 | }, 970 | "peerDependencies": { 971 | "postcss": "^8.0.0" 972 | } 973 | }, 974 | "node_modules/postcss-js": { 975 | "version": "4.0.0", 976 | "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", 977 | "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", 978 | "dev": true, 979 | "dependencies": { 980 | "camelcase-css": "^2.0.1" 981 | }, 982 | "engines": { 983 | "node": "^12 || ^14 || >= 16" 984 | }, 985 | "funding": { 986 | "type": "opencollective", 987 | "url": "https://opencollective.com/postcss/" 988 | }, 989 | "peerDependencies": { 990 | "postcss": "^8.3.3" 991 | } 992 | }, 993 | "node_modules/postcss-load-config": { 994 | "version": "3.1.4", 995 | "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", 996 | "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", 997 | "dev": true, 998 | "dependencies": { 999 | "lilconfig": "^2.0.5", 1000 | "yaml": "^1.10.2" 1001 | }, 1002 | "engines": { 1003 | "node": ">= 10" 1004 | }, 1005 | "funding": { 1006 | "type": "opencollective", 1007 | "url": "https://opencollective.com/postcss/" 1008 | }, 1009 | "peerDependencies": { 1010 | "postcss": ">=8.0.9", 1011 | "ts-node": ">=9.0.0" 1012 | }, 1013 | "peerDependenciesMeta": { 1014 | "postcss": { 1015 | "optional": true 1016 | }, 1017 | "ts-node": { 1018 | "optional": true 1019 | } 1020 | } 1021 | }, 1022 | "node_modules/postcss-nested": { 1023 | "version": "5.0.6", 1024 | "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", 1025 | "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", 1026 | "dev": true, 1027 | "dependencies": { 1028 | "postcss-selector-parser": "^6.0.6" 1029 | }, 1030 | "engines": { 1031 | "node": ">=12.0" 1032 | }, 1033 | "funding": { 1034 | "type": "opencollective", 1035 | "url": "https://opencollective.com/postcss/" 1036 | }, 1037 | "peerDependencies": { 1038 | "postcss": "^8.2.14" 1039 | } 1040 | }, 1041 | "node_modules/postcss-selector-parser": { 1042 | "version": "6.0.10", 1043 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", 1044 | "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", 1045 | "dev": true, 1046 | "dependencies": { 1047 | "cssesc": "^3.0.0", 1048 | "util-deprecate": "^1.0.2" 1049 | }, 1050 | "engines": { 1051 | "node": ">=4" 1052 | } 1053 | }, 1054 | "node_modules/postcss-value-parser": { 1055 | "version": "4.2.0", 1056 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", 1057 | "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", 1058 | "dev": true 1059 | }, 1060 | "node_modules/queue-microtask": { 1061 | "version": "1.2.3", 1062 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 1063 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 1064 | "dev": true, 1065 | "funding": [ 1066 | { 1067 | "type": "github", 1068 | "url": "https://github.com/sponsors/feross" 1069 | }, 1070 | { 1071 | "type": "patreon", 1072 | "url": "https://www.patreon.com/feross" 1073 | }, 1074 | { 1075 | "type": "consulting", 1076 | "url": "https://feross.org/support" 1077 | } 1078 | ] 1079 | }, 1080 | "node_modules/quick-lru": { 1081 | "version": "5.1.1", 1082 | "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", 1083 | "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", 1084 | "dev": true, 1085 | "engines": { 1086 | "node": ">=10" 1087 | }, 1088 | "funding": { 1089 | "url": "https://github.com/sponsors/sindresorhus" 1090 | } 1091 | }, 1092 | "node_modules/read-cache": { 1093 | "version": "1.0.0", 1094 | "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", 1095 | "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", 1096 | "dev": true, 1097 | "dependencies": { 1098 | "pify": "^2.3.0" 1099 | } 1100 | }, 1101 | "node_modules/readdirp": { 1102 | "version": "3.6.0", 1103 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 1104 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 1105 | "dev": true, 1106 | "dependencies": { 1107 | "picomatch": "^2.2.1" 1108 | }, 1109 | "engines": { 1110 | "node": ">=8.10.0" 1111 | } 1112 | }, 1113 | "node_modules/resolve": { 1114 | "version": "1.22.1", 1115 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", 1116 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", 1117 | "dev": true, 1118 | "dependencies": { 1119 | "is-core-module": "^2.9.0", 1120 | "path-parse": "^1.0.7", 1121 | "supports-preserve-symlinks-flag": "^1.0.0" 1122 | }, 1123 | "bin": { 1124 | "resolve": "bin/resolve" 1125 | }, 1126 | "funding": { 1127 | "url": "https://github.com/sponsors/ljharb" 1128 | } 1129 | }, 1130 | "node_modules/reusify": { 1131 | "version": "1.0.4", 1132 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 1133 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 1134 | "dev": true, 1135 | "engines": { 1136 | "iojs": ">=1.0.0", 1137 | "node": ">=0.10.0" 1138 | } 1139 | }, 1140 | "node_modules/run-parallel": { 1141 | "version": "1.2.0", 1142 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 1143 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 1144 | "dev": true, 1145 | "funding": [ 1146 | { 1147 | "type": "github", 1148 | "url": "https://github.com/sponsors/feross" 1149 | }, 1150 | { 1151 | "type": "patreon", 1152 | "url": "https://www.patreon.com/feross" 1153 | }, 1154 | { 1155 | "type": "consulting", 1156 | "url": "https://feross.org/support" 1157 | } 1158 | ], 1159 | "dependencies": { 1160 | "queue-microtask": "^1.2.2" 1161 | } 1162 | }, 1163 | "node_modules/sentence-case": { 1164 | "version": "3.0.4", 1165 | "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", 1166 | "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", 1167 | "dev": true, 1168 | "dependencies": { 1169 | "no-case": "^3.0.4", 1170 | "tslib": "^2.0.3", 1171 | "upper-case-first": "^2.0.2" 1172 | } 1173 | }, 1174 | "node_modules/snake-case": { 1175 | "version": "3.0.4", 1176 | "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", 1177 | "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", 1178 | "dev": true, 1179 | "dependencies": { 1180 | "dot-case": "^3.0.4", 1181 | "tslib": "^2.0.3" 1182 | } 1183 | }, 1184 | "node_modules/source-map-js": { 1185 | "version": "1.0.2", 1186 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 1187 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 1188 | "dev": true, 1189 | "engines": { 1190 | "node": ">=0.10.0" 1191 | } 1192 | }, 1193 | "node_modules/style-dictionary": { 1194 | "version": "3.7.1", 1195 | "resolved": "https://registry.npmjs.org/style-dictionary/-/style-dictionary-3.7.1.tgz", 1196 | "integrity": "sha512-yYU9Z/J8Znj9T9oJVjo8VOYamrOxv0UbBKPjhSt+PharxrhyQCM4RWb71fgEfv2pK9KO8G83/0ChDNQZ1mn0wQ==", 1197 | "dev": true, 1198 | "dependencies": { 1199 | "chalk": "^4.0.0", 1200 | "change-case": "^4.1.2", 1201 | "commander": "^8.3.0", 1202 | "fs-extra": "^10.0.0", 1203 | "glob": "^7.2.0", 1204 | "json5": "^2.2.0", 1205 | "jsonc-parser": "^3.0.0", 1206 | "lodash": "^4.17.15", 1207 | "tinycolor2": "^1.4.1" 1208 | }, 1209 | "bin": { 1210 | "style-dictionary": "bin/style-dictionary" 1211 | }, 1212 | "engines": { 1213 | "node": ">=12.0.0" 1214 | } 1215 | }, 1216 | "node_modules/supports-color": { 1217 | "version": "7.2.0", 1218 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 1219 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 1220 | "dev": true, 1221 | "dependencies": { 1222 | "has-flag": "^4.0.0" 1223 | }, 1224 | "engines": { 1225 | "node": ">=8" 1226 | } 1227 | }, 1228 | "node_modules/supports-preserve-symlinks-flag": { 1229 | "version": "1.0.0", 1230 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 1231 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 1232 | "dev": true, 1233 | "engines": { 1234 | "node": ">= 0.4" 1235 | }, 1236 | "funding": { 1237 | "url": "https://github.com/sponsors/ljharb" 1238 | } 1239 | }, 1240 | "node_modules/tailwindcss": { 1241 | "version": "3.1.8", 1242 | "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.1.8.tgz", 1243 | "integrity": "sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g==", 1244 | "dev": true, 1245 | "dependencies": { 1246 | "arg": "^5.0.2", 1247 | "chokidar": "^3.5.3", 1248 | "color-name": "^1.1.4", 1249 | "detective": "^5.2.1", 1250 | "didyoumean": "^1.2.2", 1251 | "dlv": "^1.1.3", 1252 | "fast-glob": "^3.2.11", 1253 | "glob-parent": "^6.0.2", 1254 | "is-glob": "^4.0.3", 1255 | "lilconfig": "^2.0.6", 1256 | "normalize-path": "^3.0.0", 1257 | "object-hash": "^3.0.0", 1258 | "picocolors": "^1.0.0", 1259 | "postcss": "^8.4.14", 1260 | "postcss-import": "^14.1.0", 1261 | "postcss-js": "^4.0.0", 1262 | "postcss-load-config": "^3.1.4", 1263 | "postcss-nested": "5.0.6", 1264 | "postcss-selector-parser": "^6.0.10", 1265 | "postcss-value-parser": "^4.2.0", 1266 | "quick-lru": "^5.1.1", 1267 | "resolve": "^1.22.1" 1268 | }, 1269 | "bin": { 1270 | "tailwind": "lib/cli.js", 1271 | "tailwindcss": "lib/cli.js" 1272 | }, 1273 | "engines": { 1274 | "node": ">=12.13.0" 1275 | }, 1276 | "peerDependencies": { 1277 | "postcss": "^8.0.9" 1278 | } 1279 | }, 1280 | "node_modules/tinycolor2": { 1281 | "version": "1.4.2", 1282 | "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", 1283 | "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==", 1284 | "dev": true, 1285 | "engines": { 1286 | "node": "*" 1287 | } 1288 | }, 1289 | "node_modules/to-regex-range": { 1290 | "version": "5.0.1", 1291 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 1292 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 1293 | "dev": true, 1294 | "dependencies": { 1295 | "is-number": "^7.0.0" 1296 | }, 1297 | "engines": { 1298 | "node": ">=8.0" 1299 | } 1300 | }, 1301 | "node_modules/tslib": { 1302 | "version": "2.4.0", 1303 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", 1304 | "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", 1305 | "dev": true 1306 | }, 1307 | "node_modules/universalify": { 1308 | "version": "2.0.0", 1309 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", 1310 | "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", 1311 | "dev": true, 1312 | "engines": { 1313 | "node": ">= 10.0.0" 1314 | } 1315 | }, 1316 | "node_modules/update-browserslist-db": { 1317 | "version": "1.0.7", 1318 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.7.tgz", 1319 | "integrity": "sha512-iN/XYesmZ2RmmWAiI4Z5rq0YqSiv0brj9Ce9CfhNE4xIW2h+MFxcgkxIzZ+ShkFPUkjU3gQ+3oypadD3RAMtrg==", 1320 | "dev": true, 1321 | "funding": [ 1322 | { 1323 | "type": "opencollective", 1324 | "url": "https://opencollective.com/browserslist" 1325 | }, 1326 | { 1327 | "type": "tidelift", 1328 | "url": "https://tidelift.com/funding/github/npm/browserslist" 1329 | } 1330 | ], 1331 | "dependencies": { 1332 | "escalade": "^3.1.1", 1333 | "picocolors": "^1.0.0" 1334 | }, 1335 | "bin": { 1336 | "browserslist-lint": "cli.js" 1337 | }, 1338 | "peerDependencies": { 1339 | "browserslist": ">= 4.21.0" 1340 | } 1341 | }, 1342 | "node_modules/upper-case": { 1343 | "version": "2.0.2", 1344 | "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", 1345 | "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", 1346 | "dev": true, 1347 | "dependencies": { 1348 | "tslib": "^2.0.3" 1349 | } 1350 | }, 1351 | "node_modules/upper-case-first": { 1352 | "version": "2.0.2", 1353 | "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", 1354 | "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", 1355 | "dev": true, 1356 | "dependencies": { 1357 | "tslib": "^2.0.3" 1358 | } 1359 | }, 1360 | "node_modules/util-deprecate": { 1361 | "version": "1.0.2", 1362 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1363 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", 1364 | "dev": true 1365 | }, 1366 | "node_modules/wrappy": { 1367 | "version": "1.0.2", 1368 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1369 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", 1370 | "dev": true 1371 | }, 1372 | "node_modules/xtend": { 1373 | "version": "4.0.2", 1374 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", 1375 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", 1376 | "dev": true, 1377 | "engines": { 1378 | "node": ">=0.4" 1379 | } 1380 | }, 1381 | "node_modules/yaml": { 1382 | "version": "1.10.2", 1383 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", 1384 | "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", 1385 | "dev": true, 1386 | "engines": { 1387 | "node": ">= 6" 1388 | } 1389 | } 1390 | }, 1391 | "dependencies": { 1392 | "@divriots/style-dictionary-to-figma": { 1393 | "version": "0.3.2", 1394 | "resolved": "https://registry.npmjs.org/@divriots/style-dictionary-to-figma/-/style-dictionary-to-figma-0.3.2.tgz", 1395 | "integrity": "sha512-qI4eCqAIyrWve+Tiaa74cQqhDCEtyZXy/5h3Kr+Hm/oZ6gf3o++i8EZ9ZZ/pebOKpLnQ+DvceJOxf9YF2R83SA==" 1396 | }, 1397 | "@nodelib/fs.scandir": { 1398 | "version": "2.1.5", 1399 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 1400 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 1401 | "dev": true, 1402 | "requires": { 1403 | "@nodelib/fs.stat": "2.0.5", 1404 | "run-parallel": "^1.1.9" 1405 | } 1406 | }, 1407 | "@nodelib/fs.stat": { 1408 | "version": "2.0.5", 1409 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 1410 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 1411 | "dev": true 1412 | }, 1413 | "@nodelib/fs.walk": { 1414 | "version": "1.2.8", 1415 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 1416 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 1417 | "dev": true, 1418 | "requires": { 1419 | "@nodelib/fs.scandir": "2.1.5", 1420 | "fastq": "^1.6.0" 1421 | } 1422 | }, 1423 | "acorn": { 1424 | "version": "7.4.1", 1425 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", 1426 | "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", 1427 | "dev": true 1428 | }, 1429 | "acorn-node": { 1430 | "version": "1.8.2", 1431 | "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", 1432 | "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", 1433 | "dev": true, 1434 | "requires": { 1435 | "acorn": "^7.0.0", 1436 | "acorn-walk": "^7.0.0", 1437 | "xtend": "^4.0.2" 1438 | } 1439 | }, 1440 | "acorn-walk": { 1441 | "version": "7.2.0", 1442 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", 1443 | "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", 1444 | "dev": true 1445 | }, 1446 | "ansi-styles": { 1447 | "version": "4.3.0", 1448 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 1449 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 1450 | "dev": true, 1451 | "requires": { 1452 | "color-convert": "^2.0.1" 1453 | } 1454 | }, 1455 | "anymatch": { 1456 | "version": "3.1.2", 1457 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", 1458 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", 1459 | "dev": true, 1460 | "requires": { 1461 | "normalize-path": "^3.0.0", 1462 | "picomatch": "^2.0.4" 1463 | } 1464 | }, 1465 | "arg": { 1466 | "version": "5.0.2", 1467 | "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", 1468 | "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", 1469 | "dev": true 1470 | }, 1471 | "autoprefixer": { 1472 | "version": "10.4.9", 1473 | "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.9.tgz", 1474 | "integrity": "sha512-Uu67eduPEmOeA0vyJby5ghu1AAELCCNSsLAjK+lz6kYzNM5sqnBO36MqfsjhPjQF/BaJM5U/UuFYyl7PavY/wQ==", 1475 | "dev": true, 1476 | "requires": { 1477 | "browserslist": "^4.21.3", 1478 | "caniuse-lite": "^1.0.30001394", 1479 | "fraction.js": "^4.2.0", 1480 | "normalize-range": "^0.1.2", 1481 | "picocolors": "^1.0.0", 1482 | "postcss-value-parser": "^4.2.0" 1483 | } 1484 | }, 1485 | "balanced-match": { 1486 | "version": "1.0.2", 1487 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 1488 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 1489 | "dev": true 1490 | }, 1491 | "binary-extensions": { 1492 | "version": "2.2.0", 1493 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 1494 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 1495 | "dev": true 1496 | }, 1497 | "brace-expansion": { 1498 | "version": "1.1.11", 1499 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 1500 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1501 | "dev": true, 1502 | "requires": { 1503 | "balanced-match": "^1.0.0", 1504 | "concat-map": "0.0.1" 1505 | } 1506 | }, 1507 | "braces": { 1508 | "version": "3.0.2", 1509 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 1510 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 1511 | "dev": true, 1512 | "requires": { 1513 | "fill-range": "^7.0.1" 1514 | } 1515 | }, 1516 | "browserslist": { 1517 | "version": "4.21.3", 1518 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", 1519 | "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", 1520 | "dev": true, 1521 | "requires": { 1522 | "caniuse-lite": "^1.0.30001370", 1523 | "electron-to-chromium": "^1.4.202", 1524 | "node-releases": "^2.0.6", 1525 | "update-browserslist-db": "^1.0.5" 1526 | } 1527 | }, 1528 | "camel-case": { 1529 | "version": "4.1.2", 1530 | "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", 1531 | "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", 1532 | "dev": true, 1533 | "requires": { 1534 | "pascal-case": "^3.1.2", 1535 | "tslib": "^2.0.3" 1536 | } 1537 | }, 1538 | "camelcase-css": { 1539 | "version": "2.0.1", 1540 | "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", 1541 | "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", 1542 | "dev": true 1543 | }, 1544 | "caniuse-lite": { 1545 | "version": "1.0.30001397", 1546 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001397.tgz", 1547 | "integrity": "sha512-SW9N2TbCdLf0eiNDRrrQXx2sOkaakNZbCjgNpPyMJJbiOrU5QzMIrXOVMRM1myBXTD5iTkdrtU/EguCrBocHlA==", 1548 | "dev": true 1549 | }, 1550 | "capital-case": { 1551 | "version": "1.0.4", 1552 | "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", 1553 | "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", 1554 | "dev": true, 1555 | "requires": { 1556 | "no-case": "^3.0.4", 1557 | "tslib": "^2.0.3", 1558 | "upper-case-first": "^2.0.2" 1559 | } 1560 | }, 1561 | "chalk": { 1562 | "version": "4.1.2", 1563 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 1564 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 1565 | "dev": true, 1566 | "requires": { 1567 | "ansi-styles": "^4.1.0", 1568 | "supports-color": "^7.1.0" 1569 | } 1570 | }, 1571 | "change-case": { 1572 | "version": "4.1.2", 1573 | "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", 1574 | "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", 1575 | "dev": true, 1576 | "requires": { 1577 | "camel-case": "^4.1.2", 1578 | "capital-case": "^1.0.4", 1579 | "constant-case": "^3.0.4", 1580 | "dot-case": "^3.0.4", 1581 | "header-case": "^2.0.4", 1582 | "no-case": "^3.0.4", 1583 | "param-case": "^3.0.4", 1584 | "pascal-case": "^3.1.2", 1585 | "path-case": "^3.0.4", 1586 | "sentence-case": "^3.0.4", 1587 | "snake-case": "^3.0.4", 1588 | "tslib": "^2.0.3" 1589 | } 1590 | }, 1591 | "chokidar": { 1592 | "version": "3.5.3", 1593 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", 1594 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 1595 | "dev": true, 1596 | "requires": { 1597 | "anymatch": "~3.1.2", 1598 | "braces": "~3.0.2", 1599 | "fsevents": "~2.3.2", 1600 | "glob-parent": "~5.1.2", 1601 | "is-binary-path": "~2.1.0", 1602 | "is-glob": "~4.0.1", 1603 | "normalize-path": "~3.0.0", 1604 | "readdirp": "~3.6.0" 1605 | }, 1606 | "dependencies": { 1607 | "glob-parent": { 1608 | "version": "5.1.2", 1609 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 1610 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1611 | "dev": true, 1612 | "requires": { 1613 | "is-glob": "^4.0.1" 1614 | } 1615 | } 1616 | } 1617 | }, 1618 | "color-convert": { 1619 | "version": "2.0.1", 1620 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 1621 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 1622 | "dev": true, 1623 | "requires": { 1624 | "color-name": "~1.1.4" 1625 | } 1626 | }, 1627 | "color-name": { 1628 | "version": "1.1.4", 1629 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 1630 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 1631 | "dev": true 1632 | }, 1633 | "commander": { 1634 | "version": "8.3.0", 1635 | "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", 1636 | "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", 1637 | "dev": true 1638 | }, 1639 | "concat-map": { 1640 | "version": "0.0.1", 1641 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1642 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 1643 | "dev": true 1644 | }, 1645 | "constant-case": { 1646 | "version": "3.0.4", 1647 | "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", 1648 | "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", 1649 | "dev": true, 1650 | "requires": { 1651 | "no-case": "^3.0.4", 1652 | "tslib": "^2.0.3", 1653 | "upper-case": "^2.0.2" 1654 | } 1655 | }, 1656 | "cssesc": { 1657 | "version": "3.0.0", 1658 | "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", 1659 | "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", 1660 | "dev": true 1661 | }, 1662 | "defined": { 1663 | "version": "1.0.0", 1664 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", 1665 | "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==", 1666 | "dev": true 1667 | }, 1668 | "detective": { 1669 | "version": "5.2.1", 1670 | "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", 1671 | "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", 1672 | "dev": true, 1673 | "requires": { 1674 | "acorn-node": "^1.8.2", 1675 | "defined": "^1.0.0", 1676 | "minimist": "^1.2.6" 1677 | } 1678 | }, 1679 | "didyoumean": { 1680 | "version": "1.2.2", 1681 | "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", 1682 | "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", 1683 | "dev": true 1684 | }, 1685 | "dlv": { 1686 | "version": "1.1.3", 1687 | "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", 1688 | "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", 1689 | "dev": true 1690 | }, 1691 | "dot-case": { 1692 | "version": "3.0.4", 1693 | "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", 1694 | "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", 1695 | "dev": true, 1696 | "requires": { 1697 | "no-case": "^3.0.4", 1698 | "tslib": "^2.0.3" 1699 | } 1700 | }, 1701 | "electron-to-chromium": { 1702 | "version": "1.4.247", 1703 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.247.tgz", 1704 | "integrity": "sha512-FLs6R4FQE+1JHM0hh3sfdxnYjKvJpHZyhQDjc2qFq/xFvmmRt/TATNToZhrcGUFzpF2XjeiuozrA8lI0PZmYYw==", 1705 | "dev": true 1706 | }, 1707 | "escalade": { 1708 | "version": "3.1.1", 1709 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 1710 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 1711 | "dev": true 1712 | }, 1713 | "fast-glob": { 1714 | "version": "3.2.12", 1715 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", 1716 | "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", 1717 | "dev": true, 1718 | "requires": { 1719 | "@nodelib/fs.stat": "^2.0.2", 1720 | "@nodelib/fs.walk": "^1.2.3", 1721 | "glob-parent": "^5.1.2", 1722 | "merge2": "^1.3.0", 1723 | "micromatch": "^4.0.4" 1724 | }, 1725 | "dependencies": { 1726 | "glob-parent": { 1727 | "version": "5.1.2", 1728 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 1729 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1730 | "dev": true, 1731 | "requires": { 1732 | "is-glob": "^4.0.1" 1733 | } 1734 | } 1735 | } 1736 | }, 1737 | "fastq": { 1738 | "version": "1.13.0", 1739 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", 1740 | "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", 1741 | "dev": true, 1742 | "requires": { 1743 | "reusify": "^1.0.4" 1744 | } 1745 | }, 1746 | "fill-range": { 1747 | "version": "7.0.1", 1748 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 1749 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 1750 | "dev": true, 1751 | "requires": { 1752 | "to-regex-range": "^5.0.1" 1753 | } 1754 | }, 1755 | "fraction.js": { 1756 | "version": "4.2.0", 1757 | "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", 1758 | "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", 1759 | "dev": true 1760 | }, 1761 | "fs-extra": { 1762 | "version": "10.1.0", 1763 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", 1764 | "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", 1765 | "dev": true, 1766 | "requires": { 1767 | "graceful-fs": "^4.2.0", 1768 | "jsonfile": "^6.0.1", 1769 | "universalify": "^2.0.0" 1770 | } 1771 | }, 1772 | "fs.realpath": { 1773 | "version": "1.0.0", 1774 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1775 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", 1776 | "dev": true 1777 | }, 1778 | "fsevents": { 1779 | "version": "2.3.2", 1780 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 1781 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 1782 | "dev": true, 1783 | "optional": true 1784 | }, 1785 | "function-bind": { 1786 | "version": "1.1.1", 1787 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1788 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1789 | "dev": true 1790 | }, 1791 | "glob": { 1792 | "version": "7.2.3", 1793 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 1794 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 1795 | "dev": true, 1796 | "requires": { 1797 | "fs.realpath": "^1.0.0", 1798 | "inflight": "^1.0.4", 1799 | "inherits": "2", 1800 | "minimatch": "^3.1.1", 1801 | "once": "^1.3.0", 1802 | "path-is-absolute": "^1.0.0" 1803 | } 1804 | }, 1805 | "glob-parent": { 1806 | "version": "6.0.2", 1807 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 1808 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 1809 | "dev": true, 1810 | "requires": { 1811 | "is-glob": "^4.0.3" 1812 | } 1813 | }, 1814 | "graceful-fs": { 1815 | "version": "4.2.10", 1816 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", 1817 | "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", 1818 | "dev": true 1819 | }, 1820 | "has": { 1821 | "version": "1.0.3", 1822 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1823 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1824 | "dev": true, 1825 | "requires": { 1826 | "function-bind": "^1.1.1" 1827 | } 1828 | }, 1829 | "has-flag": { 1830 | "version": "4.0.0", 1831 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 1832 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 1833 | "dev": true 1834 | }, 1835 | "header-case": { 1836 | "version": "2.0.4", 1837 | "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", 1838 | "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", 1839 | "dev": true, 1840 | "requires": { 1841 | "capital-case": "^1.0.4", 1842 | "tslib": "^2.0.3" 1843 | } 1844 | }, 1845 | "inflight": { 1846 | "version": "1.0.6", 1847 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1848 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 1849 | "dev": true, 1850 | "requires": { 1851 | "once": "^1.3.0", 1852 | "wrappy": "1" 1853 | } 1854 | }, 1855 | "inherits": { 1856 | "version": "2.0.4", 1857 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1858 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 1859 | "dev": true 1860 | }, 1861 | "is-binary-path": { 1862 | "version": "2.1.0", 1863 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 1864 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 1865 | "dev": true, 1866 | "requires": { 1867 | "binary-extensions": "^2.0.0" 1868 | } 1869 | }, 1870 | "is-core-module": { 1871 | "version": "2.10.0", 1872 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", 1873 | "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", 1874 | "dev": true, 1875 | "requires": { 1876 | "has": "^1.0.3" 1877 | } 1878 | }, 1879 | "is-extglob": { 1880 | "version": "2.1.1", 1881 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1882 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 1883 | "dev": true 1884 | }, 1885 | "is-glob": { 1886 | "version": "4.0.3", 1887 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 1888 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 1889 | "dev": true, 1890 | "requires": { 1891 | "is-extglob": "^2.1.1" 1892 | } 1893 | }, 1894 | "is-number": { 1895 | "version": "7.0.0", 1896 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 1897 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 1898 | "dev": true 1899 | }, 1900 | "json5": { 1901 | "version": "2.2.1", 1902 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", 1903 | "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", 1904 | "dev": true 1905 | }, 1906 | "jsonc-parser": { 1907 | "version": "3.2.0", 1908 | "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", 1909 | "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", 1910 | "dev": true 1911 | }, 1912 | "jsonfile": { 1913 | "version": "6.1.0", 1914 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", 1915 | "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", 1916 | "dev": true, 1917 | "requires": { 1918 | "graceful-fs": "^4.1.6", 1919 | "universalify": "^2.0.0" 1920 | } 1921 | }, 1922 | "lilconfig": { 1923 | "version": "2.0.6", 1924 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", 1925 | "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", 1926 | "dev": true 1927 | }, 1928 | "lodash": { 1929 | "version": "4.17.21", 1930 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 1931 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", 1932 | "dev": true 1933 | }, 1934 | "lower-case": { 1935 | "version": "2.0.2", 1936 | "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", 1937 | "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", 1938 | "dev": true, 1939 | "requires": { 1940 | "tslib": "^2.0.3" 1941 | } 1942 | }, 1943 | "merge2": { 1944 | "version": "1.4.1", 1945 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 1946 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 1947 | "dev": true 1948 | }, 1949 | "micromatch": { 1950 | "version": "4.0.5", 1951 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", 1952 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", 1953 | "dev": true, 1954 | "requires": { 1955 | "braces": "^3.0.2", 1956 | "picomatch": "^2.3.1" 1957 | } 1958 | }, 1959 | "minimatch": { 1960 | "version": "3.1.2", 1961 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 1962 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 1963 | "dev": true, 1964 | "requires": { 1965 | "brace-expansion": "^1.1.7" 1966 | } 1967 | }, 1968 | "minimist": { 1969 | "version": "1.2.6", 1970 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", 1971 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", 1972 | "dev": true 1973 | }, 1974 | "nanoid": { 1975 | "version": "3.3.4", 1976 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 1977 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", 1978 | "dev": true 1979 | }, 1980 | "no-case": { 1981 | "version": "3.0.4", 1982 | "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", 1983 | "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", 1984 | "dev": true, 1985 | "requires": { 1986 | "lower-case": "^2.0.2", 1987 | "tslib": "^2.0.3" 1988 | } 1989 | }, 1990 | "node-releases": { 1991 | "version": "2.0.6", 1992 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", 1993 | "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", 1994 | "dev": true 1995 | }, 1996 | "normalize-path": { 1997 | "version": "3.0.0", 1998 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 1999 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 2000 | "dev": true 2001 | }, 2002 | "normalize-range": { 2003 | "version": "0.1.2", 2004 | "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", 2005 | "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", 2006 | "dev": true 2007 | }, 2008 | "object-hash": { 2009 | "version": "3.0.0", 2010 | "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", 2011 | "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", 2012 | "dev": true 2013 | }, 2014 | "once": { 2015 | "version": "1.4.0", 2016 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2017 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 2018 | "dev": true, 2019 | "requires": { 2020 | "wrappy": "1" 2021 | } 2022 | }, 2023 | "param-case": { 2024 | "version": "3.0.4", 2025 | "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", 2026 | "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", 2027 | "dev": true, 2028 | "requires": { 2029 | "dot-case": "^3.0.4", 2030 | "tslib": "^2.0.3" 2031 | } 2032 | }, 2033 | "pascal-case": { 2034 | "version": "3.1.2", 2035 | "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", 2036 | "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", 2037 | "dev": true, 2038 | "requires": { 2039 | "no-case": "^3.0.4", 2040 | "tslib": "^2.0.3" 2041 | } 2042 | }, 2043 | "path-case": { 2044 | "version": "3.0.4", 2045 | "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", 2046 | "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", 2047 | "dev": true, 2048 | "requires": { 2049 | "dot-case": "^3.0.4", 2050 | "tslib": "^2.0.3" 2051 | } 2052 | }, 2053 | "path-is-absolute": { 2054 | "version": "1.0.1", 2055 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2056 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", 2057 | "dev": true 2058 | }, 2059 | "path-parse": { 2060 | "version": "1.0.7", 2061 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 2062 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 2063 | "dev": true 2064 | }, 2065 | "picocolors": { 2066 | "version": "1.0.0", 2067 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 2068 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 2069 | "dev": true 2070 | }, 2071 | "picomatch": { 2072 | "version": "2.3.1", 2073 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 2074 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 2075 | "dev": true 2076 | }, 2077 | "pify": { 2078 | "version": "2.3.0", 2079 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 2080 | "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", 2081 | "dev": true 2082 | }, 2083 | "postcss": { 2084 | "version": "8.4.16", 2085 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", 2086 | "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", 2087 | "dev": true, 2088 | "requires": { 2089 | "nanoid": "^3.3.4", 2090 | "picocolors": "^1.0.0", 2091 | "source-map-js": "^1.0.2" 2092 | } 2093 | }, 2094 | "postcss-import": { 2095 | "version": "14.1.0", 2096 | "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", 2097 | "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", 2098 | "dev": true, 2099 | "requires": { 2100 | "postcss-value-parser": "^4.0.0", 2101 | "read-cache": "^1.0.0", 2102 | "resolve": "^1.1.7" 2103 | } 2104 | }, 2105 | "postcss-js": { 2106 | "version": "4.0.0", 2107 | "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", 2108 | "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", 2109 | "dev": true, 2110 | "requires": { 2111 | "camelcase-css": "^2.0.1" 2112 | } 2113 | }, 2114 | "postcss-load-config": { 2115 | "version": "3.1.4", 2116 | "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", 2117 | "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", 2118 | "dev": true, 2119 | "requires": { 2120 | "lilconfig": "^2.0.5", 2121 | "yaml": "^1.10.2" 2122 | } 2123 | }, 2124 | "postcss-nested": { 2125 | "version": "5.0.6", 2126 | "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", 2127 | "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", 2128 | "dev": true, 2129 | "requires": { 2130 | "postcss-selector-parser": "^6.0.6" 2131 | } 2132 | }, 2133 | "postcss-selector-parser": { 2134 | "version": "6.0.10", 2135 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", 2136 | "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", 2137 | "dev": true, 2138 | "requires": { 2139 | "cssesc": "^3.0.0", 2140 | "util-deprecate": "^1.0.2" 2141 | } 2142 | }, 2143 | "postcss-value-parser": { 2144 | "version": "4.2.0", 2145 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", 2146 | "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", 2147 | "dev": true 2148 | }, 2149 | "queue-microtask": { 2150 | "version": "1.2.3", 2151 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 2152 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 2153 | "dev": true 2154 | }, 2155 | "quick-lru": { 2156 | "version": "5.1.1", 2157 | "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", 2158 | "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", 2159 | "dev": true 2160 | }, 2161 | "read-cache": { 2162 | "version": "1.0.0", 2163 | "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", 2164 | "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", 2165 | "dev": true, 2166 | "requires": { 2167 | "pify": "^2.3.0" 2168 | } 2169 | }, 2170 | "readdirp": { 2171 | "version": "3.6.0", 2172 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 2173 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 2174 | "dev": true, 2175 | "requires": { 2176 | "picomatch": "^2.2.1" 2177 | } 2178 | }, 2179 | "resolve": { 2180 | "version": "1.22.1", 2181 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", 2182 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", 2183 | "dev": true, 2184 | "requires": { 2185 | "is-core-module": "^2.9.0", 2186 | "path-parse": "^1.0.7", 2187 | "supports-preserve-symlinks-flag": "^1.0.0" 2188 | } 2189 | }, 2190 | "reusify": { 2191 | "version": "1.0.4", 2192 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 2193 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 2194 | "dev": true 2195 | }, 2196 | "run-parallel": { 2197 | "version": "1.2.0", 2198 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 2199 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 2200 | "dev": true, 2201 | "requires": { 2202 | "queue-microtask": "^1.2.2" 2203 | } 2204 | }, 2205 | "sentence-case": { 2206 | "version": "3.0.4", 2207 | "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", 2208 | "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", 2209 | "dev": true, 2210 | "requires": { 2211 | "no-case": "^3.0.4", 2212 | "tslib": "^2.0.3", 2213 | "upper-case-first": "^2.0.2" 2214 | } 2215 | }, 2216 | "snake-case": { 2217 | "version": "3.0.4", 2218 | "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", 2219 | "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", 2220 | "dev": true, 2221 | "requires": { 2222 | "dot-case": "^3.0.4", 2223 | "tslib": "^2.0.3" 2224 | } 2225 | }, 2226 | "source-map-js": { 2227 | "version": "1.0.2", 2228 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 2229 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 2230 | "dev": true 2231 | }, 2232 | "style-dictionary": { 2233 | "version": "3.7.1", 2234 | "resolved": "https://registry.npmjs.org/style-dictionary/-/style-dictionary-3.7.1.tgz", 2235 | "integrity": "sha512-yYU9Z/J8Znj9T9oJVjo8VOYamrOxv0UbBKPjhSt+PharxrhyQCM4RWb71fgEfv2pK9KO8G83/0ChDNQZ1mn0wQ==", 2236 | "dev": true, 2237 | "requires": { 2238 | "chalk": "^4.0.0", 2239 | "change-case": "^4.1.2", 2240 | "commander": "^8.3.0", 2241 | "fs-extra": "^10.0.0", 2242 | "glob": "^7.2.0", 2243 | "json5": "^2.2.0", 2244 | "jsonc-parser": "^3.0.0", 2245 | "lodash": "^4.17.15", 2246 | "tinycolor2": "^1.4.1" 2247 | } 2248 | }, 2249 | "supports-color": { 2250 | "version": "7.2.0", 2251 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 2252 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 2253 | "dev": true, 2254 | "requires": { 2255 | "has-flag": "^4.0.0" 2256 | } 2257 | }, 2258 | "supports-preserve-symlinks-flag": { 2259 | "version": "1.0.0", 2260 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 2261 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 2262 | "dev": true 2263 | }, 2264 | "tailwindcss": { 2265 | "version": "3.1.8", 2266 | "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.1.8.tgz", 2267 | "integrity": "sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g==", 2268 | "dev": true, 2269 | "requires": { 2270 | "arg": "^5.0.2", 2271 | "chokidar": "^3.5.3", 2272 | "color-name": "^1.1.4", 2273 | "detective": "^5.2.1", 2274 | "didyoumean": "^1.2.2", 2275 | "dlv": "^1.1.3", 2276 | "fast-glob": "^3.2.11", 2277 | "glob-parent": "^6.0.2", 2278 | "is-glob": "^4.0.3", 2279 | "lilconfig": "^2.0.6", 2280 | "normalize-path": "^3.0.0", 2281 | "object-hash": "^3.0.0", 2282 | "picocolors": "^1.0.0", 2283 | "postcss": "^8.4.14", 2284 | "postcss-import": "^14.1.0", 2285 | "postcss-js": "^4.0.0", 2286 | "postcss-load-config": "^3.1.4", 2287 | "postcss-nested": "5.0.6", 2288 | "postcss-selector-parser": "^6.0.10", 2289 | "postcss-value-parser": "^4.2.0", 2290 | "quick-lru": "^5.1.1", 2291 | "resolve": "^1.22.1" 2292 | } 2293 | }, 2294 | "tinycolor2": { 2295 | "version": "1.4.2", 2296 | "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", 2297 | "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==", 2298 | "dev": true 2299 | }, 2300 | "to-regex-range": { 2301 | "version": "5.0.1", 2302 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 2303 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 2304 | "dev": true, 2305 | "requires": { 2306 | "is-number": "^7.0.0" 2307 | } 2308 | }, 2309 | "tslib": { 2310 | "version": "2.4.0", 2311 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", 2312 | "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", 2313 | "dev": true 2314 | }, 2315 | "universalify": { 2316 | "version": "2.0.0", 2317 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", 2318 | "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", 2319 | "dev": true 2320 | }, 2321 | "update-browserslist-db": { 2322 | "version": "1.0.7", 2323 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.7.tgz", 2324 | "integrity": "sha512-iN/XYesmZ2RmmWAiI4Z5rq0YqSiv0brj9Ce9CfhNE4xIW2h+MFxcgkxIzZ+ShkFPUkjU3gQ+3oypadD3RAMtrg==", 2325 | "dev": true, 2326 | "requires": { 2327 | "escalade": "^3.1.1", 2328 | "picocolors": "^1.0.0" 2329 | } 2330 | }, 2331 | "upper-case": { 2332 | "version": "2.0.2", 2333 | "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", 2334 | "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", 2335 | "dev": true, 2336 | "requires": { 2337 | "tslib": "^2.0.3" 2338 | } 2339 | }, 2340 | "upper-case-first": { 2341 | "version": "2.0.2", 2342 | "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", 2343 | "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", 2344 | "dev": true, 2345 | "requires": { 2346 | "tslib": "^2.0.3" 2347 | } 2348 | }, 2349 | "util-deprecate": { 2350 | "version": "1.0.2", 2351 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2352 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", 2353 | "dev": true 2354 | }, 2355 | "wrappy": { 2356 | "version": "1.0.2", 2357 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2358 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", 2359 | "dev": true 2360 | }, 2361 | "xtend": { 2362 | "version": "4.0.2", 2363 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", 2364 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", 2365 | "dev": true 2366 | }, 2367 | "yaml": { 2368 | "version": "1.10.2", 2369 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", 2370 | "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", 2371 | "dev": true 2372 | } 2373 | } 2374 | } 2375 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tailwind-to-style-dictionary", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "style-dictionary:build": "style-dictionary build --config ./style-dictionary.config.js" 9 | }, 10 | "author": "", 11 | "license": "ISC", 12 | "devDependencies": { 13 | "autoprefixer": "^10.4.9", 14 | "postcss": "^8.4.16", 15 | "style-dictionary": "^3.7.1", 16 | "tailwindcss": "^3.1.8" 17 | }, 18 | "dependencies": { 19 | "@divriots/style-dictionary-to-figma": "^0.3.2" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/scss/_variables.scss: -------------------------------------------------------------------------------- 1 | 2 | // Do not edit directly 3 | // Generated on Mon, 12 Sep 2022 15:35:36 GMT 4 | 5 | $colors-inherit: inherit; 6 | $colors-current: currentColor; 7 | $colors-transparent: transparent; 8 | $colors-black: #000; 9 | $colors-white: #fff; 10 | $colors-slate-50: #f8fafc; 11 | $colors-slate-100: #f1f5f9; 12 | $colors-slate-200: #e2e8f0; 13 | $colors-slate-300: #cbd5e1; 14 | $colors-slate-400: #94a3b8; 15 | $colors-slate-500: #64748b; 16 | $colors-slate-600: #475569; 17 | $colors-slate-700: #334155; 18 | $colors-slate-800: #1e293b; 19 | $colors-slate-900: #0f172a; 20 | $colors-gray-50: #f9fafb; 21 | $colors-gray-100: #f3f4f6; 22 | $colors-gray-200: #e5e7eb; 23 | $colors-gray-300: #d1d5db; 24 | $colors-gray-400: #9ca3af; 25 | $colors-gray-500: #6b7280; 26 | $colors-gray-600: #4b5563; 27 | $colors-gray-700: #374151; 28 | $colors-gray-800: #1f2937; 29 | $colors-gray-900: #111827; 30 | $colors-zinc-50: #fafafa; 31 | $colors-zinc-100: #f4f4f5; 32 | $colors-zinc-200: #e4e4e7; 33 | $colors-zinc-300: #d4d4d8; 34 | $colors-zinc-400: #a1a1aa; 35 | $colors-zinc-500: #71717a; 36 | $colors-zinc-600: #52525b; 37 | $colors-zinc-700: #3f3f46; 38 | $colors-zinc-800: #27272a; 39 | $colors-zinc-900: #18181b; 40 | $colors-neutral-50: #fafafa; 41 | $colors-neutral-100: #f5f5f5; 42 | $colors-neutral-200: #e5e5e5; 43 | $colors-neutral-300: #d4d4d4; 44 | $colors-neutral-400: #a3a3a3; 45 | $colors-neutral-500: #737373; 46 | $colors-neutral-600: #525252; 47 | $colors-neutral-700: #404040; 48 | $colors-neutral-800: #262626; 49 | $colors-neutral-900: #171717; 50 | $colors-stone-50: #fafaf9; 51 | $colors-stone-100: #f5f5f4; 52 | $colors-stone-200: #e7e5e4; 53 | $colors-stone-300: #d6d3d1; 54 | $colors-stone-400: #a8a29e; 55 | $colors-stone-500: #78716c; 56 | $colors-stone-600: #57534e; 57 | $colors-stone-700: #44403c; 58 | $colors-stone-800: #292524; 59 | $colors-stone-900: #1c1917; 60 | $colors-red-50: #fef2f2; 61 | $colors-red-100: #fee2e2; 62 | $colors-red-200: #fecaca; 63 | $colors-red-300: #fca5a5; 64 | $colors-red-400: #f87171; 65 | $colors-red-500: #ef4444; 66 | $colors-red-600: #dc2626; 67 | $colors-red-700: #b91c1c; 68 | $colors-red-800: #991b1b; 69 | $colors-red-900: #7f1d1d; 70 | $colors-orange-50: #fff7ed; 71 | $colors-orange-100: #ffedd5; 72 | $colors-orange-200: #fed7aa; 73 | $colors-orange-300: #fdba74; 74 | $colors-orange-400: #fb923c; 75 | $colors-orange-500: #f97316; 76 | $colors-orange-600: #ea580c; 77 | $colors-orange-700: #c2410c; 78 | $colors-orange-800: #9a3412; 79 | $colors-orange-900: #7c2d12; 80 | $colors-amber-50: #fffbeb; 81 | $colors-amber-100: #fef3c7; 82 | $colors-amber-200: #fde68a; 83 | $colors-amber-300: #fcd34d; 84 | $colors-amber-400: #fbbf24; 85 | $colors-amber-500: #f59e0b; 86 | $colors-amber-600: #d97706; 87 | $colors-amber-700: #b45309; 88 | $colors-amber-800: #92400e; 89 | $colors-amber-900: #78350f; 90 | $colors-yellow-50: #fefce8; 91 | $colors-yellow-100: #fef9c3; 92 | $colors-yellow-200: #fef08a; 93 | $colors-yellow-300: #fde047; 94 | $colors-yellow-400: #facc15; 95 | $colors-yellow-500: #eab308; 96 | $colors-yellow-600: #ca8a04; 97 | $colors-yellow-700: #a16207; 98 | $colors-yellow-800: #854d0e; 99 | $colors-yellow-900: #713f12; 100 | $colors-lime-50: #f7fee7; 101 | $colors-lime-100: #ecfccb; 102 | $colors-lime-200: #d9f99d; 103 | $colors-lime-300: #bef264; 104 | $colors-lime-400: #a3e635; 105 | $colors-lime-500: #84cc16; 106 | $colors-lime-600: #65a30d; 107 | $colors-lime-700: #4d7c0f; 108 | $colors-lime-800: #3f6212; 109 | $colors-lime-900: #365314; 110 | $colors-green-50: #f0fdf4; 111 | $colors-green-100: #dcfce7; 112 | $colors-green-200: #bbf7d0; 113 | $colors-green-300: #86efac; 114 | $colors-green-400: #4ade80; 115 | $colors-green-500: #22c55e; 116 | $colors-green-600: #16a34a; 117 | $colors-green-700: #15803d; 118 | $colors-green-800: #166534; 119 | $colors-green-900: #14532d; 120 | $colors-emerald-50: #ecfdf5; 121 | $colors-emerald-100: #d1fae5; 122 | $colors-emerald-200: #a7f3d0; 123 | $colors-emerald-300: #6ee7b7; 124 | $colors-emerald-400: #34d399; 125 | $colors-emerald-500: #10b981; 126 | $colors-emerald-600: #059669; 127 | $colors-emerald-700: #047857; 128 | $colors-emerald-800: #065f46; 129 | $colors-emerald-900: #064e3b; 130 | $colors-teal-50: #f0fdfa; 131 | $colors-teal-100: #ccfbf1; 132 | $colors-teal-200: #99f6e4; 133 | $colors-teal-300: #5eead4; 134 | $colors-teal-400: #2dd4bf; 135 | $colors-teal-500: #14b8a6; 136 | $colors-teal-600: #0d9488; 137 | $colors-teal-700: #0f766e; 138 | $colors-teal-800: #115e59; 139 | $colors-teal-900: #134e4a; 140 | $colors-cyan-50: #ecfeff; 141 | $colors-cyan-100: #cffafe; 142 | $colors-cyan-200: #a5f3fc; 143 | $colors-cyan-300: #67e8f9; 144 | $colors-cyan-400: #22d3ee; 145 | $colors-cyan-500: #06b6d4; 146 | $colors-cyan-600: #0891b2; 147 | $colors-cyan-700: #0e7490; 148 | $colors-cyan-800: #155e75; 149 | $colors-cyan-900: #164e63; 150 | $colors-sky-50: #f0f9ff; 151 | $colors-sky-100: #e0f2fe; 152 | $colors-sky-200: #bae6fd; 153 | $colors-sky-300: #7dd3fc; 154 | $colors-sky-400: #38bdf8; 155 | $colors-sky-500: #0ea5e9; 156 | $colors-sky-600: #0284c7; 157 | $colors-sky-700: #0369a1; 158 | $colors-sky-800: #075985; 159 | $colors-sky-900: #0c4a6e; 160 | $colors-blue-50: #eff6ff; 161 | $colors-blue-100: #dbeafe; 162 | $colors-blue-200: #bfdbfe; 163 | $colors-blue-300: #93c5fd; 164 | $colors-blue-400: #60a5fa; 165 | $colors-blue-500: #3b82f6; 166 | $colors-blue-600: #2563eb; 167 | $colors-blue-700: #1d4ed8; 168 | $colors-blue-800: #1e40af; 169 | $colors-blue-900: #1e3a8a; 170 | $colors-indigo-50: #eef2ff; 171 | $colors-indigo-100: #e0e7ff; 172 | $colors-indigo-200: #c7d2fe; 173 | $colors-indigo-300: #a5b4fc; 174 | $colors-indigo-400: #818cf8; 175 | $colors-indigo-500: #6366f1; 176 | $colors-indigo-600: #4f46e5; 177 | $colors-indigo-700: #4338ca; 178 | $colors-indigo-800: #3730a3; 179 | $colors-indigo-900: #312e81; 180 | $colors-violet-50: #f5f3ff; 181 | $colors-violet-100: #ede9fe; 182 | $colors-violet-200: #ddd6fe; 183 | $colors-violet-300: #c4b5fd; 184 | $colors-violet-400: #a78bfa; 185 | $colors-violet-500: #8b5cf6; 186 | $colors-violet-600: #7c3aed; 187 | $colors-violet-700: #6d28d9; 188 | $colors-violet-800: #5b21b6; 189 | $colors-violet-900: #4c1d95; 190 | $colors-purple-50: #faf5ff; 191 | $colors-purple-100: #f3e8ff; 192 | $colors-purple-200: #e9d5ff; 193 | $colors-purple-300: #d8b4fe; 194 | $colors-purple-400: #c084fc; 195 | $colors-purple-500: #a855f7; 196 | $colors-purple-600: #9333ea; 197 | $colors-purple-700: #7e22ce; 198 | $colors-purple-800: #6b21a8; 199 | $colors-purple-900: #581c87; 200 | $colors-fuchsia-50: #fdf4ff; 201 | $colors-fuchsia-100: #fae8ff; 202 | $colors-fuchsia-200: #f5d0fe; 203 | $colors-fuchsia-300: #f0abfc; 204 | $colors-fuchsia-400: #e879f9; 205 | $colors-fuchsia-500: #d946ef; 206 | $colors-fuchsia-600: #c026d3; 207 | $colors-fuchsia-700: #a21caf; 208 | $colors-fuchsia-800: #86198f; 209 | $colors-fuchsia-900: #701a75; 210 | $colors-pink-50: #fdf2f8; 211 | $colors-pink-100: #fce7f3; 212 | $colors-pink-200: #fbcfe8; 213 | $colors-pink-300: #f9a8d4; 214 | $colors-pink-400: #f472b6; 215 | $colors-pink-500: #ec4899; 216 | $colors-pink-600: #db2777; 217 | $colors-pink-700: #be185d; 218 | $colors-pink-800: #9d174d; 219 | $colors-pink-900: #831843; 220 | $colors-rose-50: #fff1f2; 221 | $colors-rose-100: #ffe4e6; 222 | $colors-rose-200: #fecdd3; 223 | $colors-rose-300: #fda4af; 224 | $colors-rose-400: #fb7185; 225 | $colors-rose-500: #f43f5e; 226 | $colors-rose-600: #e11d48; 227 | $colors-rose-700: #be123c; 228 | $colors-rose-800: #9f1239; 229 | $colors-rose-900: #881337; 230 | $spacing-0: 0px; 231 | $spacing-1: 0.25rem; 232 | $spacing-2: 0.5rem; 233 | $spacing-3: 0.75rem; 234 | $spacing-4: 1rem; 235 | $spacing-5: 1.25rem; 236 | $spacing-6: 1.5rem; 237 | $spacing-7: 1.75rem; 238 | $spacing-8: 2rem; 239 | $spacing-9: 2.25rem; 240 | $spacing-10: 2.5rem; 241 | $spacing-11: 2.75rem; 242 | $spacing-12: 3rem; 243 | $spacing-14: 3.5rem; 244 | $spacing-16: 4rem; 245 | $spacing-20: 5rem; 246 | $spacing-24: 6rem; 247 | $spacing-28: 7rem; 248 | $spacing-32: 8rem; 249 | $spacing-36: 9rem; 250 | $spacing-40: 10rem; 251 | $spacing-44: 11rem; 252 | $spacing-48: 12rem; 253 | $spacing-52: 13rem; 254 | $spacing-56: 14rem; 255 | $spacing-60: 15rem; 256 | $spacing-64: 16rem; 257 | $spacing-72: 18rem; 258 | $spacing-80: 20rem; 259 | $spacing-96: 24rem; 260 | $spacing-px: 1px; 261 | $spacing-0-5: 0.125rem; 262 | $spacing-1-5: 0.375rem; 263 | $spacing-2-5: 0.625rem; 264 | $spacing-3-5: 0.875rem; 265 | $font-family-sans: ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; 266 | $font-family-serif: ui-serif,Georgia,Cambria,"Times New Roman",Times,serif; 267 | $font-family-mono: ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace; -------------------------------------------------------------------------------- /style-dictionary.config.js: -------------------------------------------------------------------------------- 1 | const resolveConfig = require("tailwindcss/resolveConfig"); 2 | const tailwindConfig = require("./tailwind.config.js"); 3 | const _ = require("lodash"); 4 | const { transform } = require("@divriots/style-dictionary-to-figma"); 5 | // const StyleDictionary = require("style-dictionary"); 6 | 7 | // StyleDictionary.registerFormat({ 8 | // name: "figmaTokensPlugin", 9 | // formatter: ({ dictionary }) => { 10 | // const transformedTokens = transform(dictionary.tokens); 11 | // return JSON.stringify(transformedTokens, null, 2); 12 | // }, 13 | // }); 14 | 15 | // Grab just the theme data from the Tailwind config. 16 | const { theme } = resolveConfig(tailwindConfig); 17 | 18 | // Create an empty object to hold our transformed tokens data. 19 | const tokens = {}; 20 | 21 | // A helper function that uses Lodash's setWidth method to 22 | // insert things into an object at the right point in the 23 | // structure, and to create the right structure for us 24 | // if it doesn't already exist. 25 | const addToTokensObject = function (position, value, attr = null) { 26 | _.setWith(tokens, position, { value: value, ...attr }, Object); 27 | }; 28 | 29 | // Loop over the theme data… 30 | _.forEach(theme, function (value, key) { 31 | switch (key) { 32 | case "fontFamily": 33 | // Font family data is in an array, so we use join to 34 | // turn the font families into a single string. 35 | _.forEach(theme["fontFamily"], function (value, key) { 36 | addToTokensObject( 37 | ["fontFamily", key], 38 | theme["fontFamily"][key].join(",") 39 | ); 40 | }); 41 | break; 42 | 43 | case "fontSize": 44 | // Font size data contains both the font size (makes 45 | // sense!) but also a recommended line-length, so we 46 | // create two tokens for every font size, one for the 47 | // font-size value and one for the line-height. 48 | _.forEach(theme["fontSize"], function (value, key) { 49 | addToTokensObject(["fontSize", key], value[0]); 50 | addToTokensObject( 51 | ["fontSize", `${key}--lineHeight`], 52 | value[1]["lineHeight"] 53 | ); 54 | }); 55 | break; 56 | 57 | case "lineHeight": 58 | _.forEach(theme["lineHeight"], function (value, key) { 59 | // convert rem to px 60 | const valuePx = parseFloat(value) * 16; 61 | addToTokensObject(["lineHeights", key], valuePx, { 62 | type: "lineHeights", 63 | }); 64 | }); 65 | break; 66 | 67 | default: 68 | _.forEach(value, function (value, secondLevelKey) { 69 | if (!_.isObject(value)) { 70 | // For non-objects (simple key/value pairs) we can 71 | // add them straight into our tokens object. 72 | addToTokensObject([key, secondLevelKey], value); 73 | } else { 74 | // Skip 'raw' CSS media queries. 75 | if (!_.isUndefined(value["raw"])) { 76 | return; 77 | } 78 | 79 | // For objects (like color shades) we need to do a 80 | // final forOwn loop to make sure we add everything 81 | // in the right format. 82 | _.forEach(value, function (value, thirdLevelKey) { 83 | addToTokensObject([key, secondLevelKey, thirdLevelKey], value); 84 | }); 85 | } 86 | }); 87 | break; 88 | } 89 | }); 90 | 91 | const limitedFilter = (token) => 92 | ["colors", "spacing", "fontFamily"].includes(token.attributes.category); 93 | 94 | const fullFilter = (token) => 95 | [ 96 | "screens", 97 | "colors", 98 | "spacing", 99 | "opacity", 100 | "borderRadius", 101 | "borderWidth", 102 | "boxShadow", 103 | "fontFamily", 104 | "fontSize", 105 | "fontWeight", 106 | "letterSpacing", 107 | "lineHeights", 108 | "maxWidth", 109 | "zIndex", 110 | "scale", 111 | "transitionProperty", 112 | "transitionTimingFunction", 113 | "transitionDuration", 114 | "transitionDelay", 115 | "animation", 116 | ].includes(token.attributes.category); 117 | 118 | module.exports = { 119 | tokens, 120 | source: ["**/*.tokens.json"], 121 | format: { 122 | figmaTokensPlugin: ({ dictionary }) => { 123 | const transformedTokens = transform(dictionary.tokens); 124 | return JSON.stringify(transformedTokens, null, 2); 125 | }, 126 | }, 127 | platforms: { 128 | json: { 129 | transformGroup: "js", 130 | buildPath: "tokens/", 131 | files: [ 132 | { 133 | format: "figmaTokensPlugin", 134 | destination: "tokens.json", 135 | filter: fullFilter, 136 | options: { 137 | outputReferences: true, 138 | }, 139 | }, 140 | ], 141 | }, 142 | js: { 143 | transformGroup: "js", 144 | buildPath: "dist/js/", 145 | files: [ 146 | { 147 | format: "javascript/module", 148 | destination: "tokens.js", 149 | filter: fullFilter, 150 | options: { 151 | outputReferences: true, 152 | }, 153 | }, 154 | ], 155 | }, 156 | css: { 157 | transformGroup: "css", 158 | buildPath: "dist/css/", 159 | files: [ 160 | { 161 | format: "css/variables", 162 | destination: "variables.css", 163 | filter: fullFilter, 164 | }, 165 | ], 166 | }, 167 | scss: { 168 | transformGroup: "scss", 169 | buildPath: "src/scss/", 170 | files: [ 171 | { 172 | destination: "_variables.scss", 173 | format: "scss/variables", 174 | filter: limitedFilter, 175 | }, 176 | ], 177 | }, 178 | }, 179 | }; 180 | -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: [], 4 | theme: { 5 | extend: {}, 6 | }, 7 | plugins: [], 8 | } 9 | --------------------------------------------------------------------------------